You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 2, 2023. It is now read-only.
Repository navigation
This repository was archived by the owner on Sep 2, 2023. It is now read-only.
Node.js Foundation Modules Team Meeting 2019-02-20 #270
We will walk through contentious subjects, attempt to reach consensus quickly, otherwise move towards a vote. We will then review the resulting implementation and attempt to reach consensus that this is what we will move forward with.
The agenda comes from issues labelled with modules-agenda across all of the repositories in the nodejs org. Please label any additional issues that should be on the agenda before the meeting starts.
We were rapidly approaching "we should vote on weather we have full cjs-style extension and index resolution in the esm resolver" point of the conversation, and were pretty much just presenting opening arguments for the yea and nay sides of it. Should we vote on it asynchronously (as it's obviously an opinion question and we will never reach consensus on it, as stated during the meeting)? Or should we pick it up again later?
SHould we clear an entire day or afternoon to work on this?
Yes but only if you can make it viable for people to attend remotely. I stayed up through the middle of the night to call into the Berlin meeting and then no one ever enabled the web meeting for that one.
So in the meeting we agreed to put the current import of CommonJS (which is default export only) behind a flag. Someone please remind me why we’re not merging in nodejs/ecmascript-modules#29 and putting that behind a flag? Because the specific implementation of named exports via dynamic modules might change, and we don’t want to merge any implementation in while we’re discussing what it might be?
@GeoffreyBooth we have heard objections to Dynamic Modules within this group and some statements of intent to block at TC39 from within the group. I believe that Dynamic Modules being merged is early given that we have objections that would effectively force the proposal to stop.
@bmeck Merged unflagged, certainly. But what about behind a flag like we're planning to do for defaults only? What was the reasoning behind not doing that?
I guess the question is what we should do if the dynamic modules approach continues to flounder at tc39. We can cut interop entirely, we can release defaults only flagged or unflagged, or we can release dynamic flagged. If we're going to release some version of interop behind a flag anyway, why not release full interop flagged rather than defaults only flagged?
Not meaning to start a debate here, just asking if these questions were addressed in the meeting. I don't recall us considering these options. If we didn't, I think we should review them in an upcoming meeting.
why not release full interop flagged rather than defaults only flagged?
Because we should be aiming towards what people can use reliably if we want to move forward with under our own power, rather than encouraging them to move to something that we may not have the power to ship. We do no service by encouraging what we already see as a currently unsafe/non-consensus route. We even have members seeking to block the proposal entirely so we are partly to blame for why it is not moving forward at TC39.
Default only and no interop work as things exist today. Encouraging usage of a feature and then removing it is much more jarring and requires more work than releasing minimal iterations that should be safe to use. If we cannot agree to ship with default only, we will ship without interop, this follows how this group has been able to make progress.
As with other features, we don't ship more when we lack consensus/clear ability to move forward; we remove controversial parts until we can agree on some smaller amount of things that are agreeable and under our ability to ship and do not cause conflict on their own.
Sorry I think there's a misunderstanding. I meant, why not ship full interop behind a flag—a permanent flag. Not an experimental flag implying that the feature might someday get unflagged, but a flag for opting into nonstandard/non-spec compliant behavior. Is that not something that Node does?
Activity
weswigham commentedon Feb 20, 2019
Man, I love getting booted while someone's mid-sentence XD
Well.... what do we do now?
MylesBorins commentedon Feb 20, 2019
LOL TSC meeting
To be continue next week. @Fishrock123 mentioned we may want to do a summit. SHould we clear an entire day or afternoon to work on this?
ljharb commentedon Feb 20, 2019
This "one meeting at a time across all node" is ridiculous; can someone please link me to where we're trying to fix that?
weswigham commentedon Feb 20, 2019
We were rapidly approaching "we should vote on weather we have full cjs-style extension and index resolution in the esm resolver" point of the conversation, and were pretty much just presenting opening arguments for the yea and nay sides of it. Should we vote on it asynchronously (as it's obviously an opinion question and we will never reach consensus on it, as stated during the meeting)? Or should we pick it up again later?
GeoffreyBooth commentedon Feb 20, 2019
Yes but only if you can make it viable for people to attend remotely. I stayed up through the middle of the night to call into the Berlin meeting and then no one ever enabled the web meeting for that one.
ljharb commentedon Feb 20, 2019
@weswigham it’s way too soon to vote; there are many opinions left unvoiced.
weswigham commentedon Feb 20, 2019
Aight. Guess we'll need to schedule more time for it, then.
GeoffreyBooth commentedon Feb 21, 2019
So in the meeting we agreed to put the current
importof CommonJS (which is default export only) behind a flag. Someone please remind me why we’re not merging in nodejs/ecmascript-modules#29 and putting that behind a flag? Because the specific implementation of named exports via dynamic modules might change, and we don’t want to merge any implementation in while we’re discussing what it might be?bmeck commentedon Feb 21, 2019
@GeoffreyBooth we have heard objections to Dynamic Modules within this group and some statements of intent to block at TC39 from within the group. I believe that Dynamic Modules being merged is early given that we have objections that would effectively force the proposal to stop.
GeoffreyBooth commentedon Feb 21, 2019
@bmeck Merged unflagged, certainly. But what about behind a flag like we're planning to do for defaults only? What was the reasoning behind not doing that?
I guess the question is what we should do if the dynamic modules approach continues to flounder at tc39. We can cut interop entirely, we can release defaults only flagged or unflagged, or we can release dynamic flagged. If we're going to release some version of interop behind a flag anyway, why not release full interop flagged rather than defaults only flagged?
Not meaning to start a debate here, just asking if these questions were addressed in the meeting. I don't recall us considering these options. If we didn't, I think we should review them in an upcoming meeting.
MylesBorins commentedon Feb 21, 2019
@GeoffreyBooth merging dynamic modules was discussed in the meeting and we did not have consensus to move forward with it
bmeck commentedon Feb 21, 2019
@GeoffreyBooth
Because we should be aiming towards what people can use reliably if we want to move forward with under our own power, rather than encouraging them to move to something that we may not have the power to ship. We do no service by encouraging what we already see as a currently unsafe/non-consensus route. We even have members seeking to block the proposal entirely so we are partly to blame for why it is not moving forward at TC39.
Default only and no interop work as things exist today. Encouraging usage of a feature and then removing it is much more jarring and requires more work than releasing minimal iterations that should be safe to use. If we cannot agree to ship with default only, we will ship without interop, this follows how this group has been able to make progress.
As with other features, we don't ship more when we lack consensus/clear ability to move forward; we remove controversial parts until we can agree on some smaller amount of things that are agreeable and under our ability to ship and do not cause conflict on their own.
GeoffreyBooth commentedon Feb 21, 2019
Sorry I think there's a misunderstanding. I meant, why not ship full interop behind a flag—a permanent flag. Not an experimental flag implying that the feature might someday get unflagged, but a flag for opting into nonstandard/non-spec compliant behavior. Is that not something that Node does?
bmeck commentedon Feb 21, 2019
@GeoffreyBooth not to my knowledge anywhere, however other runtimes built ontop of Node such as Meteor have done so.
MylesBorins commentedon Feb 21, 2019
@GeoffreyBooth I am not in support of this especially when it involves floating a patch on top of V8 that can prove to be unwieldily.
doc: 2019-02-20 Notes