Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8.1.0 Proposal #13483

Closed
wants to merge 115 commits into from
Closed

8.1.0 Proposal #13483

wants to merge 115 commits into from

Conversation

jasnell
Copy link
Member

@jasnell jasnell commented Jun 5, 2017

Node.js 8.1.0 Proposal

/cc @nodejs/release

Notable Changes

  • Async Hooks
    • When one Promise leads to the creation of a new Promise, the parent
      Promise will be identified as the trigger
      [135f4e6643]
      #13367.
  • File system
    • The fs.exists() function now works correctly with util.promisify()
      [6e0eccd7a1]
      #13316.
  • Inspector
    • It is now possible to bind to a random port using --inspect=0
      [cc6ec2fb27]
      #5025.
  • Zlib
    • A regression in the Zlib module that made it impossible to properly
      subclasses zlib.Deflate and other Zlib classes has been fixed.
      [6aeb555cc4]
      #13374.

Commits

  • [47c9de9842] - assert: fix deepEqual RangeError: Maximum call stack size exceeded (rmdm) #13318
  • [135f4e6643] - (SEMVER-MINOR) async_hooks: use parent promise as triggerId (JiaLi.Passion) #13367
  • [9db02dcc85] - async_hooks,http: fix socket reuse with Agent (Anna Henningsen) #13348
  • [6917df2a80] - async_wrap: run destroy in uv_timer_t (Trevor Norris) #13369
  • [291669e7d8] - build: streamline JS test suites in Makefile (Rich Trott) #13340
  • [dcadeb4fef] - build: fix typo (Nikolai Vavilov) #13396
  • [50b5f8bac0] - crypto: clear err stack after ECDH::BufferToPoint (Ryan Kelly) #13275
  • [035a81b2e6] - deps: update openssl asm and asm_obsolete files (Daniel Bevenius) #13233
  • [6f57554650] - deps: update openssl config files (Daniel Bevenius) #13233
  • [1b8b82d076] - deps: add -no_rand_screen to openssl s_client (Shigeki Ohtsu) nodejs/io.js#1836
  • [783294add1] - deps: fix asm build error of openssl in x86_win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [db7419bead] - deps: fix openssl assembly error on ia32 win32 (Fedor Indutny) iojs/io.js#1389
  • [dd93fa677a] - deps: copy all openssl header files to include dir (Daniel Bevenius) #13233
  • [d9191f6e18] - deps: upgrade openssl sources to 1.0.2l (Daniel Bevenius) #13233
  • [92de432780] - dns: use faster IP address type check on results (Brian White) #13261
  • [007a033820] - dns: improve callback performance (Brian White) #13261
  • [414da1b7a1] - doc: fix nits in code examples of async_hooks.md (Vse Mozhet Byt) #13400
  • [159294d7d5] - doc: use prefer-rest-params eslint rule in docs (Vse Mozhet Byt) #13389
  • [641979b213] - doc: resume a stream after pipe() and unpipe() (Matteo Collina) #13329
  • [6c56bbdf13] - doc: add missing backticks to doc/api/tls.md (Paul Bininda) #13394
  • [837ecc01eb] - doc: update who to cc for async_hooks (Anna Henningsen) #13332
  • [52c0c47856] - doc: suggest xcode-select --install (Gibson Fahnestock) #13264
  • [11e428dd99] - doc: add require modules in url.md (Daijiro Wachi) #13365
  • [2d25e09b0f] - doc: add object-curly-spacing to doc/.eslintrc (Vse Mozhet Byt) #13354
  • [6cd5312b22] - doc: unify spaces in object literals (Vse Mozhet Byt) #13354
  • [4e687605ee] - doc: use destructuring in code examples (Vse Mozhet Byt) #13349
  • [1b192f936a] - doc: fix code examples in zlib.md (Vse Mozhet Byt) #13342
  • [a872399ddb] - doc: update who to cc for n-api (Michael Dawson) #13335
  • [90417e8ced] - doc: add missing make command to UPGRADING.md (Daniel Bevenius) #13233
  • [3c55d1aea4] - doc: refine spaces in example from vm.md (Vse Mozhet Byt) #13334
  • [1729574cd7] - doc: fix link in CHANGELOG_V8 (James, please) #13313
  • [16605cc3e4] - doc: add async_hooks, n-api to _toc.md and all.md (Vse Mozhet Byt) #13379
  • [eb6e9a0c9a] - doc: remove 'you' from writing-tests.md (Michael Dawson) #13319
  • [e4f37568e2] - doc: fix date for 8.0.0 changelog (Myles Borins) #13360
  • [41f0af524d] - doc: async-hooks documentation (Thorsten Lorenz) #13287
  • [b8b0bfb1a7] - doc: add tniessen to collaborators (Tobias Nießen) #13371
  • [561c14ba12] - doc: modernize and fix code examples in util.md (Vse Mozhet Byt) #13298
  • [c2d7b41ac7] - doc: fix code examples in url.md (Vse Mozhet Byt) #13288
  • [243643e5e4] - doc: fix typo in n-api.md (JongChan Choi) #13323
  • [bee1421501] - doc: fix doc styles (Daijiro Wachi) #13270
  • [44c8ea32df] - doc,stream: clarify 'data', pipe() and 'readable' (Matteo Collina) #13432
  • [6e0eccd7a1] - (SEMVER-MINOR) fs: promisify exists correctly (Dan Fabulich) #13316
  • [b3c9bff254] - http: describe parse err in debug output (Sam Roberts) #13206
  • [c7ebf6ea70] - http: suppress data event if req aborted (Yihong Wang) #13260
  • [376ac5fc3e] - inspector: Allows reentry when paused (Eugene Ostroukhov) #13350
  • [7f0aa3f4bd] - inspector: refactor to rename and comment methods (Sam Roberts) #13321
  • [cc6ec2fb27] - (SEMVER-MINOR) inspector: bind to random port with --inspect=0 (Ben Noordhuis) #5025
  • [a95f080160] - n-api: enable napi_wrap() to work with any object (Jason Ginchereau) #13250
  • [b5409abf9a] - openssl: fix keypress requirement in apps on win32 (Shigeki Ohtsu) iojs/io.js#1389
  • [81ddeb98f6] - readline: clean up event listener in onNewListener (Gibson Fahnestock) #13266
  • [8620aad573] - src: added newline in help message (Josh Ferge) #13315
  • [339d220eed] - test: rearrange inspector headers into convention (Sam Roberts) #13428
  • [8c7f9da489] - test: improve async hooks test error messages (Anna Henningsen) #13243
  • [818c935add] - test: test async-hook triggerId properties (Dávid Szakállas) #13328
  • [29f19b6d39] - test: add documentation for common.mustNotCall() (Rich Trott) #13359
  • [c208f9d51f] - test: check destroy hooks are called before exit (Anna Henningsen) #13369
  • [406c2cd8e4] - test: make test-fs-watchfile reliable (Rich Trott) #13385
  • [93e91a4f3f] - test: check inspector support in test/inspector (Daniel Bevenius) #13324
  • [d1b39d92d6] - test: add known_test request with Unicode in the URL (David D Lowe) #13297
  • [dccd1d2d31] - test: improve dns internet test case (Brian White) #13261
  • [e20f3577d0] - test: improve test-https-server-keep-alive-timeout (Rich Trott) #13312
  • [2a29c07d9e] - test: mark inspector-port-zero-cluster as flaky (Refael Ackermann)
  • [b16dd98387] - test: consolidate n-api test addons (Michael Dawson) #13317
  • [830049f784] - test: refactor test-net-server-bind (Rich Trott) #13273
  • [9df8e2a3e9] - test: use mustCall() in test-readline-interface (Rich Trott) #13259
  • [25a05e5db1] - test: fix flaky test-fs-watchfile on macOS (Rich Trott) #13252
  • [ec357bf88f] - test: use mustNotCall() in test-stream2-objects (Rich Trott) #13249
  • [5369359d52] - test: Make N-API weak-ref GC tests asynchronous (Jason Ginchereau) #13121
  • [7cc6fd8403] - test: improve n-api coverage for typed arrays (Michael Dawson) #13244
  • [a2d49545a7] - test: support candidate V8 versions (Michaël Zasso) #13282
  • [f0ad3bb695] - test: hasCrypto https-server-keep-alive-timeout (Daniel Bevenius) #13253
  • [bccda4f2b8] - tools: be explicit about including key-id (Myles Borins) #13309
  • [d4d138c6e9] - url: do not pass WHATWG host to http.request (Tobias Nießen) #13409
  • [315c3aaf43] - url: more precise URLSearchParams constructor (Timothy Gu) #13026
  • [1bcda5efda] - util: refactor format method.Performance improved. (Jesus Seijas) #12407
  • [6aeb555cc4] - zlib: revert back to Functions (James M Snell) #13374
  • [cc3174a937] - (SEMVER-MINOR) zlib: expose amount of data read for engines (Alexander O'Mara) #13088
  • [bb77d6c1cc] - (SEMVER-MINOR) zlib: option for engine in convenience methods (Alexander O'Mara) #13089

danbev and others added 30 commits June 5, 2017 12:18
Currently this test will fail with the following error message when
configured --without-ssl:
Error: Node.js is not compiled with openssl crypto support

This commit checks for crypto and skips this tests if such support
is not available.

PR-URL: #13253
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
When V8 is built from its master branch, it adds a " (candidate)"
suffix to the version string. Add support for that in the tests so it
does not fail with Node canary.

PR-URL: #13282
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Allow binding to a randomly assigned port number with `--inspect=0`
or `--inspect-brk=0`.

PR-URL: #5025
Refs: #4419
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
BUILDING.md
  + L122: Missing code-language flag
  + L170: Strong should use `*` as a marker

doc/changelogs/CHANGELOG_V6.md
  + L1494: Don't pad `emphasis` with inner spaces

doc/guides/maintaining-V8.md
  + L3: Don't use multiple top level headings
  + L16: Don't use multiple top level headings
  + L40: Don't use multiple top level headings
  + L124: Don't use multiple top level headings
  + L182: Missing code-language flag
  + L223: Don't use multiple top level headings
  + L288: Don't use multiple top level headings
  + L307: Don't use multiple top level headings

doc/guides/writing-tests.md
  + L322: Missing code-language flag
  + L329: Missing code-language flag

doc/releases.md
  + L299: Missing code-language flag

PR-URL: #13270
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Add testing for all types of typed arrays.
Add testing for napi_is_arraybuffer.

PR-URL: #13244
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Kunal Pathak <kunal.pathak@microsoft.com>
Reviewed-By: Hitesh Kanwathirtha <digitalinfinity@gmail.com>
One of the N-API weak-reference test cases already had to be made
asynchronous to handle different behavior in a newer V8 version:
#12864
When porting N-API to Node-ChakraCore, we found more of the test
cases needed similar treatment:
nodejs/node-chakracore#246 So to make
thes tests more robust (and avoid having differences in the test code
for Node-ChakraCore), I am refactoring the tests in this file to
insert a `setImmedate()` callback before every call to `gc()` and
assertions about the effects of the GC.

PR-URL: #13121
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Use `common.mustNotCall()` in test-stream2-objects.js to confirm that
noop function is never invoked.

PR-URL: #13249
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
On macOS, a watcher created with fs.watch() does not necessarily
start receiving events immediately. So it can miss a change by
fs.writefile() if it comes very soon after the watcher is created. Fix
test flakiness caused by this by using `setInterval()` to repeat the
write action.

PR-URL: #13252
Fixes: #13248
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #13323
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Re-enable test-http-abort-stream-end and put it into parallel
category. Use system random port when calling server.listen()
and fix eslint errors.

After calling request.abort(), in order to avoid the buffered
data to trigger the 'data' event, explicitly remove 'data' event
listeners.

PR-URL: #13260
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Functions that call `ECDH::BufferToPoint` were not clearing the
error stack on failure, so an invalid key could leave leftover
error state and cause subsequent (unrelated) signing operations
to fail.

PR-URL: #13275
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Use `common.mustCall()` to make sure noop function is called as
expected.

PR-URL: #13259
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Added option to expose engine to convenience methods

Refs: #8874
PR-URL: #13089
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Added bytesRead property to Zlib engines

Fixes: #8874
PR-URL: #13088
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
* Update outputs.
* Refine spaces.
* Restore missing part.

PR-URL: #13288
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
* Use common.mustNotCall() and common.mustCall() as appropriate
* Use block scoping
* Move assertions out of `exit` handler and into callbacks
* Order assert.strictEqual() args per docs
* Remove console.log() calls
* Move test from `parallel` to `sequential` so `common.PORT` can be used
  without conflicting with OS-provided ports in other `parallel` tests

PR-URL: #13273
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
* Remove useless constructor.

* Use template literals.

* Update code example.
  Now all arrays with just holes are outputted the same way.
  In the fixed example, it was `[ <101 empty items> ]` twice.

PR-URL: #13298
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #13371
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Previously, napi_wrap() would only work with objects created from a
constructor returned by napi_define_class(). While the N-API team
was aware of this limitation, it was not clearly documented and is
likely to cause confusion anyway. It's much simpler if addons are
allowed to use any JS object. Also, the specific behavior of the
limitation is difficult to reimplement on other VMs that work
differently from V8.

V8 requires object internal fields to be declared on the object
prototype (which napi_define_class() used to do). Since it's too
late to modify the object prototype by the time napi_wrap() is
called, napi_wrap() now inserts a new object (with the internal
field) into the supplied object's prototype chain. Then it can be
retrieved from there later by napi_unwrap().

This change also includes improvements to the documentation for
napi_create_external(), partly to explain how it is different from
napi_wrap().

PR-URL: #13250
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Author: Thorsten Lorenz <thlorenz@gmx.de>
Author: Andreas Madsen <amwebdk@gmail.com>
PR-URL: #13287
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Fixes #13356

PR-URL: #13360
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
It takes time to build each of the addons used to test n-api.
Consolidate a few of the smaller ones to save build time.

PR-URL: #13317
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Noticed this while reading through writing-tests.md today.
As per style guide avoid the use of you, your etc.
Rational as per: http://www2.ivcc.edu/rambo/tip_formal_writing_voice.htm

PR-URL: #13319
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #13379
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #13316
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
PR-URL: #13313
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
The test is flaky under load. These changes greatly improve reliability.

* Use a recurring interval to determine when the test should end rather
  than a timer.
* Increase server timeout to 500ms to allow for events being delayed by
  system load

Changing to an interval has the added benefit of reducing the test run
time from over 2 seconds to under 1 second.

Fixes: #13307

PR-URL: #13312
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Alexey Orlenko <eaglexrlnk@gmail.com>
Pure refactor, makes no functional changes but the renaming helped me
see more clearly what the relationship was between methods and
variables.

* Renamed methods to reduce number of slightly different names for the
  same thing ("thread" vs "io thread", etc.).
* Added comments where it was useful to me.

PR-URL: #13321
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
gpg 2.1 no longer includes the key-id by default which breaks
the release script. This makes sure we are explicit about it.

PR-URL: #13309
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
refack and others added 12 commits June 7, 2017 13:36
PR-URL: #13411
Refs: #13385
Refs: #13248
Refs: #13377
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
test: changed test2 of test-vm-timeout.js so that entire error message
      would be matched in assert.throw.

      Before test 2 of test-vm-timeout.js would match any RangeError,
      now it looks specifically for the error message
      "RangeError: timeout must be a positive number"

test: changed test 3 of test-vm-timeout.js so that entire error message
      would be matched in assert.throw.

      Before test 3 of test-vm-timeout.js would match any RangeError,
      now it looks specifically for the error message
      "RangeError: timeout must be a positive number"

PR-URL: #13453
Refs: #13454
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
The libuv 1.12.0 update bumped the minimum supported version
of linux + glibc. This commit updates BUILDING.md to reflect
the new values.

PR-URL: #13306
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
PR-URL: #13306
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Makes the same changes as
9946173
to update the test runner for npm5.

PR-URL: #13441
Refs: #12936
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Allows NODE_TEST_DIR to be set (necessary to avoid path length issues
with common.PIPE).

PR-URL: #13390
Refs: #12708 (comment)
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
PR-URL: #2883
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Introduce two overridable `Agent` methods:

* `keepSocketAlive(socket)`
* `reuseSocket(socket, req)`

These methods can be overridden by particular `Agent` class child to
make keep-alive behavior customizable.

Motivation: destroy persisted sockets after some configurable timeout.
It is very non-trivial to do it with available primitives. Such program
will most likely need to poke with undocumented events and methods of
`Agent`. With introduced API such behavior is easy to implement.

PR-URL: #13005
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
* Change common.noop to common.mustNotCall() to verify callback is not
  invoked.
* Add destructuring assignment for clarity. Yeah, clarity. That's why.

PR-URL: #13443
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
PR-URL: #13481
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
PR-URL: #13173
Fixes: #8276
Refs: #12607
Refs: #12818
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Brian White <mscdex@mscdex.net>
Fixes: #12853
Fixes: #854
PR-URL: #13306
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
@jasnell
Copy link
Member Author

jasnell commented Jun 7, 2017

New CI: https://ci.nodejs.org/job/node-test-pull-request/8544/
New CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/862/

Note: this includes both the npm and libuv updates

jasnell added a commit that referenced this pull request Jun 7, 2017
@rvagg
Copy link
Member

rvagg commented Jun 7, 2017

Appologies if this was planned for today, were having an infra outage atm that will make it difficult nodejs/build#749, will update here when were through.

@jasnell
Copy link
Member Author

jasnell commented Jun 7, 2017

Ugh. Ok, thank you for the heads up. I'll do the iojs+release build tomorrow! It'll be quite a bit later in the day, however, since I will be chaperoning a field trip for my kids school.

The release proposal should be just about ready to go in the 8.1.0-proposal branch if anyone would like to take it over tomorrow to get the release out earlier. The only remaining todo before actually cutting the release, tagging and promoting is to update the changelog one more time.

@jasnell
Copy link
Member Author

jasnell commented Jun 7, 2017

(note, if anyone does want to pick this up tomorrow, then keep in mind that this PR is currently pointing at my personal fork... I just pushed the 8.1.0-proposal branch to the nodejs/node repo)

@rvagg
Copy link
Member

rvagg commented Jun 7, 2017

I could do it when everything gets back online so we stick with the schedule you'd prepped people with.

@jasnell
Copy link
Member Author

jasnell commented Jun 7, 2017

Sounds good. I'll be up fairly late tonight so feel free to ping if any issues or questions come up. Note that the Working On 8.1.1 commit is already in so take care when tagging.

@rvagg
Copy link
Member

rvagg commented Jun 8, 2017

I'm not happy with the look of the citgm failures on ftp and yeoman-generator across multiple platforms. There's also a segfault for ffi on debian8 and a weird assertion failure for thread-sleep on aix.

Running some more variations to understand whether these are real problems or not.

@rvagg
Copy link
Member

rvagg commented Jun 8, 2017

Confirmed that the failures are consistent with 8.0.0, does anyone know if these are being followed up? They're not happy-looking failures.

Moving ahead but now shaving yaks with the ARM cluster, odd filesystem errors so I've had to restart a bunch of things.

* **Async Hooks**
  * When one `Promise` leads to the creation of a new `Promise`, the parent
    `Promise` will be identified as the trigger
    [[`135f4e6643`](135f4e6643)]
    [#13367](#13367).
* **Dependencies**
  * libuv has been updated to 1.12.0
    [[`968596ec77`](968596ec77)]
    [#13306](#13306).
  * npm has been updated to 5.0.3
    [[`ffa7debd7a`](ffa7debd7a)]
    [#13487](#13487).
* **File system**
  * The `fs.exists()` function now works correctly with `util.promisify()`
    [[`6e0eccd7a1`](6e0eccd7a1)]
    [#13316](#13316).
  * fs.Stats times are now also available as numbers
    [[`c756efb25a`](c756efb25a)]
    [#13173](#13173).
* **Inspector**
  * It is now possible to bind to a random port using `--inspect=0`
    [[`cc6ec2fb27`](cc6ec2fb27)]
    [#5025](#5025).
* **Zlib**
  * A regression in the Zlib module that made it impossible to properly
    subclasses `zlib.Deflate` and other Zlib classes has been fixed.
    [[`6aeb555cc4`](6aeb555cc4)]
    [#13374](#13374).
@rvagg
Copy link
Member

rvagg commented Jun 8, 2017

Done, tested, yaks shaved, built and promoted. Needed some REPLACEME fixes but commits were all good aside from that.

Still missing are:

  • AIX builds - @mhdawson will have to sort those Jenkins nodes out
  • armv6 builds - I'm having a wild time trying to get these to connect back to jenkins, it seems that after an update (server or client, I'm not sure which yet!) they won't reconnect so I have no way of building these! still working on it

These binaries will have to be promoted later, probably not for at least another 12 hours from now unfortunately.

@rvagg
Copy link
Member

rvagg commented Jun 8, 2017

armv6 successfully in progress, I've had to disconnect the aix ppc machine from release jenkins as it was causing a weird error preventing any more builds at all. When we have the aix machines all back online (they are offline for test too, hence the queue there), I'll reattach it and rebuild.

@Fishrock123
Copy link
Member

Release commit in d7f6919, can this be closed?

@jasnell
Copy link
Member Author

jasnell commented Jun 8, 2017

Yep!

@jasnell jasnell closed this Jun 8, 2017
@rvagg
Copy link
Member

rvagg commented Jun 9, 2017

aix and armv6 binaries released and release post updated, so we're all done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. doc Issues and PRs related to the documentations. openssl Issues and PRs related to the OpenSSL dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet