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

v15.12.0 proposal #37766

Merged
merged 101 commits into from
Mar 17, 2021
Merged

v15.12.0 proposal #37766

merged 101 commits into from
Mar 17, 2021

Conversation

danielleadams
Copy link
Contributor

@danielleadams danielleadams commented Mar 16, 2021

2021-03-17, Version 15.12.0 (Current), @danielleadams

Notable Changes

  • crypto:
    • add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
    • support JWK objects in create*Key (Filip Skokan) #37254
  • deps:
  • fs:
    • improve fsPromises writeFile performance (Nitzan Uziely) #37610
    • improve fsPromises readFile performance (Nitzan Uziely) #37608
  • lib:
    • implement AbortSignal.abort() (James M Snell) #37693
  • node-api:
    • define version 8 (Gabriel Schulhof) #37652
  • worker:
    • add setEnvironmentData/getEnvironmentData (James M Snell) #37486

Commits

  • [44514600b2] - assert,util: fix commutativity edge case (Ruben Bridgewater) #37711
  • [8666d777cc] - benchmark: add benchmark for fsPromises.writeFile (Nitzan Uziely) #37610
  • [e9028eb646] - cluster: restructure to same prototype for cluster child (Yash Ladha) #36610
  • [8e1257e26d] - cluster: clarify construct Handle (Jackson Tian) #37385
  • [341ee31e15] - crypto: reconcile duplicated code (James M Snell) #37704
  • [a2d08d5dfd] - crypto: add internal error codes (Darshan Sen) #37650
  • [922f2f0eb2] - (SEMVER-MINOR) crypto: add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
  • [55e522ca23] - (SEMVER-MINOR) crypto: support JWK objects in create*Key (Filip Skokan) #37254
  • [33180fad81] - crypto: add separate error for INVALID_KEY_TYPE (Darshan Sen) #37555
  • [d81b9af1fc] - crypto: improve randomUUID performance (Dawid Rusnak) #37243
  • [23d654105f] - crypto,test: improve hmac coverage with webcrypto tests (obi-el) #37571
  • [dfca2fac24] - (SEMVER-MINOR) deps: update to [email protected] (Guy Bedford) #37712
  • [ce357c0c11] - (SEMVER-MINOR) deps: update archs files for OpenSSL-1.1.1+quic (James M Snell) #37601
  • [6d77b6174f] - (SEMVER-MINOR) deps: switch openssl to quictls/openssl (James M Snell) #37601
  • [3e1a46a6a8] - deps: upgrade npm to 7.6.3 (Ruy Adorno) #37721
  • [b2fd00398c] - deps: V8: cherry-pick 1648e050cade (Colin Ihrig) #37664
  • [7422453072] - deps: upgrade npm to 7.6.1 (Ruy Adorno) #37606
  • [89f3aa92b4] - doc: add marsonya as a triager (marsonya) #37667
  • [3710857de3] - doc: add hints to http.request() options (Luigi Pinca) #37745
  • [5d793737d7] - (SEMVER-MINOR) doc: update maintaining-openssl guide (James M Snell) #37601
  • [1022d3d947] - doc: recommend checking abortSignal.aborted first (James M Snell) #37714
  • [764aa2dcee] - doc: fix link to googletest fixtures (Tobias Nießen) #37698
  • [0d3cc2dc82] - doc: fix typo in description of close event (Tobias Nießen) #37662
  • [e55058fed1] - doc: use sentence case in README.md headers (marsonya) #37645
  • [e7fc7a4c23] - doc: crypto esm examples (James M Snell) #37594
  • [a3abd52e1e] - doc: add localPort to http.request() options (Luigi Pinca) #37586
  • [705bdfbe3e] - doc: fix grammar errors in http document (Qingyu Deng) #37265
  • [e5f7179d1e] - doc: add document for http.OutgoingMessage (Qingyu Deng) #37265
  • [7c0ce17e65] - doc: fix typo in doc/guides/collaborator-guide.md (marsonya) #37643
  • [60d8afa9ab] - doc: document that module.evaluate fulfills as undefined (James M Snell) #37663
  • [6192315cf3] - doc: remove generated from dsaEncoding description (Marko Kaznovac) #37459
  • [e4c8c50b28] - doc: fix typos in /doc/api/fs.md (Merlin Luntke) #37557
  • [ebc6f41072] - doc: fix linter issue (Antoine du Hamel) #37657
  • [d17aab1775] - doc: add esm examples for assert (James M Snell) #37607
  • [366772bf87] - doc: add return type of readline.createInterface (Darshan Sen) #37600
  • [f50db89a52] - doc: change lang info string in fs JS snippets (Antoine du Hamel) #37605
  • [5a9196e0e4] - doc: apply sentence case to headers in pull-requests.md (marsonya) #37602
  • [05badcf755] - doc: fix small typo in 15.11.0 release (Tierney Cyren) #37590
  • [e0e7aa1058] - doc: add top-level await syntax in vm.md (Antoine du Hamel) #37077
  • [732d8ca811] - doc: clarify that columnOffset applies only to the first line (James M Snell) #37563
  • [267bbe3412] - doc: document that NODE_EXTRA_CA_CERTS is read only once (James M Snell) #37562
  • [f56a805a0d] - doc: refactor signal info in child_process.md (Darshan Sen) #37528
  • [236ba04a79] - domain: add name to monkey-patched emit function (Colin Ihrig) #37550
  • [1c09776106] - domain: show falsy names as anonymous for DEP0097 (Colin Ihrig) #37550
  • [5a49e3139e] - errors: remove experimental from --enable-source-maps (Benjamin Coe) #37743
  • [e384291c90] - events: remove return value on addEventListener (James M Snell) #37696
  • [ba91ef2d08] - fs: improve fsPromises writeFile performance (Nitzan Uziely) #37610
  • [3572299fc2] - fs: add promisified readFile benchmark (Nitzan Uziely) #37608
  • [b277776845] - fs: improve fsPromises readFile performance (Nitzan Uziely) #37608
  • [6688569a50] - http: refactor to avoid unsafe array iteration (Antoine du Hamel) #37654
  • [c737df64fe] - http2: make res.req a normal property (Colin Ihrig) #37706
  • [ac2f50b3fd] - (SEMVER-MINOR) lib: implement AbortSignal.abort() (James M Snell) #37693
  • [12fb2ffc33] - lib: use AbortError consistently (James M Snell) #37715
  • [e63a25e2ff] - lib: fix typo in lib/internal/http2/core.js (marsonya) #37695
  • [852f53ed7e] - lib: fix typo in lib/internal/bootstrap/loaders.js (marsonya) #37644
  • [daa4ac54c5] - lib: remove use of array destructuring (Antoine du Hamel) #36818
  • [ae0e76c264] - module: refactor NativeModule to avoid unsafe array iteration (Antoine du Hamel) #37656
  • [a86334fbb9] - (SEMVER-MINOR) node-api: define version 8 (Gabriel Schulhof) #37652
  • [d28ce328ed] - src: fix variable name of OnCloseReceived callback (Tobias Nießen) #37521
  • [d59c6de7e8] - src: add error formatting support (Gus Caplan) #37598
  • [33436e39fe] - src: make BaseObject::is_snapshotable virtual (Anna Henningsen) #37539
  • [30c62dee1c] - src,test: support dynamically linking OpenSSL 3.0 (Daniel Bevenius) #37669
  • [4bf1f333c7] - stream,util: fix "the the" typo in comments (Luigi Pinca) #37674
  • [1b53087541] - (SEMVER-MINOR) test: update dom/abort tests (James M Snell) #37693
  • [c2cb153646] - (SEMVER-MINOR) test: fixup test to account for quic openssl version (James M Snell) #37601
  • [ede34aa128] - test: address flaky wpt/test-timers (Rich Trott) #37691
  • [ed32cd4e67] - test: fixup flaky test-crypto-x509 (Filip Skokan) #37709
  • [013b3ff2d4] - test: remove unnecessary V8 flag (Antoine du Hamel) #37671
  • [cc48816826] - test: fix WPT URL tests that fetch JSON data (Michaël Zasso) #37624
  • [b0ed1e790e] - test: improve error reporting in test-child-process-pipe-dataflow (Rich Trott) #37632
  • [f7edb07ec2] - test: terminate WPT workers after test completion (Michaël Zasso) #37627
  • [b7ef829dac] - test: ignore WPT worker errors after tests finished (Michaël Zasso) #37626
  • [257b1ab225] - test: update Web Platform Tests (Michaël Zasso) #37620
  • [1f6341852f] - test: remove FLAKY status for test-async-hooks-http-parser-destroy (Rich Trott) #37636
  • [044fd2fc86] - test: remove FLAKY status for fixed test (Rich Trott) #37633
  • [d5ff50d2a7] - test: clear flaky designation for test-stream-pipeline-http2 (Rich Trott) #37631
  • [381fb98061] - test: clear FLAKY designation for test-http2-pipe (Rich Trott) #37631
  • [0582c51754] - test: fix wasi/test-return-on-exit on 32-bit systems (Colin Ihrig) #37615
  • [0d04b6c043] - test: fix flaky test-child-process-exec-abortcontroller-promisified (Antoine du Hamel) #37572
  • [a44daff34d] - test: update all Web Platform Tests (Michaël Zasso) #37467
  • [c09bd77daf] - test: redownload wpt fixtures with correct encoding (Michaël Zasso) #37467
  • [57319770bb] - test,crypto: ensure promises resolve in webcrypto tests (Antoine du Hamel) #37653
  • [2d9b624668] - tls: refactor to avoid unsafe array iteration (Antoine du Hamel) #37655
  • [72af5d9895] - tools: parse changelogs only in the default branch (Antoine du Hamel) #37768
  • [bd62771a22] - tools: use bundled npm in update scripts (Ruy Adorno) #37613
  • [4de3b8483a] - tools: update glob-parent to 5.1.2 (Rich Trott) #37646
  • [ec71a0f817] - tools: check version number in YAML comments from changelogs (Antoine du Hamel) #37599
  • [07fc61b900] - tools: add support for mjs and cjs JS snippet linting (Antoine du Hamel) #37311
  • [440c944420] - tools: fix object name in prefer-assert-methods.js (Tobias Nießen) #37544
  • [7042ec89f1] - tools: update remark-preset-lint-node to 2.1.1 (Rich Trott) #37604
  • [82e78f7c12] - tools: fix compiler warning in inspector_protocol (Darshan Sen) #37573
  • [fd7234c52f] - tools: make update-eslint.sh work with npm@7 (Luigi Pinca) #37566
  • [057c6a842a] - tools: add ESLint rule no-array-destructuring (Antoine du Hamel) #36818
  • [25a5f0b3b8] - tools: update eslint-plugin-markdown configuration (Colin Ihrig) #37549
  • [7a1de1fce9] - tools: update ESLint to 7.21.0 (Luigi Pinca) #37546
  • [9c0ca4689d] - tools,doc: add support for several flavors of JS code snippets (Antoine du Hamel) #37162
  • [80af610d95] - util: inspect __proto__ key as written in object literal (Anna Henningsen) #37713
  • [0d135e8316] - (SEMVER-MINOR) worker: add setEnvironmentData/getEnvironmentData (James M Snell) #37486
  • [8024ffbba4] - worker: add ports property to MessageEvents (Anna Henningsen) #37538
  • [f4fd3fb6a7] - worker: allow BroadcastChannel in receiveMessageOnPort (Anna Henningsen) #37535

Linkgoron and others added 30 commits March 10, 2021 11:40
Improve the fsPromises readFile performance
by allocating only one buffer, when size is known,
increase the size of the readbuffer chunks,
and dont read more data if size bytes have been read

Refs: #37583
PR-URL: #37608
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
add a benchmark for fs.promises.readFile

PR-URL: #37608
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
PR-URL: #37546
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
This commit updates the linting setup to work with
[email protected]. This also allows the update-eslint
script to continue to function properly without changes.

PR-URL: #37549
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Many anonymous functions use the empty string as their name.
Since the DEP0097 logic was using nullish coalescing, these
functions were not being displayed as anonymous. This commit
updates the logic to use || instead of ??.

PR-URL: #37550
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: James M Snell <[email protected]>
The domain module monkey patches EventEmitter.prototype.emit(),
however the function's name was becoming the empty string. This
commit forces the new emit function to have the proper name.

PR-URL: #37550
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Iterating over arrays should be avoided because it relies on
user-mutable global methods (`Array.prototype[Symbol.iterator]`
and `%ArrayIteratorPrototype%.next`), we should instead use
other alternatives. This commit adds a rule that disallow
array destructuring syntax in favor of object destructuring syntax.
Note that you can ignore this rule if you are using
the array destructuring syntax over a safe iterable, or
actually want to iterate over a user-provided object.

