Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.
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
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)