Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
docs: CTC meeting minutes 2017-02-01
Browse files Browse the repository at this point in the history
PR-URL: #66
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
  • Loading branch information
joshgav committed Feb 8, 2017
1 parent 5ddc048 commit fa33091
Showing 1 changed file with 262 additions and 0 deletions.
262 changes: 262 additions & 0 deletions meetings/2017-02-01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
# Node Foundation CTC Meeting 2017-02-01

## Links

* **Audio Recording**: <https://www.youtube.com/watch?v=8RIHCe3sFLU>
* **GitHub Issue**: [CTC#65](https://github.com/nodejs/CTC/issues/65)
* **Minutes Google Doc**:
<https://docs.google.com/document/d/1AQWL7iqMtnlhE3ylrc1d55lxVrisl-pjKKwIqP1al10>
* _Previous Minutes Google Doc:
<https://docs.google.com/document/d/15CWMkzOEeXEGqqt6S7j9cTk787azjMX2sozAdYEXm0g>_
## Present

* Anna Henningsen @addaleax (CTC)
* Bradley Meck @bmeck (observer/GoDaddy/TC39)
* Evan Lucas @evanlucas (CTC)
* Jeremiah Senkpiel @Fishrock123 (CTC)
* James M Snell @jasnell (CTC)
* Josh Gavant @joshgav (observer/Microsoft)
* Michael Dawson @mhdawson (CTC)
* Myles Borins @MylesBorins (CTC)
* Ali Ijaz Sheikh @ofrobots (CTC)
* Jenn Turner @renrutnnej (observer/Node.js Foundation)
* Rod Vagg @rvagg (CTC)
* Michaël Zasso @targos (CTC)
* Sakthipriyan Vairamani @thefourtheye (CTC)
* Rich Trott @Trott (CTC)
* Brian White @mscdex (CTC)

## Standup

* Anna Henningsen @addaleax (CTC)
* TC39 last week
* Onboarded @abouthiroppy
* Issue & PR review
* Bradley Meck @bmeck (observer/GoDaddy/TC39)
* TC39
* Evan Lucas @evanlucas (CTC)
* Cut v7.5.0 release
* Submitted PR for guide on backporting PRs
* Jeremiah Senkpiel @Fishrock123 (CTC)
* ES Modules Call with people with experience teaching programming to new
learners
* Misc stuff in my backlog
* James M Snell @jasnell (CTC)
* Some progress on HTTP2
* Some PRs landed incl. deprecation policy
* Josh Gavant @joshgav (observer/Microsoft)
* bit of diagnostic stuff
* Michael Dawson @mhdawson (CTC)
* updates to smartos build test job to allow new V8 to land
* updates to benchmarking chart gen (dropping 0.12.x + misc)
* reviewing/testing make coverage in ci.
* setting up special benchmarking meetings this week
* ongoing work with team working on ABI stable module API
* general review/comments/lands
* Brian White @mscdex (CTC)
* Reviewing PRs, commenting on issues
* Myles Borins @MylesBorins (CTC)
* Security release for v4 and v6
* Getting up to speed with new gig
* Review of PRs / Issues
* CITGM minor release
* TC39 last week
* Ali Ijaz Sheikh @ofrobots (CTC)
* Mostly internal stuff.
* Some work on the V8 lkgr + node integration build.
* Jenn Turner @renrutnnej (observer/Node.js Foundation)
* Observing
* Michaël Zasso @targos (CTC)
* PR and issue review
* Open PR to backport V8 5.5 in v7.x
* Rich Trott @Trott (CTC)
* Usual bunch of small things (fix a flaky test here, review a PR
there), hey, we have a full agenda, let’s just get right to it.

## Agenda

### ctc-review

* Updating the Copyright [TSC#174](https://github.com/nodejs/TSC/issues/174)
* [WIP] meta: update copyright statements
[node#10599](https://github.com/nodejs/node/pull/10599)
* [WIP] Restore copyright attribution
[node#10155](https://github.com/nodejs/node/pull/10155)
* meta: deprecation policy [node#7964](https://github.com/nodejs/node/pull/7964)
* lib: deprecate node --debug at runtime
[node#10970](https://github.com/nodejs/node/pull/10970)
* fs: runtime deprecation for fs.SyncWriteStream
[node#10467](https://github.com/nodejs/node/pull/10467)
* tty: remove NODE_TTY_UNSAFE_ASYNC
[node#10393](https://github.com/nodejs/node/pull/10393)

### ctc-agenda

* Rewrite 002 - esm [node-eps#39](https://github.com/nodejs/node-eps/pull/39)
* assert: enforce type check in deepStrictEqual
[node#10282](https://github.com/nodejs/node/pull/10282)
* deps: Add node-inspect [node#10187](https://github.com/nodejs/node/pull/10187)
* lib: be robust when process global is clobbered
[node#10135](https://github.com/nodejs/node/pull/10135)
* http: support environment-defined proxy
[node#8381](https://github.com/nodejs/node/issues/8381)


## Previous Meeting Review

* Updating the Copyright [TSC#174](https://github.com/nodejs/TSC/issues/174)
* [WIP] Restore copyright attribution
[node#10155](https://github.com/nodejs/node/pull/10155)
* [WIP] meta: update copyright statements
[node#10599](https://github.com/nodejs/node/pull/10599)
* lib: be robust when process global is clobbered
[node#10135](https://github.com/nodejs/node/pull/10135)
* process: Add code to warnings, assign codes to deprecations
[node#10116](https://github.com/nodejs/node/pull/10116)
* meta: deprecation policy [node#7964](https://github.com/nodejs/node/pull/7964)
* assert: enforce type check in deepStrictEqual
[node#10282](https://github.com/nodejs/node/pull/10282)
* http: support environment-defined proxy
[node#8381](https://github.com/nodejs/node/issues/8381)
* deps: Add node-inspect [node#10187](https://github.com/nodejs/node/pull/10187)
* Rewrite 002 - esm [node-eps#39](https://github.com/nodejs/node-eps/pull/39)

---

## Minutes

### ES Modules [node-eps#39](https://github.com/nodejs/node-eps/pull/39)

See
<https://docs.google.com/presentation/d/1xZILfv5WeUBKyQ9s1w8zArNgzTMGRFQXyRseSskjcjw>

Does Node.js want to ship a synchronous or asynchronous module loader? That is,
should `require` return a Promise or an Object, i.e. a module namespace object?

Temporal Dead Zone when returning module namespace object for an ES module; when
returning a Promise a TDZ exists but is past by the time the Promise is
fulfilled. But this isn’t how Babel does it.

@bmeck looking for specific direction from CTC, asked for vote.

@jasnell: should be a clear separation between require/CJS and import/ESM,
perhaps support async for import but not require.

@mylesborins: modules written for web will expect an async loader, and would be
best for Node.js to match browser behavior as much as possible.

@bmeck: browsers will move more and more to async loading.

@addaleax: having an async loader matches expected behavior in other places,
like top-level `await`.

@bmeck: synchronous loader and top-level `await` are mutually exclusive, can’t
do both.

@ofrobots: if we go async in Node we will disturb ecosystem which expects all to
be sync. Yet if we go sync we will lose compat with browsers and web.

@bmeck: browsers don’t have the option to ship an async loader.

@addaleax: an async loader wouldn’t effect CJS modules so concerns can be
addressed as authors move to ES modules. So wouldn’t be so disruptive.

@Fishrock123: Getting opinions from trainers of new users if this will make
learning curve steeper. Would be best if `require` is only sync. Async loader
could handle circular deps better, so that’s good.

Suggest using require for CJS and import for ES.

@Trott: We're voting on an EP not landing an implementation, which means that we
can change course later if necessary.

Are we debating changing `require` or just `import`?

`import(‘es’)` will always return a Promise, `require(‘cjs’)` will always return
an object. Question is `require(‘es’)` and `import(‘cjs’)`.

@jasnell: supporting both async and sync will be difficult.

@evanlucas: biggest concern is breaking ecosystem in order to support future
browsers.

@bmeck: but we’re breaking them anyway cause we can’t support named imports
(which break Babel transpilation of ES).

How will a sync loader affect future module usage and development in JS/TC39?
* Would disallow top-level await.
* Circular dependencies with asynchronously loaded ES modules.

Q: Why does Node.js want to have synchronous imports?
A: So that you can require an ES module and have it behave in the same way as a
CJS module.

@jasnell called for a vote next week, @Fishrock123 seconded.

**Next steps**

* Vote by next week.

---

### assert: enforce type check in deepStrictEqual [node#10282](https://github.com/nodejs/node/pull/10282)

@Trott: Suggest allowing internal changes as long as they don’t change API
surface.

@Fishrock123: Current policy is not to change unless needed by core.

Should we unlock `assert` for API changes?

Perhaps not, but we should still support new ES constructs within existing API.

@mylesborins will open an issue to re-evaluate what “locked” policy means,
becuase JS language changes happen more frequently now.

**Next steps**

* @Trott to draft proposal based on this discussion as PR
(see [node#11113](https://github.com/nodejs/node/pull/11113)).

---

### deps: Add node-inspect [node#10187](https://github.com/nodejs/node/pull/10187)

* Land node-inspect in deps?
* Integrate as `node inspect` or `node debug`.

If we leave in deps and vendor out we could integrate more directly in the
future. In the meantime, this is a good experiment for vendoring out modules.

---

### lib: be robust when process global is clobbered [node#10135](https://github.com/nodejs/node/pull/10135)

PR has not yet been updated to remove non-writable aspect.

### http: support environment-defined proxy [node#8381](https://github.com/nodejs/node/issues/8381)

Nothing new.

### Symbol key props visible in inspection by default [node#9726](https://github.com/nodejs/node/pull/9726)

3 CTC members are reviewing.

---

## Q/A on public channels

Q: How to get more people involved in ES module discussion?
A: Comment on the [node-eps#39](https://github.com/nodejs/node-eps/pull/39)
issue.

---

## Upcoming Meetings

Node.js Foundation Calendar:
https://calendar.google.com/calendar/embed?src=kap.co_i17i575te0aes6kaanfjr2e4hs%40group.calendar.google.com

* CTC: 2017-02-08, 0500 UTC (Tuesday 0900 US Pacific)
* TSC: 2017-02-09, 2000 UTC (Thursday 1200 US Pacific)

0 comments on commit fa33091

Please sign in to comment.