Skip to content
This repository has been archived by the owner on Sep 2, 2023. It is now read-only.

Out-of-band meeting to discuss unflagging #408

Closed
GeoffreyBooth opened this issue Oct 24, 2019 · 20 comments
Closed

Out-of-band meeting to discuss unflagging #408

GeoffreyBooth opened this issue Oct 24, 2019 · 20 comments
Labels
events Topic, time, venue, and actual humans… no/go? one-off "not pro forma" actions

Comments

@GeoffreyBooth
Copy link
Member

GeoffreyBooth commented Oct 24, 2019

Let’s finish our discussion from today’s meeting, and hopefully reach a consensus about unflagging.

https://doodle.com/poll/watrpmrg9gi74wuz

Wednesday Oct 30 at 10 am PT / 1 pm ET / 17:00 UTC

Zoom: https://zoom.us/j/650056413

@GeoffreyBooth GeoffreyBooth added events Topic, time, venue, and actual humans… no/go? one-off "not pro forma" actions labels Oct 24, 2019
@GeoffreyBooth
Copy link
Member Author

Only six replies so far, so won’t meet tomorrow (Friday). Please fill out the Doodle, folks!

@GeoffreyBooth
Copy link
Member Author

Currently looks like this will be on Thursday or Friday, but many folks still haven’t filled out the Doodle. @bmeck @DanielRosenwasser @devsnek @inidaname @jdalton @mduleone @SMotaal @targos @zenparsing if you could please take a moment to let us know your availability: https://doodle.com/poll/watrpmrg9gi74wuz

I picked two-hour timeslots to try to ensure we didn’t run out of time like our last meeting, but hopefully we won’t need all that time. Please RSVP even if you can only attend part of it.

@jkrems
Copy link
Contributor

jkrems commented Oct 28, 2019

Should we try to enumerate the open questions? E.g. is this mostly down to "should conditional exports be a blocker" / "can we unflag with them"?

@ljharb
Copy link
Member

ljharb commented Oct 28, 2019

Conditional exports themselves are one open question.

@jkrems
Copy link
Contributor

jkrems commented Oct 28, 2019

Right, to break down "should conditional exports be a blocker":

  • Should conditional exports be a blocker?
  • If not, is there a gap left by conditional exports we need to fill with something else before we can unflag?
  • If we need something else, do we know what it would be (both in theory and in practice)?

Is that roughly what you had in mind when you said "one open question"? Also, you seem to imply that there are more questions..? I think it would help if we spell them out at this point so we can go into the meeting with open eyes. :)

@jkrems
Copy link
Contributor

jkrems commented Oct 28, 2019

Currently looks like this will be on Thursday or Friday, but many folks still haven’t filled out the Doodle.

I think Friday is clearly ahead now. Should we lock it in so people can block the time in their calendars?

@ljharb
Copy link
Member

ljharb commented Oct 28, 2019

I think that the only open questions are as you outlined, yes.

@GeoffreyBooth
Copy link
Member Author

I think that the only open questions are as you outlined, yes.

Our last two regular meetings discussed unflagging and any last concerns before doing so, and the hazard/conditional exports issue was the only one raised, which was why it was sent to the TSC (and was the only issue sent to them). If anyone has any other concerns at this point, hopefully they either don’t block unflagging or there’s a good reason why they weren’t raised earlier. In order to be a functioning group we all need to be respectful of each other’s time.

@GeoffreyBooth
Copy link
Member Author

GeoffreyBooth commented Oct 28, 2019

Currently it’s looking like Friday Nov 1 at 12 pm PT / 3 pm ET / 19:00 UTC Wednesday Oct 30 at 10 am PT / 1 pm ET / 17:00 UTC, if people want to reserve that time in their calendars.

@MylesBorins is there an official Zoom meeting we can use?

Also if folks wouldn’t mind, before the meeting please read #409 and take a look at the accompanying example repo https://github.com/GeoffreyBooth/dual-package-hazard.

@devsnek
Copy link
Member

devsnek commented Oct 28, 2019

didn't we agree in the last meeting that it was a separate flag? I'm confused

@MylesBorins
Copy link
Member

I've updated my availability, I have to be OOO on Friday. Looks like Wednesday 1 - 3 pm ET is the best time now.

@GeoffreyBooth
Copy link
Member Author

didn’t we agree in the last meeting that it was a separate flag? I’m confused

Here are the meeting notes about conditional exports, at the very end of the meeting:

  • MB: Can we land ConExp behind a flag?
  • Wes objects.
  • MB: Can we land ESM as it exists?
  • JH - I object. We need ConExp. (but Wes blocks ConExp)
  • JH - Are we lone objectors?
  • silence
  • BF: I object to ConExp but not if it’s behind a dedicated flag.
  • JH: If someone has to run Node with a flag to get a feature in a dependency, it’s like it does not exist. People don’t run Node with flags. So defaults matter. If defaults do not support dual packages, you can’t publish it. So my objection remains.
  • MB: We can discuss a vote, but not now - time is up.

@GeoffreyBooth
Copy link
Member Author

Looks like we can set the time: Wednesday Oct 30 at 10 am PT / 1 pm ET / 17:00 UTC

@MylesBorins, do you mind please setting up Zoom etc. for us?

@SMotaal
Copy link

SMotaal commented Oct 29, 2019

Sorry folks, I am having trouble taming notifications… I just updated doodle and will be able to make the Wednesday 1pm ET (juggling things as we do though).

@MylesBorins
Copy link
Member

I've scheduled the zoom, added the link to the original post (https://zoom.us/j/650056413) and added the event to the Node.js calendar

@styfle
Copy link
Member

styfle commented Oct 30, 2019

I was listening in on the meeting 👂

Nice job everyone! 👏 🎉 🥇

@GeoffreyBooth
Copy link
Member Author

Consensus per this meeting:

  • Land conditional exports behind experimental flag: module: Conditional exports node#29978.

    • Ideally only flag the part of conditional exports that allows separate entry points for the same specifier within Node. Group has consensus to ship the rest of the feature, to provide a framework for defining entry points for Node vs other runtimes/environments.

    • If consensus can’t be reached on the “non-divergent specifier” parts of conditional exports, the entire feature will be placed behind a flag but will still land.

  • Document singleton hazards and recommend approaches: https://github.com/nodejs/node/pull/30051/files?short_path=8e67f40#diff-8e67f407bc32a0569e25d7ecaff6e494; start at the “Dual CommonJS/ES Module Packages” heading.

  • Unflag --experimental-modules as the current state plus the above in node 13. This preserves the experimental warning. esm: Unflag --experimental-modules node#29866.

  • At the end of January, if there’s no better alternative for dual packages, we will remove the conditional exports flag and turn the feature on by default.

🎉 🚢 🚀 🎉

@GeoffreyBooth
Copy link
Member Author

Consensus per this meeting:

  • Land conditional exports behind experimental flag: module: Conditional exports node#29978.

    • Ideally only flag the part of conditional exports that allows separate entry points for the same specifier within Node. Group has consensus to ship the rest of the feature, to provide a framework for defining entry points for Node vs other runtimes/environments.

    • If consensus can’t be reached on the “non-divergent specifier” parts of conditional exports, the entire feature will be placed behind a flag but will still land.

  • Document singleton hazards and recommend approaches: https://github.com/nodejs/node/pull/30051/files?short_path=8e67f40#diff-8e67f407bc32a0569e25d7ecaff6e494; start at the “Dual CommonJS/ES Module Packages” heading.

  • Unflag --experimental-modules as the current state plus the above in node 13. This preserves the experimental warning. esm: Unflag --experimental-modules node#29866.

  • At the end of January, if there’s no better alternative for dual packages, we will remove the conditional exports flag and turn the feature on by default.

🎉 🚢 🚀 🎉

@colinrotherham
Copy link

Hi @GeoffreyBooth, does this mean --experimental-modules will be unflagged in Node.js 13 onwards, but not Node.js 12?

I can't tell from your comment here if it applies to Node.js 13 only: #411 (comment)

But then this comment proposes it will come to Node.js 12: #400 (comment)

  • Assuming there is not major ecosystem push back we aim to remove the flag in the 1st or 2nd Semver Minor of 12.x LTS (likely in December or March)

If you can clarify that would be great thanks 😊

@GeoffreyBooth
Copy link
Member Author

It may come to 12, that's not certain. It depends how things go in 13.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
events Topic, time, venue, and actual humans… no/go? one-off "not pro forma" actions
Projects
None yet
Development

No branches or pull requests

8 participants