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

Latest commit

 

History

History
262 lines (193 loc) · 9.19 KB

2017-02-01.md

File metadata and controls

262 lines (193 loc) · 9.19 KB

Node Foundation CTC Meeting 2017-02-01

Links

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

ctc-agenda

Previous Meeting Review


Minutes

ES Modules node-eps#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

@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).

deps: Add node-inspect node#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

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

http: support environment-defined proxy node#8381

Nothing new.

Symbol key props visible in inspection by default node#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 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)