Skip to content

Commit aa79aaf

Browse files
joshgavFishrock123
authored andcommitted
doc: add CTC meeting minutes 2016-06-15
PR-URL: #7320 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Rod Vagg <[email protected]>
1 parent ae17676 commit aa79aaf

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed

doc/ctc-meetings/2016-06-15.md

+175
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
# Node Foundation CTC Meeting 2016-06-15
2+
3+
## Links
4+
5+
* **Audio Recording**: https://www.youtube.com/watch?v=qWX8i9SKatQ
6+
* **GitHub Issue**: https://github.com/nodejs/node/issues/7307
7+
* **Minutes Google Doc**: <https://docs.google.com/document/d/1e7JdFHVtMtW9_o0Gi3NNz6g7TK50q4u9LYKFzBeHOQ8>
8+
* _Previous Minutes Google Doc: <https://docs.google.com/document/d/1G_sywyzJFPDzLv-KiG21L_4cIAP9_awQnP00ox8Nyiw>_
9+
10+
## Present
11+
12+
* Bradley Meck @bmeck (observer/GoDaddy)
13+
* Сковорода Никита Андреевич @ChALkeR (CTC)
14+
* Chris Dickinson @chrisdickinson (CTC)
15+
* Evan Lucas @evanlucas (CTC)
16+
* Jeremiah Senkpiel @Fishrock123 (CTC)
17+
* John-David Dalton @jdalton (observer/Microsoft)
18+
* Josh Gavant @joshgav (observer/Microsoft)
19+
* Michael Dawson @mhdawson (CTC)
20+
* Brian White @mscdex (CTC)
21+
* Ali Ijaz Sheikh @ofrobots (CTC)
22+
* Alexis Campailla @orangemocha (CTC)
23+
* Rod Vagg @rvagg (CTC)
24+
* Rich Trott @Trott (CTC)
25+
* Trevor Norris @trevnorris (CTC)
26+
27+
## Agenda
28+
29+
Extracted from **ctc-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting.
30+
31+
### nodejs/node
32+
33+
* url: return valid file: urls fom url.format() [#7234](https://github.com/nodejs/node/pull/7234)
34+
* http: don't inherit from Object.prototype [#6102](https://github.com/nodejs/node/pull/6102)
35+
36+
### Standup
37+
38+
* Bradley Meck @bmeck
39+
* fleshing out a proposal for if we could disambiguate the grammars for Script and Module.
40+
41+
* Сковорода Никита Андреевич @ChALkeR (CTC)
42+
* some issue/PRs reviews
43+
44+
* Chris Dickinson @chrisdickinson (CTC)
45+
* NodeConf
46+
* modules.guide
47+
48+
* Evan Lucas @evanlucas (CTC)
49+
* Preparing for security release
50+
51+
* Jeremiah Senkpiel @Fishrock123 (CTC)
52+
* (Previous week: fixed the primary OS X stdio bug)
53+
* NodeConf
54+
55+
* Fedor Indutny @indutny (CTC)
56+
* fixing bugs, reviewing PRs, working on llnode
57+
58+
* Josh Gavant @joshgav
59+
* debug protocol stuff
60+
61+
* Michael Dawson @mhdawson (CTC)
62+
* Still chasing PPC machine issues
63+
* AIX/malloc(0) issue
64+
* ABI stable module API work with Stefan/Ian, filling in Nan examples
65+
* Input on some benchmarking related PRs
66+
* Other misc reviews/lands
67+
* Keeping up with issues
68+
69+
* Brian White @mscdex (CTC)
70+
* Landed some old PRs
71+
* Submitting PRs to fix some regressions
72+
* Reviewed PRs and issues
73+
74+
* Ali Ijaz Sheikh @ofrobots (CTC)
75+
* More work on v8_inspector
76+
* Starting to look at backporting some V8 fixes for LTS
77+
78+
* Alexis Campailla @orangemocha (CTC)
79+
* Landed a fix for node-gyp, broke with VS update 3
80+
81+
* Rod Vagg @rvagg (CTC)
82+
* Alpine Linux in CI
83+
* Security release hoo haa
84+
* Reviews & discussions
85+
* Electron / Node relationship
86+
* New CTC repo
87+
* Jenkins upkeep
88+
89+
* Rich Trott @Trott (CTC)
90+
* Setting up the next onboarding
91+
* Facilitated a session on releases at NodeConf. Will share notes with Build WG, LTS WG, and people who can sign releases.
92+
93+
* Trevor Norris @trevnorris (CTC)
94+
* Finished updating AsyncWrap EP and now investigating proposed implementation.
95+
* Helping identify old issue in Atom editor in regards to writing to disk.
96+
97+
98+
### Review of last meeting
99+
* Tracking issue: stdio problems [#6980](https://github.com/nodejs/node/issues/6980)
100+
* module: expose `Module._runInThisContext` [#6288](https://github.com/nodejs/node/pull/6288)
101+
102+
103+
## Minutes
104+
105+
106+
### url: return valid file: urls from url.format() [#7234](https://github.com/nodejs/node/pull/7234)
107+
108+
@trott: semver-major change, needs approval from CTC.
109+
Real fix will be @jasnell’s HTTP compliance work.
110+
111+
In browsers `file:/home/joshgav/myfile.txt` is auto-corrected to `file:///home/joshgav/myfile.txt` (i.e. slashes are prepended to the path and hostname is an empty string). This change institutes the same in Node.js.
112+
113+
Are there other protocols which require additional slashes (`//`) if hostname isn’t specified? Yes, but hard to heuristically determine if needed.
114+
115+
116+
### http: don't inherit from Object.prototype [#6102](https://github.com/nodejs/node/pull/6102)
117+
118+
Replace headers object ({}) in req/res with StorageObject, which doesn’t delegate to Object.prototype. But this will break anyone using regular `Object` methods on header props.
119+
120+
@trevnorris: Why don’t we intercept calls to properties with checks to an internal dictionary of actual headers? If the key isn’t there, then try to call Object.prototype.
121+
122+
How would that effect perf?
123+
124+
It’s the right decision because otherwise can’t use headers with certain names like `__proto__`.
125+
126+
Better to do a deprecation cycle. How? Insert something (proxy) between actual call to property, would issue deprecation warning first. This would be temporary, eventually this interceptor/proxy would go away.
127+
128+
129+
### ES6 Modules [node-eps/002-es6-modules.md](https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md)
130+
131+
Need to disambiguate ES6 modules and regular scripts (which include CJS modules). Cannot determine if file is module, script, etc. from code itself. For this reason Node decided to use `.mjs` extension for ES6 modules.
132+
133+
New proposal: If `import` or `export` keywords are in module code, then use module goal. So no need for extra metadata or file extension. But would have to parse file to check for presence of these keywords.
134+
135+
https://github.com/bmeck/UnambiguousJavaScriptGrammar
136+
replaces https://github.com/nodejs/node-eps/blob/master/002-es6-modules.md#51-determining-if-source-is-an-es-module
137+
138+
This would be part of ECMA262 so browsers would do the same, but needs to be ironed out in TC39. On [agenda][TC39 Agenda] for 7/26 TC39 meeting.
139+
140+
[TC39 Agenda]: https://github.com/tc39/agendas/blob/master/2016/07.md
141+
142+
What if nothing is imported or exported? Could do `export default null` to export nothing.
143+
144+
Starting off, preferred goal when preparing code would be CommonJS/script, later on could change to ES6/module.
145+
146+
Caching is more feasible.
147+
148+
Provides more seamless flow from CJS to ES6 in the future.
149+
150+
Will packaging tools need to implement parsing logic too to package properly? Yes, but there are possibilities listed in the repo.
151+
152+
What other differences between scripts and modules?
153+
- `await` keyword only in modules according to ECMA262
154+
- `modules.root` in package.json is intended to allow mirrored directory structure for use with ES6; but technically all it does is redirect file system calls and it could be used for other purposes, so it’s not reliable.
155+
156+
Purpose of modules.root - allows redirection within a module, e.g. `module/file.js` doesn’t necessarily resolve to `./file.js` within the directory, could be redirected to `${module.root}/file.js`. This allows side-by-side CJS and ES6 among other things.
157+
158+
What about for human reading? How can people differentiate at a glance between CJS and ES6?
159+
- `import`’s are generally at the top, `export`s at the bottom. If you see `import` it’s an ES6 module.
160+
161+
How are browsers dealing with this? Older browsers which encounter `<script type=”module”>` and don’t recognize the type will skip it. Loading is asynchronous by default.
162+
163+
Are browsers concerned about transition period from CJS to ES6? How do they load older scripts, e.g. jQuery?
164+
165+
**Should Node move this forward as alternative to `.mjs` proposal?**
166+
167+
TBD. What does TC39 think of this? It’s on agenda for next F2F (see above).
168+
169+
170+
### Q/A on public fora
171+
None.
172+
173+
## Next Meeting
174+
2016-06-22
175+

0 commit comments

Comments
 (0)