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

deps: upgrade npm to 7.0.0-rc.3 #35474

Closed
wants to merge 2 commits into from

Conversation

MylesBorins
Copy link
Contributor

@MylesBorins MylesBorins commented Oct 2, 2020

@nodejs-github-bot nodejs-github-bot added the npm Issues and PRs related to the npm client dependency or the npm registry. label Oct 2, 2020
@MylesBorins MylesBorins added semver-major PRs that contain breaking changes and should be released in the next major version. request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci Add this label to start a Jenkins CI on a PR. labels Oct 2, 2020
@nodejs-github-bot

This comment has been minimized.

@MylesBorins MylesBorins changed the title deps: upgrade npm to 7.0.0-rc.1 deps: upgrade npm to 7.0.0-rc.2 Oct 3, 2020
@MylesBorins
Copy link
Contributor Author

Bumped to rc.2. @Trott I could not get the status flaky fail to work the way you described. I've updated the regex in the test to work for an rc, meaning that when we update to a non RC we will need to fix the test again. Hopefully that is a satisfactory middle ground.

@nodejs-github-bot
Copy link
Collaborator

@MylesBorins
Copy link
Contributor Author

@nodejs/node-gyp it looks like there is a failure on all platforms for test.addons/dlopen-ping-pong/test which I think is related to the node-gyp update in npm 7. Doing some local digging it would appear that this may be related to gyp, specifically the .so file ending up in a different directy than expected on linux (you will notice OSX is passing). Any idea what's up?

@cclauss
Copy link
Contributor

cclauss commented Oct 5, 2020

What is the actual path and what is the expected path?
https://github.com/nodejs/node/blob/master/test/addons/dlopen-ping-pong/test.js#L17

@rvagg
Copy link
Member

rvagg commented Oct 5, 2020

node-gyp 5.1.0 (current npm version):

build/
build/binding.target.mk
build/ping.target.mk
build/config.gypi
build/binding.Makefile
build/Release
build/Release/.deps
build/Release/.deps/Release
build/Release/.deps/Release/ping.so.d
build/Release/.deps/Release/obj.target
build/Release/.deps/Release/obj.target/binding
build/Release/.deps/Release/obj.target/binding/binding.o.d
build/Release/.deps/Release/obj.target/ping.so.d
build/Release/.deps/Release/obj.target/binding.node.d
build/Release/.deps/Release/obj.target/ping
build/Release/.deps/Release/obj.target/ping/ping.o.d
build/Release/.deps/Release/binding.node.d
build/Release/ping.so
build/Release/obj.target
build/Release/obj.target/binding
build/Release/obj.target/binding/binding.o
build/Release/obj.target/ping.so
build/Release/obj.target/binding.node
build/Release/obj.target/ping
build/Release/obj.target/ping/ping.o
build/Release/binding.node
build/Makefile

current node-gyp master:

build/
build/binding.target.mk
build/ping.target.mk
build/config.gypi
build/binding.Makefile
build/Release
build/Release/.deps
build/Release/.deps/Release
build/Release/.deps/Release/lib.target
build/Release/.deps/Release/lib.target/ping.so.d
build/Release/.deps/Release/obj.target
build/Release/.deps/Release/obj.target/binding
build/Release/.deps/Release/obj.target/binding/binding.o.d
build/Release/.deps/Release/obj.target/ping.so.d
build/Release/.deps/Release/obj.target/binding.node.d
build/Release/.deps/Release/obj.target/ping
build/Release/.deps/Release/obj.target/ping/ping.o.d
build/Release/.deps/Release/binding.node.d
build/Release/lib.target
build/Release/lib.target/ping.so
build/Release/obj.target
build/Release/obj.target/binding
build/Release/obj.target/binding/binding.o
build/Release/obj.target/ping.so
build/Release/obj.target/binding.node
build/Release/obj.target/ping
build/Release/obj.target/ping/ping.o
build/Release/binding.node
build/Makefile

Note the difference in location of ping.so. The test is expecting it to be in build/${common.buildType}/ping.so (edited).

binding.gyp is @ https://github.com/nodejs/node/blob/master/test/addons/dlopen-ping-pong/binding.gyp

@nodejs/gyp would you folks mind having a look at this? It looks like type': 'shared_library', is changing the target location to lib.target, is this expected behaviour and therefore we need to warn users about the new location, or do we have a legit bug (looks like it to me).

@targos
Copy link
Member

targos commented Oct 5, 2020

It's nodejs/node-gyp#1975 (review)

@targos
Copy link
Member

targos commented Oct 5, 2020

About nodejs/node-gyp#1975 (review):
Back in 2012, node-gyp made a local patch to gyp, changing where shared libraries would be written.
When I reunited the gyp code between node-gyp and Node.js last year, this change was reverted as we didn't find why it was done in the first place, and keeping it was breaking the Node.js builds.

@MylesBorins
Copy link
Contributor Author

@rvagg @targos what's the next step here? Do we need to fix something upstream in gyp-next? Node-gyp? Change the test?

Is there something we can float here while that is happening to get the tests passing?

@MylesBorins
Copy link
Contributor Author

@nodejs/platform-windows

I landed a patch to fix the vscode builds, but windows still seems to be failing. I don't have a windows box I can use locally... can anyone help?

@richardlau
Copy link
Member

@nodejs/platform-windows

I landed a patch to fix the vscode builds, but windows still seems to be failing. I don't have a windows box I can use locally... can anyone help?

@MylesBorins Untested, but there's a reference at

<ComponentRef Id="NpxBashScript"/>
that would need to be removed.

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Oct 5, 2020

Comment on lines 16 to 24
let pingSOPath = `${path.dirname(bindingPath)}/lib.target/ping.so`;

if (common.isOSX) {
pingSOPath = `${path.dirname(bindingPath)}/ping.so`;
}

console.log('module.exports.load:', pingSOPath);
module.exports.load(pingSOPath);

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nodejs/build @nodejs/node-gyp this should fix this test based on the changed behavior of gyp. Specifically that non OSX platforms output the ping.so to the lib/target directory. 🤞 this fixes CI.

I think there should be a longer conversation if we want this behavior to land in gyp, but we can perhaps push this out in Node.js 15 and get ecosystem feedback and iterate if neccessary.

Please let me know if you have any concerns

@MylesBorins
Copy link
Contributor Author

MylesBorins commented Oct 5, 2020

Looks like we have a green CI!

Kicking off a test build which can be found at https://nodejs.org/download/test/v15.0.0-test20201005a7f6681ae6/

Want to make sure the installers for OSX + Windows are doing what is expected. Will update with link when available.

pkg: https://nodejs.org/download/test/v15.0.0-test20201005a7f6681ae6/node-v15.0.0-test20201005a7f6681ae6.pkg
msi: https://nodejs.org/download/test/v15.0.0-test20201005a7f6681ae6/node-v15.0.0-test20201005a7f6681ae6-x64.msi

deps/npm/CONTRIBUTING.md Show resolved Hide resolved
deps/npm/CONTRIBUTING.md Show resolved Hide resolved
Copy link
Contributor

@bcoe bcoe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, with one question about the modification in Makefile.

@@ -1384,7 +1384,7 @@ CONFLICT_RE=^>>>>>>> [0-9A-Fa-f]+|^<<<<<<< [A-Za-z]+

# Related CI job: node-test-linter
lint-ci: lint-js-ci lint-cpp lint-py lint-md lint-addon-docs
@if ! ( grep -IEqrs "$(CONFLICT_RE)" benchmark deps doc lib src test tools ) \
@if ! ( grep -IEqrs "$(CONFLICT_RE)" --exclude="error-message.js" benchmark deps doc lib src test tools ) \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curious why we needed to add this exclude?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is now a test in the deps/npm file that includes conflict markers for a test. The naive linter we have can't distinguish... so I used a hammer

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot
Copy link
Collaborator

