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

v21.4.0 release proposal #51043

Merged
merged 38 commits into from
Dec 5, 2023
Merged

v21.4.0 release proposal #51043

merged 38 commits into from
Dec 5, 2023

Conversation

targos
Copy link
Member

@targos targos commented Dec 4, 2023

2023-12-05, Version 21.4.0 (Current), @targos

Notable Changes

This release fixes a regression introduced in v21.3.0 that caused the fs.writeFileSync
method to throw when called with 'utf8' encoding, no flag option, and if the target file didn't exist yet.

  • [32acafeeb6] - (SEMVER-MINOR) fs: introduce dirent.parentPath (Antoine du Hamel) #50976
  • [724548674d] - fs: use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990

Commits

  • [b24ee15fb2] - benchmark: update iterations in benchmark/crypto/hkdf.js (Lei Shi) #50866
  • [f79b54e60e] - benchmark: update iterations in benchmark/crypto/get-ciphers.js (Lei Shi) #50863
  • [dc049acbbb] - benchmark: update number of iterations for util.inspect (kylo5aby) #50651
  • [d7c562ae38] - deps: update googletest to 76bb2af (Node.js GitHub Bot) #50555
  • [59a45ddbef] - deps: update googletest to b10fad3 (Node.js GitHub Bot) #50555
  • [099ebdb781] - deps: update undici to 5.28.1 (Node.js GitHub Bot) #50975
  • [4b1bed04f7] - deps: update undici to 5.28.0 (Node.js GitHub Bot) #50915
  • [b281e98b1e] - doc: add additional details about --input-type (Shubham Pandey) #50796
  • [b7036f2028] - doc: add procedure when CVEs don't get published (Rafael Gonzaga) #50945
  • [7adf239af0] - doc: fix some errors in esm resolution algorithms (Christopher Jeffrey (JJ)) #50898
  • [759ebcaead] - doc: reserve 121 for Electron 29 (Shelley Vohr) #50957
  • [cedc3427fa] - doc: run license-builder (github-actions[bot]) #50926
  • [30a6f19769] - doc: document non-node_modules-only runtime deprecation (Joyee Cheung) #50748
  • [eecab883f0] - doc: add doc for Unix abstract socket (theanarkh) #50904
  • [ec74b93b38] - doc: remove flicker on page load on dark theme (Dima Demakov) #50942
  • [724548674d] - fs: use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990
  • [32acafeeb6] - (SEMVER-MINOR) fs: introduce dirent.parentPath (Antoine du Hamel) #50976
  • [c1ee506454] - fs: remove workaround for esm package (Yagiz Nizipli) #50907
  • [1cf087dfb3] - lib: refactor to use validateFunction in diagnostics_channel (Deokjin Kim) #50955
  • [c37d18d5e1] - lib: streamline process.binding() handling (Joyee Cheung) #50773
  • [246cf73631] - lib,src: replace toUSVString with toWellFormed() (Yagiz Nizipli) #47342
  • [9bc79173a0] - loader: speed up line length calc used by moduleProvider (Mudit) #50969
  • [812ab9e4f8] - meta: bump step-security/harden-runner from 2.6.0 to 2.6.1 (dependabot[bot]) #50999
  • [1dbe1af19a] - meta: bump github/codeql-action from 2.22.5 to 2.22.8 (dependabot[bot]) #50998
  • [bed1b93f8a] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #50931
  • [1e7d101428] - src: make ModifyCodeGenerationFromStrings more robust (Joyee Cheung) #50763
  • [709ac479eb] - src: disable uncaught exception abortion for ESM syntax detection (Yagiz Nizipli) #50987
  • [f6ff11c9f9] - src: fix backtrace with tail [[noreturn]] abort (Chengzhong Wu) #50849
  • [74f5a1cbc9] - src: print MKSNAPSHOT debug logs to stderr (Joyee Cheung) #50759
  • [3a1c664a97] - test: replace forEach to for.. test-webcrypto-export-import-cfrg.js (Angelo Parziale) #50785
  • [ac3a6eefe3] - test: log more information in SEA tests (Joyee Cheung) #50759
  • [94462d42f5] - test: consolidate utf8 text fixtures in tests (Joyee Cheung) #50732
  • [8e1a70a347] - tools: add triggers to update release links workflow (Moshe Atlow) #50974
  • [ca10cbb774] - tools: update lint-md-dependencies to [email protected] (Node.js GitHub Bot) #50913
  • [1e40c4a366] - tools: fix current version check (Marco Ippolito) #50951
  • [3faed331e1] - typings: fix JSDoc in internal/modules/esm/hooks (Alex Yang) #50887
  • [6a087ceffa] - url: throw error if argument length of revokeObjectURL is 0 (DylanTet) #50433