PR-URL: #36818
Reviewed-By: Rich Trott <[email protected]>
PR-URL: #37467
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: #37467
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: #37535
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Add `ev.ports` for spec compliancy.

Since we only emit the raw `data` value, and only create the
`MessageEvent` instance if there are EventTarget-style listeners,
we store the ports list temporarily on the MessagePort object itself,
so that we can look it up when we need to create the event object.

Fixes: #37358

PR-URL: #37538
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Use a virtual function in order to save space (8 bytes per instance
on 64-bit platforms) and in order to be consistent with the other
methods on BaseObject.

PR-URL: #37539
Reviewed-By: Gerhard Stöbich <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
* Since exec calls execFile and execFile internally calls spawn with
  options.signal, the signal parameter has been documented under exec
  as well.
* Refactor the description of signal under all the functions.
* Add examples of usage of signal under all the functions and add
  missing requires in the other examples.

PR-URL: #37528
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Install `eslint-plugin-markdown` at the same level of `eslint` without
cd'ing into `eslint` directory, otherwise the following error is raised:

```
npm ERR! code ERESOLVE
npm ERR! Cannot destructure property 'name' of 'node' as it is null.
```

PR-URL: #37566
Fixes: #37560
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Ruy Adorno <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
error: comparison of integer expressions of different signedness:
‘int’ and ‘uint64_t’ {aka ‘long unsigned int’} [-Werror=sign-compare]
 2562 |           if (!success || std::numeric_limits<int32_t>::max() <
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 2563 |                               token_start_internal_value_) {
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~

PR-URL: #37573
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #37604
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Fixes: #20432

PR-URL: #37562
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Fixes: #26780

PR-URL: #37563
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Improve the readability for costruct SharedHandle and
RoundRobinHandle

PR-URL: #37385
Reviewed-By: Zijian Liu <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37243
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Since `rr` and `shared` both belongs to the same prototype declaration
and differes only in the handler declaration, this can be abstracted to
a same type of function arguments passing.

PR-URL: #36610
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37077
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37590
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37555
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37544
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #37606
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #37602
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Refs: nodejs/remark-preset-lint-node#176

PR-URL: #37605
Refs: #37162
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Danielle Adams <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
@nodejs-github-bot

This comment has been minimized.

@danielleadams
Copy link
Contributor Author

@nodejs/releasers this is ready for review!

@nodejs-github-bot

This comment has been minimized.

danielleadams added a commit that referenced this pull request Mar 17, 2021
PR-URL: #37766

Notable changes:

* crypto:
  * add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
  * support JWK objects in create\*Key (Filip Skokan) #37254
* deps:
  * switch openssl to quictls/openssl (James M Snell) #37601
* fs:
  * improve fsPromises writeFile performance (Nitzan Uziely) #37610
  * improve fsPromises readFile performance (Nitzan Uziely) #37608
* lib:
  * implement AbortSignal.abort() (James M Snell) #37693
* node-api:
  * define version 8 (Gabriel Schulhof) #37652
* worker:
  * add setEnvironmentData/getEnvironmentData (James M Snell) #37486
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@bricss
Copy link

bricss commented Mar 17, 2021

Maybe it's still possible to pull that in #37712? 🙄

guybedford and others added 2 commits March 17, 2021 12:38
PR-URL: #37712
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Reviewed-By: Bradley Farias <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
PR-URL: #37766

Notable changes:

* crypto:
  * add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
  * support JWK objects in create\*Key (Filip Skokan) #37254
* deps:
  * update to [email protected] (Guy Bedford) #37712
  * switch openssl to quictls/openssl (James M Snell) #37601
* fs:
  * improve fsPromises writeFile performance (Nitzan Uziely) #37610
  * improve fsPromises readFile performance (Nitzan Uziely) #37608
* lib:
  * implement AbortSignal.abort() (James M Snell) #37693
* node-api:
  * define version 8 (Gabriel Schulhof) #37652
* worker:
  * add setEnvironmentData/getEnvironmentData (James M Snell) #37486
@danielleadams
Copy link
Contributor Author

@bricss added dfca2fa

@nodejs-github-bot

This comment has been minimized.

@danielleadams
Copy link
Contributor Author

@nodejs-github-bot
Copy link
Collaborator

@danielleadams danielleadams merged commit 5011009 into v15.x Mar 17, 2021
danielleadams added a commit that referenced this pull request Mar 17, 2021
danielleadams added a commit that referenced this pull request Mar 17, 2021
PR-URL: #37766

Notable changes:

* crypto:
  * add optional callback to crypto.sign and crypto.verify (Filip Skokan) #37500
  * support JWK objects in create\*Key (Filip Skokan) #37254
* deps:
  * update to [email protected] (Guy Bedford) #37712
  * switch openssl to quictls/openssl (James M Snell) #37601
* fs:
  * improve fsPromises writeFile performance (Nitzan Uziely) #37610
  * improve fsPromises readFile performance (Nitzan Uziely) #37608
* lib:
  * implement AbortSignal.abort() (James M Snell) #37693
* node-api:
  * define version 8 (Gabriel Schulhof) #37652
* worker:
  * add setEnvironmentData/getEnvironmentData (James M Snell) #37486
danielleadams pushed a commit to danielleadams/nodejs.org that referenced this pull request Mar 17, 2021
@danielleadams danielleadams deleted the v15.12.0-proposal branch March 17, 2021 22:38
danielleadams added a commit to nodejs/nodejs.org that referenced this pull request Mar 17, 2021
@targos targos added the release Issues and PRs related to Node.js releases. label Apr 11, 2021
@targos targos removed build Issues and PRs related to build files or the CI. doc Issues and PRs related to the documentations. needs-ci PRs that need a full CI run. npm Issues and PRs related to the npm client dependency or the npm registry. tools Issues and PRs related to the tools directory. meta Issues and PRs related to the general management of the project. labels Jun 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Issues and PRs related to Node.js releases.
Projects
None yet
Development

Successfully merging this pull request may close these issues.