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
Only six replies so far, so wonāt meet tomorrow (Friday). Please fill out the Doodle, folks!
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.
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"?
Conditional exports themselves are one open question.
Right, to break down "should conditional exports be a blocker":
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. :)
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?
I think that the only open questions are as you outlined, yes.
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.
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 https://github.com/nodejs/modules/issues/409 and take a look at the accompanying example repo https://github.com/GeoffreyBooth/dual-package-hazard.
didn't we agree in the last meeting that it was a separate flag? I'm confused
I've updated my availability, I have to be OOO on Friday. Looks like Wednesday 1 - 3 pm ET is the best time now.
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.
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?
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).
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
I was listening in on the meeting š
Nice job everyone! š š š„
Consensus per this meeting:
Land conditional exports behind experimental flag: https://github.com/nodejs/node/pull/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. https://github.com/nodejs/node/pull/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.
š š¢ š š
Consensus per this meeting:
Land conditional exports behind experimental flag: https://github.com/nodejs/node/pull/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. https://github.com/nodejs/node/pull/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.
š š¢ š š
Hi @GeoffreyBooth, does this mean --experimental-modules will be unflagged in Node.js 13 onwards, but not Node.js 12?
- Unflag --experimental-modules as the current state plus the above in node 13. This preserves the experimental warning. nodejs/node#29866.
I can't tell from your comment here if it applies to Node.js 13 only: https://github.com/nodejs/modules/issues/411#issuecomment-548210560
But then this comment proposes it will come to Node.js 12: https://github.com/nodejs/modules/issues/400#issue-505927802
- 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 š
It may come to 12, that's not certain. It depends how things go in 13.
Most helpful comment
Consensus per this meeting:
Land conditional exports behind experimental flag: https://github.com/nodejs/node/pull/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-modulesas the current state plus the above in node 13. This preserves the experimental warning. https://github.com/nodejs/node/pull/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.
š š¢ š š