Copy link
Member

@Trott Trott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rubber stamp LGTM

@nodejs-github-bot
Copy link
Collaborator

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rubber stamp lgtm

It would be ideal to add this to Node.js v15.

MylesBorins added a commit that referenced this pull request Oct 7, 2020
PR-URL: #35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
MylesBorins added a commit that referenced this pull request Oct 7, 2020
PR-URL: #35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
@MylesBorins
Copy link
Contributor Author

Landed in 1469984...c87641a

@MylesBorins MylesBorins closed this Oct 7, 2020
@arcanis arcanis mentioned this pull request Oct 7, 2020
6 tasks
BethGriggs added a commit that referenced this pull request Oct 19, 2020
Notable changes:

Deprecations and Removals:

- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)

npm 7 (#35631):

Node.js 15 comes with a new major release of npm, npm 7. npm 7 comes
with many new features - including npm workspaces and a new
package-lock.json format. npm 7 also includes yarn.lock file support.
One of the big changes in npm 7 is that peer dependencies are now
installed by default.

Throw On Unhandled Rejections
(#33021):

As of Node.js 15, the default mode for `unhandledRejection` is changed
to `throw` (from `warn`). In `throw` mode, if an `unhandledRejection`
hook is not set, the `unhandledRejection` is raised as an uncaught
exception. Users that have an `unhandledRejection` hook should see no
change in behavior, and it’s still possible to switch modes using the
`--unhandled-rejections=mode` process flag.

QUIC (#32379):

Node.js 15 comes with experimental support QUIC, which can be enabled
by compiling Node.js with the `--experimental-quic` configuration flag.
The Node.js QUIC implementation is exposed by the core `net` module.

V8 8.6 (#35415):

The V8 JavaScript engine has been updated to V8 8.6 (V8 8.4 is the
latest available in Node.js 14). Along with performance tweaks and
improvements the V8 update also brings the following language features:
* `Promise.any()` (from V8 8.5)
* `AggregateError` (from V8 8.5)
* `String.prototype.replaceAll()` (from V8 8.5)
* Logical assignment operators `&&=`, `||=`, and `??=` (from V8 8.5)

Other Notable Changes:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **stream**: construct (Robert Nagy)
(#29656)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)

Semver-Major Commits:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
(#35415)
- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **crypto**: refactoring internals, add WebCrypto (James M Snell)
(#35093)
- **crypto**: move node\_crypto files to src/crypto (James M Snell)
(#35093)
- **deps**: V8: cherry-pick d76abfed3512 (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 717543bbf0ef (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 6be2f6e26e8d (Michaël Zasso)
(#35415)
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
(#35415)
- **deps**: fix platform-embedded-file-writer-win for ARM64 (Michaël
Zasso) (#35415)
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
(#35415)
- **deps**: update V8 to 8.6.395 (Michaël Zasso)
(#35415)
- **deps**: upgrade npm to 7.0.0 (Myles Borins)
(#35631)
- **deps**: update npm to 7.0.0-rc.3 (Myles Borins)
(#35474)
- **deps**: V8: cherry-pick 0d6debcc5f08 (Gus Caplan)
(#33600)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **doc**: update support macos version for 15.x (Ash Cripps)
(#35022)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http**: fixed socket.setEncoding fatal error (iskore)
(#33405)
- **http**: emit 'error' on aborted server request (Robert Nagy)
(#33172)
- **http**: cleanup end argument handling (Robert Nagy)
(#31818)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **http2**: add `invalidheaders` test (Pranshu Srivastava)
(#33161)
- **http2**: refactor state code validation for the http2Stream class
(rickyes) (#33535)
- **http2**: header field valid checks (Pranshu Srivastava)
(#33193)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: remove ERR\_INVALID\_OPT\_VALUE and
ERR\_INVALID\_OPT\_VALUE\_ENCODING (Denys Otrishko)
(#34682)
- **lib**: handle one of args case in ERR\_MISSING\_ARGS (Denys
Otrishko) (#34022)
- **lib**: remove NodeError from the prototype of errors with code
(Michaël Zasso) (#33857)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: check args in net.connect() and socket.connect() calls
(Denys Otrishko) (#34022)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **process**: update v8 fast api calls usage (Maya Lekova)
(#35415)
- **process**: change default --unhandled-rejections=throw (Dan
Fabulich) (#33021)
- **process**: use v8 fast api calls for hrtime (Gus Caplan)
(#33600)
- **process**: delay throwing an error using `throwDeprecation` (Ruben
Bridgewater) (#32312)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: implement NodePlatform::PostJob (Clemens Backes)
(#35415)
- **src**: update NODE\_MODULE\_VERSION to 88 (Michaël Zasso)
(#35415)
- **src**: error reporting on CPUUsage (Yash Ladha)
(#34762)
- **src**: use node:moduleName as builtin module filename (Michaël
Zasso) (#35498)
- **src**: enable wasm trap handler on windows (Gus Caplan)
(#35033)
- **src**: update NODE\_MODULE\_VERSION to 86 (Michaël Zasso)
(#33579)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **src**: remove \_third\_party\_main support (Anna Henningsen)
(#33971)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **src**: remove unused CancelPendingDelayedTasks (Anna Henningsen)
(#32859)
- **stream**: try to wait for flush to complete before 'finish' (Robert
Nagy) (#34314)
- **stream**: cleanup and fix Readable.wrap (Robert Nagy)
(#34204)
- **stream**: add promises version to utility functions (rickyes)
(#33991)
- **stream**: fix writable.end callback behavior (Robert Nagy)
(#34101)
- **stream**: construct (Robert Nagy)
(#29656)
- **stream**: write should throw on unknown encoding (Robert Nagy)
(#33075)
- **stream**: fix \_final and 'prefinish' timing (Robert Nagy)
(#32780)
- **stream**: simplify Transform stream implementation (Robert Nagy)
(#32763)
- **stream**: use callback to properly propagate error (Robert Nagy)
(#29179)
- **test**: update tests after increasing typed array size to 4GB
(Kim-Anh Tran) (#35415)
- **test**: fix tests for npm 7.0.0 (Myles Borins)
(#35631)
- **test**: fix test suite to work with npm 7 (Myles Borins)
(#35474)
- **test**: update WPT harness and tests (Michaël Zasso)
(#33770)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **tools**: disable x86 safe exception handlers in V8 (Michaël Zasso)
(#35415)
- **tools**: update V8 gypfiles for 8.6 (Ujjwal Sharma)
(#35415)
- **tools**: update V8 gypfiles for 8.5 (Ujjwal Sharma)
(#35415)
- **url**: file URL path normalization (Daijiro Wachi)
(#35477)
- **url**: verify domain is not empty after "ToASCII" (Michaël Zasso)
(#33770)
- **url**: remove U+0000 case in the fragment state (Michaël Zasso)
(#33770)
- **url**: remove gopher from special schemes (Michaël Zasso)
(#33325)
- **url**: forbid lt and gt in url host code point (Yash Ladha)
(#33328)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)
- **win, child_process**: sanitize env variables (Bartosz Sosnowski)
(#35210)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)
- **worker**: set trackUnmanagedFds to true by default (Anna
Henningsen) (#34394)
- **worker**: rename error code to be more accurate (Anna Henningsen)
(#33872)

PR-URL: #35014
BethGriggs added a commit that referenced this pull request Oct 20, 2020
Notable changes:

Deprecations and Removals:

- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)

npm 7 (#35631):

Node.js 15 comes with a new major release of npm, npm 7. npm 7 comes
with many new features - including npm workspaces and a new
package-lock.json format. npm 7 also includes yarn.lock file support.
One of the big changes in npm 7 is that peer dependencies are now
installed by default.

Throw On Unhandled Rejections
(#33021):

As of Node.js 15, the default mode for `unhandledRejection` is changed
to `throw` (from `warn`). In `throw` mode, if an `unhandledRejection`
hook is not set, the `unhandledRejection` is raised as an uncaught
exception. Users that have an `unhandledRejection` hook should see no
change in behavior, and it’s still possible to switch modes using the
`--unhandled-rejections=mode` process flag.

QUIC (#32379):

Node.js 15 comes with experimental support QUIC, which can be enabled
by compiling Node.js with the `--experimental-quic` configuration flag.
The Node.js QUIC implementation is exposed by the core `net` module.

V8 8.6 (#35415):

The V8 JavaScript engine has been updated to V8 8.6 (V8 8.4 is the
latest available in Node.js 14). Along with performance tweaks and
improvements the V8 update also brings the following language features:
* `Promise.any()` (from V8 8.5)
* `AggregateError` (from V8 8.5)
* `String.prototype.replaceAll()` (from V8 8.5)
* Logical assignment operators `&&=`, `||=`, and `??=` (from V8 8.5)

Other Notable Changes:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **stream**: construct (Robert Nagy)
(#29656)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)

Semver-Major Commits:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
(#35415)
- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **crypto**: refactoring internals, add WebCrypto (James M Snell)
(#35093)
- **crypto**: move node\_crypto files to src/crypto (James M Snell)
(#35093)
- **deps**: V8: cherry-pick d76abfed3512 (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 717543bbf0ef (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 6be2f6e26e8d (Michaël Zasso)
(#35415)
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
(#35415)
- **deps**: fix platform-embedded-file-writer-win for ARM64 (Michaël
Zasso) (#35415)
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
(#35415)
- **deps**: update V8 to 8.6.395 (Michaël Zasso)
(#35415)
- **deps**: upgrade npm to 7.0.0 (Myles Borins)
(#35631)
- **deps**: update npm to 7.0.0-rc.3 (Myles Borins)
(#35474)
- **deps**: V8: cherry-pick 0d6debcc5f08 (Gus Caplan)
(#33600)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **doc**: update support macos version for 15.x (Ash Cripps)
(#35022)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http**: fixed socket.setEncoding fatal error (iskore)
(#33405)
- **http**: emit 'error' on aborted server request (Robert Nagy)
(#33172)
- **http**: cleanup end argument handling (Robert Nagy)
(#31818)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **http2**: add `invalidheaders` test (Pranshu Srivastava)
(#33161)
- **http2**: refactor state code validation for the http2Stream class
(rickyes) (#33535)
- **http2**: header field valid checks (Pranshu Srivastava)
(#33193)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: remove ERR\_INVALID\_OPT\_VALUE and
ERR\_INVALID\_OPT\_VALUE\_ENCODING (Denys Otrishko)
(#34682)
- **lib**: handle one of args case in ERR\_MISSING\_ARGS (Denys
Otrishko) (#34022)
- **lib**: remove NodeError from the prototype of errors with code
(Michaël Zasso) (#33857)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: check args in net.connect() and socket.connect() calls
(Denys Otrishko) (#34022)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **process**: update v8 fast api calls usage (Maya Lekova)
(#35415)
- **process**: change default --unhandled-rejections=throw (Dan
Fabulich) (#33021)
- **process**: use v8 fast api calls for hrtime (Gus Caplan)
(#33600)
- **process**: delay throwing an error using `throwDeprecation` (Ruben
Bridgewater) (#32312)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: implement NodePlatform::PostJob (Clemens Backes)
(#35415)
- **src**: update NODE\_MODULE\_VERSION to 88 (Michaël Zasso)
(#35415)
- **src**: error reporting on CPUUsage (Yash Ladha)
(#34762)
- **src**: use node:moduleName as builtin module filename (Michaël
Zasso) (#35498)
- **src**: enable wasm trap handler on windows (Gus Caplan)
(#35033)
- **src**: update NODE\_MODULE\_VERSION to 86 (Michaël Zasso)
(#33579)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **src**: remove \_third\_party\_main support (Anna Henningsen)
(#33971)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **src**: remove unused CancelPendingDelayedTasks (Anna Henningsen)
(#32859)
- **stream**: try to wait for flush to complete before 'finish' (Robert
Nagy) (#34314)
- **stream**: cleanup and fix Readable.wrap (Robert Nagy)
(#34204)
- **stream**: add promises version to utility functions (rickyes)
(#33991)
- **stream**: fix writable.end callback behavior (Robert Nagy)
(#34101)
- **stream**: construct (Robert Nagy)
(#29656)
- **stream**: write should throw on unknown encoding (Robert Nagy)
(#33075)
- **stream**: fix \_final and 'prefinish' timing (Robert Nagy)
(#32780)
- **stream**: simplify Transform stream implementation (Robert Nagy)
(#32763)
- **stream**: use callback to properly propagate error (Robert Nagy)
(#29179)
- **test**: update tests after increasing typed array size to 4GB
(Kim-Anh Tran) (#35415)
- **test**: fix tests for npm 7.0.0 (Myles Borins)
(#35631)
- **test**: fix test suite to work with npm 7 (Myles Borins)
(#35474)
- **test**: update WPT harness and tests (Michaël Zasso)
(#33770)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **tools**: disable x86 safe exception handlers in V8 (Michaël Zasso)
(#35415)
- **tools**: update V8 gypfiles for 8.6 (Ujjwal Sharma)
(#35415)
- **tools**: update V8 gypfiles for 8.5 (Ujjwal Sharma)
(#35415)
- **url**: file URL path normalization (Daijiro Wachi)
(#35477)
- **url**: verify domain is not empty after "ToASCII" (Michaël Zasso)
(#33770)
- **url**: remove U+0000 case in the fragment state (Michaël Zasso)
(#33770)
- **url**: remove gopher from special schemes (Michaël Zasso)
(#33325)
- **url**: forbid lt and gt in url host code point (Yash Ladha)
(#33328)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)
- **win, child_process**: sanitize env variables (Bartosz Sosnowski)
(#35210)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)
- **worker**: set trackUnmanagedFds to true by default (Anna
Henningsen) (#34394)
- **worker**: rename error code to be more accurate (Anna Henningsen)
(#33872)

PR-URL: #35014
BethGriggs added a commit that referenced this pull request Oct 20, 2020
Notable changes:

Deprecations and Removals:

- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)

npm 7 (#35631):

Node.js 15 comes with a new major release of npm, npm 7. npm 7 comes
with many new features - including npm workspaces and a new
package-lock.json format. npm 7 also includes yarn.lock file support.
One of the big changes in npm 7 is that peer dependencies are now
installed by default.

Throw On Unhandled Rejections
(#33021):

As of Node.js 15, the default mode for `unhandledRejection` is changed
to `throw` (from `warn`). In `throw` mode, if an `unhandledRejection`
hook is not set, the `unhandledRejection` is raised as an uncaught
exception. Users that have an `unhandledRejection` hook should see no
change in behavior, and it’s still possible to switch modes using the
`--unhandled-rejections=mode` process flag.

QUIC (#32379):

Node.js 15 comes with experimental support QUIC, which can be enabled
by compiling Node.js with the `--experimental-quic` configuration flag.
The Node.js QUIC implementation is exposed by the core `net` module.

V8 8.6 (#35415):

The V8 JavaScript engine has been updated to V8 8.6 (V8 8.4 is the
latest available in Node.js 14). Along with performance tweaks and
improvements the V8 update also brings the following language features:
* `Promise.any()` (from V8 8.5)
* `AggregateError` (from V8 8.5)
* `String.prototype.replaceAll()` (from V8 8.5)
* Logical assignment operators `&&=`, `||=`, and `??=` (from V8 8.5)

Other Notable Changes:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **stream**: construct (Robert Nagy)
(#29656)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)

Semver-Major Commits:

- **assert**: add `assert/strict` alias module (ExE Boss)
(#34001)
- **build**: reset embedder string to "-node.0" (Michaël Zasso)
(#35415)
- **build**: remove --build-v8-with-gn configure option (Yang Guo)
(#27576)
- **build**: drop support for VS2017 (Michaël Zasso)
(#33694)
- **crypto**: refactoring internals, add WebCrypto (James M Snell)
(#35093)
- **crypto**: move node\_crypto files to src/crypto (James M Snell)
(#35093)
- **deps**: V8: cherry-pick d76abfed3512 (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 717543bbf0ef (Michaël Zasso)
(#35415)
- **deps**: V8: cherry-pick 6be2f6e26e8d (Michaël Zasso)
(#35415)
- **deps**: fix V8 build issue with inline methods (Jiawen Geng)
(#35415)
- **deps**: fix platform-embedded-file-writer-win for ARM64 (Michaël
Zasso) (#35415)
- **deps**: update V8 postmortem metadata script (Colin Ihrig)
(#35415)
- **deps**: update V8 to 8.6.395 (Michaël Zasso)
(#35415)
- **deps**: upgrade npm to 7.0.0 (Myles Borins)
(#35631)
- **deps**: update npm to 7.0.0-rc.3 (Myles Borins)
(#35474)
- **deps**: V8: cherry-pick 0d6debcc5f08 (Gus Caplan)
(#33600)
- **dns**: add dns/promises alias (shisama)
(#32953)
- **doc**: move DEP0018 to End-of-Life (Rich Trott)
(#35316)
- **doc**: update support macos version for 15.x (Ash Cripps)
(#35022)
- **fs**: deprecation warning on recursive rmdir (Ian Sutherland)
(#35562)
- **fs**: reimplement read and write streams using stream.construct
(Robert Nagy) (#29656)
- **http**: fixed socket.setEncoding fatal error (iskore)
(#33405)
- **http**: emit 'error' on aborted server request (Robert Nagy)
(#33172)
- **http**: cleanup end argument handling (Robert Nagy)
(#31818)
- **http2**: allow Host in HTTP/2 requests (Alba Mendez)
(#34664)
- **http2**: add `invalidheaders` test (Pranshu Srivastava)
(#33161)
- **http2**: refactor state code validation for the http2Stream class
(rickyes) (#33535)
- **http2**: header field valid checks (Pranshu Srivastava)
(#33193)
- **lib**: add EventTarget-related browser globals (Anna Henningsen)
(#35496)
- **lib**: remove ERR\_INVALID\_OPT\_VALUE and
ERR\_INVALID\_OPT\_VALUE\_ENCODING (Denys Otrishko)
(#34682)
- **lib**: handle one of args case in ERR\_MISSING\_ARGS (Denys
Otrishko) (#34022)
- **lib**: remove NodeError from the prototype of errors with code
(Michaël Zasso) (#33857)
- **lib**: unflag AbortController (James M Snell)
(#33527)
- **lib**: initial experimental AbortController implementation (James M
Snell) (#33527)
- **net**: check args in net.connect() and socket.connect() calls
(Denys Otrishko) (#34022)
- **net**: remove long deprecated server.connections property (James M
Snell) (#33647)
- **net**: autoDestroy Socket (Robert Nagy)
(#31806)
- **process**: update v8 fast api calls usage (Maya Lekova)
(#35415)
- **process**: change default --unhandled-rejections=throw (Dan
Fabulich) (#33021)
- **process**: use v8 fast api calls for hrtime (Gus Caplan)
(#33600)
- **process**: delay throwing an error using `throwDeprecation` (Ruben
Bridgewater) (#32312)
- **repl**: remove deprecated repl.memory function (Ruben Bridgewater)
(#33286)
- **repl**: remove deprecated repl.turnOffEditorMode() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated repl.parseREPLKeyword() function (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated bufferedCommand property (Ruben
Bridgewater) (#33286)
- **repl**: remove deprecated .rli (Ruben Bridgewater)
(#33286)
- **src**: implement NodePlatform::PostJob (Clemens Backes)
(#35415)
- **src**: update NODE\_MODULE\_VERSION to 88 (Michaël Zasso)
(#35415)
- **src**: error reporting on CPUUsage (Yash Ladha)
(#34762)
- **src**: use node:moduleName as builtin module filename (Michaël
Zasso) (#35498)
- **src**: enable wasm trap handler on windows (Gus Caplan)
(#35033)
- **src**: update NODE\_MODULE\_VERSION to 86 (Michaël Zasso)
(#33579)
- **src**: disallow JS execution inside FreeEnvironment (Anna
Henningsen) (#33874)
- **src**: remove \_third\_party\_main support (Anna Henningsen)
(#33971)
- **src**: remove deprecated node debug command (James M Snell)
(#33648)
- **src**: remove unused CancelPendingDelayedTasks (Anna Henningsen)
(#32859)
- **stream**: try to wait for flush to complete before 'finish' (Robert
Nagy) (#34314)
- **stream**: cleanup and fix Readable.wrap (Robert Nagy)
(#34204)
- **stream**: add promises version to utility functions (rickyes)
(#33991)
- **stream**: fix writable.end callback behavior (Robert Nagy)
(#34101)
- **stream**: construct (Robert Nagy)
(#29656)
- **stream**: write should throw on unknown encoding (Robert Nagy)
(#33075)
- **stream**: fix \_final and 'prefinish' timing (Robert Nagy)
(#32780)
- **stream**: simplify Transform stream implementation (Robert Nagy)
(#32763)
- **stream**: use callback to properly propagate error (Robert Nagy)
(#29179)
- **test**: update tests after increasing typed array size to 4GB
(Kim-Anh Tran) (#35415)
- **test**: fix tests for npm 7.0.0 (Myles Borins)
(#35631)
- **test**: fix test suite to work with npm 7 (Myles Borins)
(#35474)
- **test**: update WPT harness and tests (Michaël Zasso)
(#33770)
- **timers**: introduce timers/promises (James M Snell)
(#33950)
- **tools**: disable x86 safe exception handlers in V8 (Michaël Zasso)
(#35415)
- **tools**: update V8 gypfiles for 8.6 (Ujjwal Sharma)
(#35415)
- **tools**: update V8 gypfiles for 8.5 (Ujjwal Sharma)
(#35415)
- **url**: file URL path normalization (Daijiro Wachi)
(#35477)
- **url**: verify domain is not empty after "ToASCII" (Michaël Zasso)
(#33770)
- **url**: remove U+0000 case in the fragment state (Michaël Zasso)
(#33770)
- **url**: remove gopher from special schemes (Michaël Zasso)
(#33325)
- **url**: forbid lt and gt in url host code point (Yash Ladha)
(#33328)
- **util**: change default value of `maxStringLength` to 10000
(unknown) (#32744)
- **wasi**: drop --experimental-wasm-bigint requirement (Colin Ihrig)
(#35415)
- **win, child_process**: sanitize env variables (Bartosz Sosnowski)
(#35210)
- **worker**: make MessageEvent class more Web-compatible (Anna
Henningsen) (#35496)
- **worker**: set trackUnmanagedFds to true by default (Anna
Henningsen) (#34394)
- **worker**: rename error code to be more accurate (Anna Henningsen)
(#33872)

PR-URL: #35014
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
PR-URL: nodejs#35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
joesepi pushed a commit to joesepi/node that referenced this pull request Jan 8, 2021
PR-URL: nodejs#35474
Reviewed-By: Ruy Adorno <ruyadorno@github.com>
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org>
Reviewed-By: Ben Coe <bencoe@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
npm Issues and PRs related to the npm client dependency or the npm registry. semver-major PRs that contain breaking changes and should be released in the next major version.
Projects
None yet
Development

Successfully merging this pull request may close these issues.