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

doc: 2019-01-30 notes #265

Merged
merged 2 commits into from
Feb 20, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions doc/meetings/2019-01-30.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Node.js Foundation Modules Team Meeting 2019-01-30

* **Recording**: https://www.youtube.com/watch?v=a1YraH8GoHk
* **GitHub Issue**: https://github.com/nodejs/modules/issues/258
* **Minutes Google Doc**: https://docs.google.com/document/d/1yx4k1syLuMU_98sa2ASu3mgXSJ4-9Lac8uWzqIlEoYc/edit

## Present

- Saleh Abdel Motaal (@smotaal)
- Myles Borins (@MylesBorins)
- Geoffrey Booth (@GeoffreyBooth)
- Matt DuLeone (@mduleone)
- Wesley Wigham (@weswigham)
- Jan Krems (@jkrems)
- Guy Bedford (@guybedford)
- Michael Zasso (@targos)
- John-David Dalton (@jdalton)
- Gus Caplan (@devsnek)
- Hassan Sani (@inidaname)
- Daniel Rosenwasser (@DanielRosenwasser)
- Ahmad Abdul-Aziz (@devamaz)
- Jordan Harband (@ljharb)

## Agenda

Extracted from **modules-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting.

### Announcements

* --eval, STDIN, and extensionless files [#251](https://github.com/nodejs/modules/pull/251)

Please express interest in the thread

### Discussion

* Slack channel [#249](https://github.com/nodejs/modules/pull/249)
- 5 minute timebox
* Dynamic Modules Development in Node.js [#24894](https://github.com/nodejs/node/issues/24894)
- 15 minute timebox
- Guy: briefly went through the change
- Was some resistance from Till
- Some concern about whether dynamic modules loosen certain invariants
- Have been promises from TC39 over the years that these issues would be worked on, but there's not necessarily any implementation feedback except that there could potentially be a spec exception to "here's how this is allowed to work"
- Brad
- Domenic Denicola and AWB were not able to attend, so they weren't present to object, but they have raised concerns over GitHub.
- The "forbids" clause over other implementations seems like it could alleviate certain concerns.
- AWB is concerned around existing invariants, Domenic wants to have a separate web standard and a specific behavior for Node.
- Myles: This probably won't happen today. It probably won't happen quickly if it does.
It feels like it may not happen.
- JDD: I have a sunnier disposition. Sounds like there might be a path here.
- Daniel: Same. Really sounded like Till's concern was about browsers taking on the "exceptional' behavior.
- Brad: Ben Newman from Meteor sounded like the current design was incomplete.
- Myles: May need to come up with a come up with something by the March meeting
- Saleh: need to have a parallel approach that can defer to a JS polyfill.
- Myles: I don't think the concern is implementation, just about consensus and staying conformant with the spec
- Guy: Node doesn't generally add its own functionality to V8, and keeping any sort of implementation synced with V8 might be a pain.
- Jeff: Can't have interop without planning for it.
- Brad: Saying "no ESM interop" could keep things open and work towards it, and use a loader otherwise.
- JDD: What's the future look like if it doesn't happen?
- Myles: fill this in
- Jordan: Trying to lock down a design in the next 2 months out of a sense of urgency is probably not the right way to go about this.
* Minimum to release? [#253](https://github.com/nodejs/modules/issues/253)
- 15 minute timebox
- Myles: Cut Node 12 in April - any semantically versioned changes need to go in by mid-March
- the only thing that would need to go in is the new "package fields" proposals
- but the longer it sits and stuff touches it, the harder it is to modify/remove
- Myles: We need to ship something. We have decision paralysis.
- Joke - we wanted to avoid a Python 2/Python 3 decision, but in the time it took to decide all this, Python has fixed their ecosystem
- Provide named exports in April if we can; if not, don't provide transparent interop.
- Figuring out file extensions and IRP proposals seem like they could be done, but must be done.
- Saleh: shouldn't take away experimental features that would otherwise be useful due to issues around risk
- JDD: We give people explicit warranties not to use experimental stuff!
- Jordan: people have to learn their lesson with breaking changes - they shouldn't be relied on.
- Guy: Having the capability with an experimental loader hook, you'd be able to generally address the broader concerns including interop.
- Myles: things we need to tackle
- \[\[Fill this in]]
- file specifier resolution
- Missing features
- loaders & VM
- If we copied over the minimal kernel as it exists today, we'd lose functionality for putting ES modules in VM. Is that a blocker?
- Gus: they're a separate feature, it should be fine to merge in both
- Jans: At least from what I remember, the VM module leaked a lot of information about how modules work. Keeping the VM module in the minimal kernel would actually restrict our design space.
- Jeff: adding a list to the required features, there's things like entry points.
- Myles: Realms are probably coming eventually - the truly perfect solution to VM modules would be realms.
- Brad: Realms don't let you create new modules. The APIs are *very* different as well.
- Myles: but can the same things achievable in Realms?
- Brad: largely, yes
- Myles: so what if we ship vm as deprecated the same way domains are? Would that be fine?
- Jans: it's always a known unknown.
- Myles: can you work on this between now and when we want to ship?
- Jans: sure
- Myles: can we just flag vm module support? seems like it's not blocking
- Action item: Myles to come up with a list of blocking and non-blocking issues
- Saleh: could imagine an experimental module loader that tries to achieve the same things as vm.

* WIP \[Do not merge\] - Irp type modules [#29](https://github.com/nodejs/ecmascript-modules/pull/28)
- 15 minute timebox
- Refs:
- Mode: esm proposal [#247](https://github.com/nodejs/modules/issues/247)



* Import file specifier proposal implementation [#256](https://github.com/nodejs/modules/issues/256)
- 5 minute timebox

Can land if we have consensus by next wednesday