Skip to content

v16.12.0 proposal - #40504

Merged
richardlau merged 60 commits into
v16.xfrom
v16.12.0-proposal
Oct 20, 2021
Merged

v16.12.0 proposal#40504
richardlau merged 60 commits into
v16.xfrom
v16.12.0-proposal

Conversation

@richardlau

@richardlaurichardlau commented Oct 18, 2021

Copy link
Copy Markdown
Member

This is a quick release to clear the 50+ commits that are currently unreleased on v16.x-staging ahead of next week's LTS transition (where traditionally we only flip the LTS bit in those). Originally there was a planned regular 16 release for last week but that didn't happen because of the security releases that week.

This is intended to be the last "current" release of Node.js 16 and we'll expect future changes to 16 to be made under LTS guidelines.


2021-10-20, Version 16.12.0 (Current), @richardlau

Notable Changes

Experimental ESM Loader Hooks API

Node.js ESM Loader hooks have been consolidated to represent the steps involved needed to facilitate future loader chaining:

  1. resolve: resolve [+ getFormat]
  2. load: getFormat + getSource + transformSource

For consistency, getGlobalPreloadCode has been renamed to globalPreload.

A loader exporting obsolete hook(s) will trigger a single deprecation warning (per loader) listing the errant hooks.

Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #37468

Other Notable Changes

  • [8fdabcb918] - deps: upgrade npm to 8.1.0 (npm team) #40463
  • [d1d9f2de30] - doc: deprecate (doc-only) http abort related (dr-js) #36670
  • [4116b6c907] - (SEMVER-MINOR)vm: add support for import assertions in dynamic imports (Antoine du Hamel) #40249

Commits

foxxyzand others added 30 commits October 12, 2021 10:32
Main changes:
- Replace current HTML anchor generation to match
header anchor generation in Github markdown.
- Remove unnecessary double namespacing on generated anchors/links (E.G.
`esm.md#loaders` instead of `esm.md#esm_loaders`).
- Anchors/links are automatically prefixed with their respective modules
when concatenated for usage in `all.html`.
Benefits:
- All anchor links within and between markdown API docs actually work.
- Adding new anchor links no longer requires contributors to generate
the HTML docs first to look up the correct anchors.
- Anchors are much shorter.
- All previous anchor links are preserved by generating hidden legacy
anchors.
PR-URL: #39304
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
doc: update ESM hook examples
esm: fix unsafe primordial
doc: fix ESM example linting
esm: allow source of type ArrayBuffer
doc: update ESM hook changelog to include resolve format
esm: allow all ArrayBuffers and TypedArrays for load hook source
doc: tidy code & API docs
doc: convert ESM source table header from Title Case to Sentence case
doc: add detailed explanation for getPackageType
esm: add caveat that ESMLoader::import() must NOT be renamed
esm: tidy code declaration of getFormat protocolHandlers
doc: correct ESM doc link (bad conflict resolution)
doc: update ESM hook limitation for CJS
esm: tweak preload description
doc: update ESM getPackageType() example explanation
PR-URL: #37468
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Bradley Farias <bradley.meck@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
PR-URL: #40226
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #40300
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Refs: #36641
Refs: #36617 (comment)
Documentation-only deprecate `.aborted` property and `'abort'`,
`'aborted'` event in `http`, and suggest using the corresponding
Stream API instead.
Co-authored-by: Michaël Zasso <targos@protonmail.com>
Co-authored-by: Rich Trott <rtrott@gmail.com>
Co-authored-by: Robert Nagy <ronagy@icloud.com>
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #36670
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Refs: #36670
PR-URL: #40324
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Refs: #37468
PR-URL: #40275
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Derek Lewis <DerekNonGeneric@inf.is>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
_subpath_ is not defined in this context. This is pretty clearly meant
to be _packageSubpath_, which is the second argument to
`PACKAGE_SELF_RESOLVE`
PR-URL: #40273
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
`resolve` does not return a `source` property
PR-URL: #40234
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
The logical NOT operator and validators should be used where
appropriate.
PR-URL: #40022
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Qingyu Deng <i@ayase-lab.com>
PR-URL: #40249
Reviewed-By: Bradley Farias <bradley.meck@gmail.com>
Reviewed-By: Guy Bedford <guybedford@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Signed-off-by: Michael Dawson <mdawson@devrus.com>
PR-URL: #40355
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
This asserts that the number of bytes received by the socket is less
than or equal to the size allocated for the temporary storage.
Signed-off-by: Darshan Sen <darshan.sen@postman.com>
PR-URL: #40295
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
PR-URL: #40255
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #40304
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
James Ide has two AUTHORS entries. Use .mailmap to consolidate them into
a single entry.
PR-URL: #40367
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
PR-URL: #40358
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #40018
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
PR-URL: #40199
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Khaidi Chu <i@2333.moe>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #40348
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
PR-URL: #40348
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Refs: #40252 (review)
PR-URL: #40359
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
move variable into each for loop
PR-URL: #40364
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Use a .mailmap entry to consolidate the two entries for thw0rted in
AUTHORS into one entry.
PR-URL: #40387
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #39730
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #40389
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #40222Fixes: #40144
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
PR-URL: #40222
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
PR-URL: #40222
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
PR-URL: #40222
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Zijian Liu <lxxyxzj@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
@richardlau