demakoff and others added 30 commits December 4, 2023 11:15
Theme applying logic get loaded and executed in async mode, so often
there is a
delay in applying the proper theme to a page which leads to flicker on
dark theme. Resolved by moving critical logic to the page head

PR-URL: #50942
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Claudio Wunder <[email protected]>
PR-URL: #50907
Reviewed-By: Robert Nagy <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
PR-URL: #50904
Refs: #49667
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Paolo Insogna <[email protected]>
We previously used a text that appears to be an excerpt of
https://zh.wikipedia.org/wiki/%E5%8D%97%E8%B6%8A%E5%9B%BD
and can have copyright/license complications. It may
also include some geopolitical nuances. The text has been
repeated through out the code base without much reuse.

This patch consolidates the fixtures by adding a common helper
string as `fixtures.utf8TestText` which is identical to a copy
in test/fixtures/utf8_test_text.txt. It also updates the text
to a copy of 蘭亭集序, It was chosen because:

1. It's a well-known Chinese classical piece written in 353 CE
   and therefore in public domain. The string is copied from
   https://zh.wikisource.org/zh-hant/%E8%98%AD%E4%BA%AD%E9%9B%86%E5%BA%8F
   which contains a disclaimer of copyright for this reason.
2. The text is in suitable length for general UTF8 string
   read/write tests (including punctuations, 389 code points and
   1167 bytes).
3. This is also commonly used as reference text for Chinese text
   layout tests.
4. It's a timeless and harmless preface for a collection of poems,
   written by a uncontroversial figure who passed away >1600 years
   ago and contains no geopolitical nuances. Background and an
   English translation of this text can be found at
   https://en.wikipedia.org/wiki/Lantingji_Xu

PR-URL: #50732
Reviewed-By: Yagiz Nizipli <[email protected]>
We already have this special kind of runtime deprecation for
Buffer constructors which does not fit into the original
description of runtiem deprecations. Document this kind of
deprecation separately.

PR-URL: #50748
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
- Make processBindingAllowList a separate list from
  runtimeDeprecatedList and legacyWrapperList instead of being
  an umbrella one, so it's easier to see the stages the bindings
  are in.
- Cache process.binding() results so we don't need to mutate
  runtimeDeprecatedList.

PR-URL: #50773
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #50951
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #50759
Refs: #50740
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
- Use spawnSyncAndExitWithoutError to log more information on error.
- Use NODE_DEBUG_NATIVE to log internals
- Skip the test when available disk space < 120MB

PR-URL: #50759
Refs: #50740
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Darshan Sen <[email protected]>
PR-URL: #50926
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
PR-URL: #50957
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
PR-URL: #50651
Refs: #50571
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
PR-URL: #50887
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #50898
Reviewed-By: Guy Bedford <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #50915
Reviewed-By: Matthew Aitken <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #47342
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
This was the workaround provided by HackerOne team

PR-URL: #50945
Refs: nodejs/security-wg#1058
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
PR-URL: #50931
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Use validateFunction to remove duplicate implementation.

PR-URL: #50955
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
PR-URL: #50974
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Added a check to see if url wasn't included as an argument
which will then throw an error.

Fixes: #50432
PR-URL: #50433
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Zeyu "Alex" Yang <[email protected]>
Fixes: #50571
PR-URL: #50863
Refs: #50571
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
When using a loader, for say TypeScript, the esm loader invokes the
`lineLengths` function via `maybeCacheSourceMap` when sourcemaps are
enabled. Therefore, `lineLengths` ends up getting called quite often
when running large servers written in TypeScript for example. Making
`lineLengths` faster should therefore speed up server startup times
for anyone using a loader with node with sourcemaps enabled.

The change itself is fairly simple and is all about removing creation
of unnecessary memory and iterating the whole source content only once
with the hope of making the function cache friendly.

