From fa33091646e89e3155c147dbbd532bb6bc5e162d Mon Sep 17 00:00:00 2001 From: Josh Gavant Date: Wed, 1 Feb 2017 13:37:59 -0800 Subject: [PATCH] docs: CTC meeting minutes 2017-02-01 PR-URL: https://github.com/nodejs/CTC/pull/66 Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Michael Dawson Reviewed-By: Evan Lucas --- meetings/2017-02-01.md | 262 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 meetings/2017-02-01.md diff --git a/meetings/2017-02-01.md b/meetings/2017-02-01.md new file mode 100644 index 0000000..0e59463 --- /dev/null +++ b/meetings/2017-02-01.md @@ -0,0 +1,262 @@ +# Node Foundation CTC Meeting 2017-02-01 + +## Links + +* **Audio Recording**: +* **GitHub Issue**: [CTC#65](https://github.com/nodejs/CTC/issues/65) +* **Minutes Google Doc**: + +* _Previous Minutes Google Doc: + _ +## 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 + + +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) +