This repository has been archived by the owner on Sep 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 43
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
814bb7b
commit 7a8df46
Showing
1 changed file
with
112 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# Node.js Foundation Modules Team Meeting 2018-11-07 | ||
|
||
* **Recording**: https://www.youtube.com/watch?v=b8wLboT_A_0 | ||
* **GitHub Issue**: https://github.com/nodejs/modules/issues/217 | ||
* **Minutes Google Doc**: https://docs.google.com/document/d/1PdkHSzthrjBHx3OzUaEL5Vqa2L4WtAs8WdJl_L6HT6E/edit | ||
|
||
## Present | ||
|
||
- Matt DuLeone (@mduleone) | ||
- Gus Caplan (@devsnek) | ||
- Daniel Rosenwasser (@DanielRosenwasser) | ||
- Wesley Wigham (@weswigham) | ||
- Geoffrey Booth (@GeoffreyBooth) | ||
- Myles Borins (@MylesBorins) | ||
- Guy Bedford (@guybedford) | ||
- Ujjwal Sharma (@ryzokuken) | ||
- Michael Zasso (@targos) | ||
- Jordan Harband (@ljharb) | ||
- Jan Krems (@jkrems) | ||
- Gil Tayar (@giltayar) | ||
|
||
## Agenda | ||
|
||
Extracted from **modules-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. | ||
|
||
### Approving PRs (12 minute timebox) | ||
|
||
* Add @ryzokuken as Observer [#213](https://github.com/nodejs/modules/issues/213) | ||
- 1 minute timbox | ||
- No objections. | ||
* @bmacnaughton requesting membership/observer [#211](https://github.com/nodejs/modules/issues/211) | ||
- 1 minute timbox | ||
- No objections. | ||
* esm: refactor dynamic modules [#9](https://github.com/nodejs/ecmascript-modules/pull/9) | ||
- 5 minute timebox | ||
- Gus: Was able to avoid a double module wrap - no behavioral change, just an optimization. | ||
- Awkward silence? | ||
- Myles has dropped out of the call - Brad is the host now! | ||
- Any objections? | ||
- Nope. | ||
- Action item: Gus, can you land this and upstream it? | ||
* Add format distinction to phase 2 [#215](https://github.com/nodejs/modules/pull/215) | ||
- 5 minute timebox | ||
- Guy: at the moment we only have support for top-level execution of ES Modules and you can only import ES modules. | ||
- Trying to provide a distinction for formats in which a module can be imported - want to move this into the phase 2 discussions. | ||
- Action item: Guy can you land the PR and lead the discussions? | ||
|
||
### Update on Progress (1 minute timebox) | ||
|
||
* Surveys: Members formally taking ownership (leadership) is the next step [#209](https://github.com/nodejs/modules/issues/209) | ||
- 1 minute timebox | ||
- Saleh: As a group we must decide how we want to proceed with the survey. | ||
- Must find a way to distribute work in the group for this. | ||
- Jan: is there a list of things that still need to be done? | ||
- Saleh: just simply need people to drive questions they want answered. | ||
|
||
### Discussion (40 Minute Timebox) | ||
|
||
* keeping ecmascript-modules up to date [#197](https://github.com/nodejs/modules/issues/197) | ||
- 10 minute timebox | ||
- Myles: this repository hasn't been actively rebased against `master` | ||
- Silence | ||
- Myles: as a suggestion, let's rebase and allow force rebases on the fork | ||
- Guy: force rebase is kind of hard to review; can we do a 2-branch master for reviews? | ||
- Jordan: ideally these things should be fast-forward rebased so that we can stay as close as possible to the original history. | ||
- Action item: Ryzo will write up a proposal for the process in mind. | ||
* Dynamic Modules Status [#188](https://github.com/nodejs/modules/issues/188) | ||
- 10 minute timebox | ||
- Guy: Gus originally wrote a PR to support importing from CJS | ||
- It was blocked because in the spec it appeared that you need to know the named exports ahead of time. | ||
- But CJS modules don't have statically analyzable imports; you need to run the module to know what's available. | ||
- TC39 is open to allowing exports to be specified during the execution phase. | ||
- Technical changes involve applying TDZ to uninitialized exports. | ||
- Implementation seems to be going well in V8. | ||
- Jordan: got the chance to raise it with TC39 editors group | ||
- Gil: what were the changes in the spec that were needed? | ||
- Guy: Two changes: (1) need to be able to throw during the instantiation phase (in the GetExportedNames function). (2) being able to track namespace records from dynamic modules | ||
* esm resolver spec and implementation refinements [#12](https://github.com/nodejs/ecmascript-modules/pull/12) | ||
- 15 minute timebox | ||
- Guy: want a public resolver spec as a "source of truth" for ESM resolution | ||
- Today | ||
- Error messages aren't that great | ||
- no context on which module caused the error | ||
- no single quotes around the specifier | ||
- doesn't tell you when you try to use an import like a `require()` | ||
- Proposal: provide that information! | ||
- Scoped package resolution: | ||
- Gil: Seems like a potential problem that we'd now be parsing our paths. | ||
- Package resolution keeps walking up the spine, doesn't tell you where you imported from | ||
- Proposal: keep the first node_module path you hit for a deep import, then stop. | ||
- Brad: when we looked through who was using it, we found exactly one hard dependency. | ||
* Explicit package exports proposal (https://github.com/jkrems/proposal-pkg-exports) | ||
- 5 minute timebox (if there is time) | ||
- Jan | ||
- Bare imports behavior is very, well, bare. | ||
- People don't typically use extensions. | ||
- Multiple independent APIs in a single package. | ||
- First draft of a proposal. | ||
- Declare what the public interface is via an `"exports"` field in `package.json`. | ||
|
||
```json5 | ||
"exports": { | ||
"": "./src/moment.mjs", | ||
"/": "./src/util/", | ||
"/timezones/": "./data/timezones/", | ||
"/timezones/utc": "./data/timezones/utc/index.mjs" | ||
} | ||
``` | ||
|
||
- Brad: I would like to see how to deal with multiple "modes" (e.g. GraphQL). | ||
- GraphQL introduced multiple modes and ended up eventually splitting into two different packages. | ||
|