PR-URL: #50969
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
Reviewed-By: Jacob Smith <[email protected]>
PR-URL: #50975
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Matthew Aitken <[email protected]>
The goal is to replace `dirent.path` using a name that's less likely to
create confusion.
`dirent.path` value has not been stable, moving it to a different
property name should avoid breaking some upgrading user expectations.

PR-URL: #50976
Reviewed-By: Ethan Arrowood <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Fixes: #50571
PR-URL: #50866
Refs: #50571
Reviewed-By: Vinícius Lourenço Claro Cardoso <[email protected]>
PR-URL: #50555
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
@nodejs-github-bot nodejs-github-bot added dependencies Pull requests that update a dependency file. doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. labels Dec 4, 2023
@targos targos removed doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. dependencies Pull requests that update a dependency file. labels Dec 4, 2023
@targos
Copy link
Member Author

targos commented Dec 4, 2023

@nodejs/releasers

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Dec 4, 2023

@targos
Copy link
Member Author

targos commented Dec 4, 2023

This seems to break inherits tests somehow (@isaacs):

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/3354/nodes=fedora-latest-x64/testReport/junit/(root)/citgm/inherits_v2_0_4/

 /home/iojs/tmp/citgm_tmp/163fce60-a476-44ab-bcd7-3de5e8b253b5/home/.node-spawn-wrap-1539748-e4d6ce9efaff/node:1
 TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function
     at /home/iojs/tmp/citgm_tmp/163fce60-a476-44ab-bcd7-3de5e8b253b5/home/.node-spawn-wrap-1539748-e4d6ce9efaff/node:47:23
     at Object.<anonymous> (/home/iojs/tmp/citgm_tmp/163fce60-a476-44ab-bcd7-3de5e8b253b5/home/.node-spawn-wrap-1539748-e4d6ce9efaff/node:181:3)
 Node.js v21.4.0

And pino (@mcollina):

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/3354/nodes=fedora-latest-x64/testReport/junit/(root)/citgm/pino_v8_16_2/

  FAIL  test/transport/syncfalse.test.js
   Cannot read properties of undefined (reading 'msg')
   test/transport/syncfalse.test.js
   65 |   // Making sure data is not flushed yet
   66 |   const afterSecondFlush = (await getOutputLogLines())[1]
 > 67 |   t.equal(afterSecondFlush.msg, 'world')
      | ---------------------------^
   68 | })
   test: thread-stream async flush should call the passed callback
   stack: |
     Test.<anonymous> (test/transport/syncfalse.test.js:67:28)
   type: TypeError
   tapCaught: returnedPromiseRejection

targos added a commit to nodejs/citgm that referenced this pull request Dec 4, 2023
@targos
Copy link
Member Author

targos commented Dec 4, 2023

inherits tests are broken by #50907

I see that on main they don't rely on the esm package anymore. I opened nodejs/citgm#1034

@nodejs-github-bot
Copy link
Collaborator

@targos
Copy link
Member Author

targos commented Dec 4, 2023

Pino failed only once. It's probably a flake.

@bricss
Copy link

bricss commented Dec 4, 2023

It would be awesome to pull #50650 in, somehow 🙄

@targos targos merged commit 67ada40 into v21.x Dec 5, 2023
66 checks passed
targos added a commit that referenced this pull request Dec 5, 2023
@targos targos deleted the v21.4.0-proposal branch December 5, 2023 09:23
targos added a commit to targos/node that referenced this pull request Dec 5, 2023
Notable changes:

fs:
  * (SEMVER-MINOR) introduce `dirent.parentPath` (Antoine du Hamel) nodejs#50976
  * use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) nodejs#50990

PR-URL: nodejs#51043
targos added a commit that referenced this pull request Dec 5, 2023
Notable changes:

fs:
  * (SEMVER-MINOR) introduce `dirent.parentPath` (Antoine du Hamel) #50976
  * use default w flag for writeFileSync with utf8 encoding (Murilo Kakazu) #50990

PR-URL: #51043
targos added a commit to targos/nodejs.org that referenced this pull request Dec 5, 2023
github-merge-queue bot pushed a commit to nodejs/nodejs.org that referenced this pull request Dec 5, 2023
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.