Copy link
Copy Markdown
MemberAuthor

allowed returning format from either resolve or load hooks.

this is actually not correct: format MUST be returned by a load hook. So perhaps

allowed a returning format hint from resolve hook.

And, not sure if it matters: getGlobalPreloadCode was merely renamed to globalPreload (nothing else about it changed).

What would be really helpful is one or two sentences to go in the Notable changes section that explains why the change is notable for anyone reading the changelog. Otherwise we'll just have the following, which really doesn't suggest "This is a very notable change, as it changes how loader hooks work and deprecates the previous system." (maybe the sentence is "Changes the way loader hooks work and deprecates the previous system."?)

Notable Changes

  • [8fdabcb918] - deps: upgrade npm to 8.1.0 (npm team) #40463
  • [d1d9f2de30] - doc: deprecate (doc-only) http abort related (dr-js) #36670
  • [3743406b0a] - (SEMVER-MINOR)esm: consolidate ESM loader hooks (Jacob Smith) #37468
  • [4116b6c907] - (SEMVER-MINOR)vm: add support for import assertions in dynamic imports (Antoine du Hamel) #40249

@JakobJingleheimer

Copy link
Copy Markdown
Member

these are coming from the author info in Git

gah, sorry. I dunno how that messed up on my laptop (I just fixed it in my git global config). I'll look into the mailmap this week.

I'll update the changelog here

thank you!

What would be really helpful is one or two sentences to go in the Notable changes section that explains why the change is notable for anyone reading the changelog.

okay! I shall send over this evening.

@JakobJingleheimer

Copy link
Copy Markdown
Member

How about something like this:

Experimental ESM Loader Hooks API

Node.js ESM Loader hooks have been consolidated to represent the steps involved needed to facilitate future loader chaining:

  1. resolve: resolve [+ getFormat]
  2. load: getFormat + getSource + transformSource

For consistency, getGlobalPreloadCode has been renamed to globalPreload.

A loader exporting obsolete hook(s) will trigger a single deprecation warning (per loader) listing the errant hooks.

Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #37468

shrujalshah28 added a commit to shrujalshah28/ts-node that referenced this pull request Oct 19, 2021
shrujalshah28 added a commit to shrujalshah28/ts-node that referenced this pull request Oct 19, 2021
Notable Changes:
Experimental ESM Loader Hooks API:
Node.js ESM Loader hooks have been consolidated to represent the steps involved needed to facilitate future loader chaining:
1. `resolve`: `resolve` [+ `getFormat`]
2. `load`: `getFormat` + `getSource` + `transformSource`
For consistency, `getGlobalPreloadCode` has been renamed to `globalPreload`.
A loader exporting obsolete hook(s) will trigger a single deprecation warning (per loader) listing the errant hooks.
Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #37468
Other Notable Changes:
deps:
* upgrade npm to 8.1.0 (npm team) #40463
doc:
* deprecate (doc-only) http abort related (dr-js) #36670
vm:
* (SEMVER-MINOR) add support for import assertions in dynamic imports (Antoine du Hamel) #40249
PR-URL: #40504
@richardlau

richardlau commented Oct 19, 2021

Copy link
Copy Markdown
MemberAuthor

I've updated the notable changes PTAL.

I've also bumped the date to tomorrow as it's late here.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

nodejs-github-bot commented Oct 20, 2021

Copy link
Copy Markdown
Collaborator

@richardlau
richardlau merged commit 4941550 into v16.xOct 20, 2021
richardlau added a commit that referenced this pull request Oct 20, 2021
richardlau added a commit that referenced this pull request Oct 20, 2021
Notable Changes:
Experimental ESM Loader Hooks API:
Node.js ESM Loader hooks have been consolidated to represent the steps involved needed to facilitate future loader chaining:
1. `resolve`: `resolve` [+ `getFormat`]
2. `load`: `getFormat` + `getSource` + `transformSource`
For consistency, `getGlobalPreloadCode` has been renamed to `globalPreload`.
A loader exporting obsolete hook(s) will trigger a single deprecation warning (per loader) listing the errant hooks.
Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias - #37468
Other Notable Changes:
deps:
* upgrade npm to 8.1.0 (npm team) #40463
doc:
* deprecate (doc-only) http abort related (dr-js) #36670
vm:
* (SEMVER-MINOR) add support for import assertions in dynamic imports (Antoine du Hamel) #40249
PR-URL: #40504
richardlau added a commit to nodejs/nodejs.org that referenced this pull request Oct 20, 2021
richardlau added a commit to nodejs/nodejs.org that referenced this pull request Oct 20, 2021
@richardlau
richardlau deleted the v16.12.0-proposal branch October 20, 2021 15:13
cspotcode pushed a commit to TypeStrong/ts-node that referenced this pull request Oct 21, 2021
* update version checks for v16
Ref: nodejs/node#40504
* add test to check old ESM Loader Hooks API on v16.11.1
* fix wrong version number
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

releaseIssues and PRs related to Node.js releases.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

20 participants

@richardlau@nodejs-github-bot@targos@ronag@JakobJingleheimer@danbev@BethGriggs@foxxyz@GeoffreyBooth@gc@dr-js@tniessen@MasonM@VoltrexKeyva@aduh95@mhdawson@RaisinTen@warlock1996@Trott@Mesteery