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

src: reduce unnecessary serialization of CLI options in C++ #52451

Merged
merged 2 commits into from
May 2, 2024

Conversation

joyeecheung
Copy link
Member

In this patch we split the serialization routine into two different routines: getCLIOptionsValues() for only serializing the key-value pairs and getCLIOptionsInfo() for getting additional information such as help text etc. The former is used a lot more frequently than the latter, which is only used for generating --help and building process.allowedNodeEnvironmentFlags.

getCLIOptionsValues() also adds --no- entries for boolean options so there is no need to special case in the JS land.
This patch also refactors the option serialization routines to use v8::Object constructor that takes key-value pairs in one go to avoid calling Map::Set or Object::Set repeatedly which can go up to a patched prototype.

@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Apr 10, 2024
@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 11, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 11, 2024
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 12, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 12, 2024
@nodejs-github-bot
Copy link
Collaborator

@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 14, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 14, 2024
@nodejs-github-bot
Copy link
Collaborator

@joyeecheung
Copy link
Member Author

Rebased.

@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 16, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 16, 2024
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 23, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 23, 2024
@nodejs-github-bot
Copy link
Collaborator

In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@joyeecheung
Copy link
Member Author

@jasnell @addaleax @anonrig @MoLow can I get a re-approval to land it?

@joyeecheung joyeecheung added commit-queue Add this label to land a pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. labels May 2, 2024
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label May 2, 2024
@nodejs-github-bot nodejs-github-bot merged commit a480e52 into nodejs:main May 2, 2024
57 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in a480e52

Ch3nYuY pushed a commit to Ch3nYuY/node that referenced this pull request May 8, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: nodejs#52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request May 8, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: #52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
sophoniie pushed a commit to sophoniie/node that referenced this pull request Jun 20, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: nodejs#52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
bmeck pushed a commit to bmeck/node that referenced this pull request Jun 22, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: nodejs#52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
marco-ippolito pushed a commit that referenced this pull request Aug 19, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: #52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
marco-ippolito pushed a commit that referenced this pull request Aug 19, 2024
In this patch we split the serialization routine into two different
routines: `getCLIOptionsValues()` for only serializing the key-value
pairs and `getCLIOptionsInfo()` for getting additional information such
as help text etc. The former is used a lot more frequently than the
latter, which is only used for generating `--help` and building
`process.allowedNodeEnvironmentFlags`.

`getCLIOptionsValues()` also adds `--no-` entries for boolean options so
there is no need to special case in the JS land.
This patch also refactors the option serialization routines to
use v8::Object constructor that takes key-value pairs in one go
to avoid calling Map::Set or Object::Set repeatedly which can go
up to a patched prototype.

PR-URL: #52451
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
alexandresoro pushed a commit to alexandresoro/ouca that referenced this pull request Aug 21, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `20.16.0` -> `20.17.0` |

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v20.17.0`](https://github.com/nodejs/node/releases/tag/v20.17.0): 2024-08-21, Version 20.17.0 &#x27;Iron&#x27; (LTS), @&#8203;marco-ippolito

[Compare Source](nodejs/node@v20.16.0...v20.17.0)

##### module: support require()ing synchronous ESM graphs

This release adds `require()` support for synchronous ESM graphs under
the flag `--experimental-require-module`.

If `--experimental-require-module` is enabled, and the ECMAScript
module being loaded by `require()` meets the following requirements:

-   Explicitly marked as an ES module with a "type": "module" field in the closest package.json or a .mjs extension.
-   Fully synchronous (contains no top-level await).

`require()` will load the requested module as an ES Module, and return
the module name space object. In this case it is similar to dynamic
`import()` but is run synchronously and returns the name space object
directly.

Contributed by Joyee Cheung in [#&#8203;51977](nodejs/node#51977)

##### path: add `matchesGlob` method

Glob patterns can now be tested against individual paths via the `path.matchesGlob(path, pattern)` method.

Contributed by Aviv Keller in [#&#8203;52881](nodejs/node#52881)

##### stream: expose DuplexPair API

The function `duplexPair` returns an array with two items,
each being a `Duplex` stream connected to the other side:

```js
const [ sideA, sideB ] = duplexPair();
```

Whatever is written to one stream is made readable on the other. It provides
behavior analogous to a network connection, where the data written by the client
becomes readable by the server, and vice-versa.

Contributed by Austin Wright in [#&#8203;34111](nodejs/node#34111)

##### Other Notable Changes

-   \[[`8e64c02b19`](nodejs/node@8e64c02b19)] - **(SEMVER-MINOR)** **http**: add diagnostics channel `http.client.request.error` (Kohei Ueno) [#&#8203;54054](nodejs/node#54054)
-   \[[`ae30674991`](nodejs/node@ae30674991)] - **meta**: add jake to collaborators (jakecastelli) [#&#8203;54004](nodejs/node#54004)
-   \[[`4a3ecbfc9b`](nodejs/node@4a3ecbfc9b)] - **(SEMVER-MINOR)** **stream**: implement `min` option for `ReadableStreamBYOBReader.read` (Mattias Buelens) [#&#8203;50888](nodejs/node#50888)

##### Commits

-   \[[`b3a2726cbc`](nodejs/node@b3a2726cbc)] - **assert**: use isError instead of instanceof in innerOk (Pietro Marchini) [#&#8203;53980](nodejs/node#53980)
-   \[[`c7e4c3daf4`](nodejs/node@c7e4c3daf4)] - **benchmark**: add cpSync benchmark (Yagiz Nizipli) [#&#8203;53612](nodejs/node#53612)
-   \[[`a52de8c5ff`](nodejs/node@a52de8c5ff)] - **bootstrap**: print `--help` message using `console.log` (Jacob Hummer) [#&#8203;51463](nodejs/node#51463)
-   \[[`61b90e7c5e`](nodejs/node@61b90e7c5e)] - **build**: update gcovr to 7.2 and codecov config (Benjamin E. Coe) [#&#8203;54019](nodejs/node#54019)
-   \[[`a9c04eaa27`](nodejs/node@a9c04eaa27)] - **build**: ensure v8\_pointer_compression_sandbox is enabled on 64bit (Shelley Vohr) [#&#8203;53884](nodejs/node#53884)
-   \[[`342a663d7a`](nodejs/node@342a663d7a)] - **build**: trigger coverage ci when updating codecov (Yagiz Nizipli) [#&#8203;53929](nodejs/node#53929)
-   \[[`5727b4d129`](nodejs/node@5727b4d129)] - **build**: update codecov coverage build count (Yagiz Nizipli) [#&#8203;53929](nodejs/node#53929)
-   \[[`977af25870`](nodejs/node@977af25870)] - **build**: disable test-asan workflow (Michaël Zasso) [#&#8203;53844](nodejs/node#53844)
-   \[[`04798fb104`](nodejs/node@04798fb104)] - **build**: fix build warning of c-ares under GN build (Cheng) [#&#8203;53750](nodejs/node#53750)
-   \[[`5ec5e78574`](nodejs/node@5ec5e78574)] - **build**: fix mac build error of c-ares under GN (Cheng) [#&#8203;53687](nodejs/node#53687)
-   \[[`3d8721f0a4`](nodejs/node@3d8721f0a4)] - **build**: add version-specific library path for AIX (Richard Lau) [#&#8203;53585](nodejs/node#53585)
-   \[[`ffb0bd344d`](nodejs/node@ffb0bd344d)] - **build, tools**: drop leading `/` from `r2dir` (Richard Lau) [#&#8203;53951](nodejs/node#53951)
-   \[[`a2d74f4c31`](nodejs/node@a2d74f4c31)] - **build,tools**: simplify upload of shasum signatures (Michaël Zasso) [#&#8203;53892](nodejs/node#53892)
-   \[[`993bb3b6e7`](nodejs/node@993bb3b6e7)] - **child_process**: fix incomplete prototype pollution hardening (Liran Tal) [#&#8203;53781](nodejs/node#53781)
-   \[[`137a2e5766`](nodejs/node@137a2e5766)] - **cli**: document `--inspect` port `0` behavior (Aviv Keller) [#&#8203;53782](nodejs/node#53782)
-   \[[`820e6e1737`](nodejs/node@820e6e1737)] - **cli**: update `node.1` to reflect Atom's sunset (Aviv Keller) [#&#8203;53734](nodejs/node#53734)
-   \[[`fa0e8d7b3b`](nodejs/node@fa0e8d7b3b)] - **crypto**: avoid std::function (Tobias Nießen) [#&#8203;53683](nodejs/node#53683)
-   \[[`460240c368`](nodejs/node@460240c368)] - **crypto**: make deriveBits length parameter optional and nullable (Filip Skokan) [#&#8203;53601](nodejs/node#53601)
-   \[[`ceb1d5e00a`](nodejs/node@ceb1d5e00a)] - **crypto**: avoid taking ownership of OpenSSL objects (Tobias Nießen) [#&#8203;53460](nodejs/node#53460)
-   \[[`44268c27eb`](nodejs/node@44268c27eb)] - **deps**: update corepack to 0.29.3 (Node.js GitHub Bot) [#&#8203;54072](nodejs/node#54072)
-   \[[`496975ece0`](nodejs/node@496975ece0)] - **deps**: update c-ares to v1.32.3 (Node.js GitHub Bot) [#&#8203;54020](nodejs/node#54020)
-   \[[`5eea419349`](nodejs/node@5eea419349)] - **deps**: update c-ares to v1.32.2 (Node.js GitHub Bot) [#&#8203;53865](nodejs/node#53865)
-   \[[`8c8e3688c5`](nodejs/node@8c8e3688c5)] - **deps**: update googletest to [`4b21f1a`](nodejs/node@4b21f1a) (Node.js GitHub Bot) [#&#8203;53842](nodejs/node#53842)
-   \[[`78f6b34c77`](nodejs/node@78f6b34c77)] - **deps**: update minimatch to 10.0.1 (Node.js GitHub Bot) [#&#8203;53841](nodejs/node#53841)
-   \[[`398f7acca3`](nodejs/node@398f7acca3)] - **deps**: update corepack to 0.29.2 (Node.js GitHub Bot) [#&#8203;53838](nodejs/node#53838)
-   \[[`fa8f99d90b`](nodejs/node@fa8f99d90b)] - **deps**: update simdutf to 5.3.0 (Node.js GitHub Bot) [#&#8203;53837](nodejs/node#53837)
-   \[[`a19b28336b`](nodejs/node@a19b28336b)] - **deps**: update ada to 2.9.0 (Node.js GitHub Bot) [#&#8203;53748](nodejs/node#53748)
-   \[[`2f66c7e707`](nodejs/node@2f66c7e707)] - **deps**: upgrade npm to 10.8.2 (npm team) [#&#8203;53799](nodejs/node#53799)
-   \[[`2a2620e7c0`](nodejs/node@2a2620e7c0)] - **deps**: update googletest to [`34ad51b`](nodejs/node@34ad51b) (Node.js GitHub Bot) [#&#8203;53157](nodejs/node#53157)
-   \[[`c01ce60ce7`](nodejs/node@c01ce60ce7)] - **deps**: update googletest to [`305e5a2`](nodejs/node@305e5a2) (Node.js GitHub Bot) [#&#8203;53157](nodejs/node#53157)
-   \[[`832328ea01`](nodejs/node@832328ea01)] - **deps**: update c-ares to v1.32.1 (Node.js GitHub Bot) [#&#8203;53753](nodejs/node#53753)
-   \[[`878e9a4ae7`](nodejs/node@878e9a4ae7)] - **deps**: update minimatch to 9.0.5 (Node.js GitHub Bot) [#&#8203;53646](nodejs/node#53646)
-   \[[`4647e6b5c5`](nodejs/node@4647e6b5c5)] - **deps**: update c-ares to v1.32.0 (Node.js GitHub Bot) [#&#8203;53722](nodejs/node#53722)
-   \[[`30310bf887`](nodejs/node@30310bf887)] - **doc**: move numCPUs require to top of file in cluster CJS example (Alfredo González) [#&#8203;53932](nodejs/node#53932)
-   \[[`36170eddca`](nodejs/node@36170eddca)] - **doc**: update security-release process to automated one (Rafael Gonzaga) [#&#8203;53877](nodejs/node#53877)
-   \[[`55f5e76ba7`](nodejs/node@55f5e76ba7)] - **doc**: fix typo in technical-priorities.md (YoonSoo_Shin) [#&#8203;54094](nodejs/node#54094)
-   \[[`1c0ccc0ca8`](nodejs/node@1c0ccc0ca8)] - **doc**: fix typo in diagnostic tooling support tiers document (Taejin Kim) [#&#8203;54058](nodejs/node#54058)
-   \[[`6a5120ff0f`](nodejs/node@6a5120ff0f)] - **doc**: move GeoffreyBooth to TSC regular member (Geoffrey Booth) [#&#8203;54047](nodejs/node#54047)
-   \[[`ead05aad2a`](nodejs/node@ead05aad2a)] - **doc**: fix typo in recognizing-contributors (Marco Ippolito) [#&#8203;53990](nodejs/node#53990)
-   \[[`25e59aebac`](nodejs/node@25e59aebac)] - **doc**: update boxstarter README (Aviv Keller) [#&#8203;53785](nodejs/node#53785)
-   \[[`a3183fb927`](nodejs/node@a3183fb927)] - **doc**: add info about prefix-only modules to `module.builtinModules` (Grigory) [#&#8203;53954](nodejs/node#53954)
-   \[[`89599e025f`](nodejs/node@89599e025f)] - **doc**: remove `scroll-behavior: smooth;` (Cloyd Lau) [#&#8203;53942](nodejs/node#53942)
-   \[[`139c62e40c`](nodejs/node@139c62e40c)] - **doc**: move --test-coverage-{ex,in}clude to proper location (Colin Ihrig) [#&#8203;53926](nodejs/node#53926)
-   \[[`233aba90ea`](nodejs/node@233aba90ea)] - **doc**: update `api_assets` README for new files (Aviv Keller) [#&#8203;53676](nodejs/node#53676)
-   \[[`44a1cbe98a`](nodejs/node@44a1cbe98a)] - **doc**: add MattiasBuelens to collaborators (Mattias Buelens) [#&#8203;53895](nodejs/node#53895)
-   \[[`f5280ddbc5`](nodejs/node@f5280ddbc5)] - **doc**: fix casing of GitHub handle for two collaborators (Antoine du Hamel) [#&#8203;53857](nodejs/node#53857)
-   \[[`9224e3eef1`](nodejs/node@9224e3eef1)] - **doc**: update release-post nodejs.org script (Rafael Gonzaga) [#&#8203;53762](nodejs/node#53762)
-   \[[`f87eed8de4`](nodejs/node@f87eed8de4)] - **doc**: move MylesBorins to emeritus (Myles Borins) [#&#8203;53760](nodejs/node#53760)
-   \[[`32ac80ae8d`](nodejs/node@32ac80ae8d)] - **doc**: add Rafael to the last security release (Rafael Gonzaga) [#&#8203;53769](nodejs/node#53769)
-   \[[`e71aa7e98b`](nodejs/node@e71aa7e98b)] - **doc**: use mock.callCount() in examples (Sébastien Règne) [#&#8203;53754](nodejs/node#53754)
-   \[[`f64db24312`](nodejs/node@f64db24312)] - **doc**: clarify authenticity of plaintexts in update (Tobias Nießen) [#&#8203;53784](nodejs/node#53784)
-   \[[`51e736ac83`](nodejs/node@51e736ac83)] - **doc**: add option to have support me link (Michael Dawson) [#&#8203;53312](nodejs/node#53312)
-   \[[`9804731d0f`](nodejs/node@9804731d0f)] - **doc**: update `scroll-padding-top` to 4rem (Cloyd Lau) [#&#8203;53662](nodejs/node#53662)
-   \[[`229f7f8b8a`](nodejs/node@229f7f8b8a)] - **doc**: mention v8.setFlagsFromString to pm (Rafael Gonzaga) [#&#8203;53731](nodejs/node#53731)
-   \[[`98d59aa929`](nodejs/node@98d59aa929)] - **doc**: remove the last \<pre> tag (Claudio W) [#&#8203;53741](nodejs/node#53741)
-   \[[`60ee41df08`](nodejs/node@60ee41df08)] - **doc**: exclude voting and regular TSC from spotlight (Michael Dawson) [#&#8203;53694](nodejs/node#53694)
-   \[[`c3536cfa99`](nodejs/node@c3536cfa99)] - **doc**: fix releases guide for recent Git versions (Michaël Zasso) [#&#8203;53709](nodejs/node#53709)
-   \[[`3b632e1871`](nodejs/node@3b632e1871)] - **doc**: require `node:process` in assert doc examples (Alfredo González) [#&#8203;53702](nodejs/node#53702)
-   \[[`754090c110`](nodejs/node@754090c110)] - **doc**: add additional explanation to the wildcard section in permissions (jakecastelli) [#&#8203;53664](nodejs/node#53664)
-   \[[`4346de7267`](nodejs/node@4346de7267)] - **doc**: mark NODE_MODULE_VERSION for Node.js 22.0.0 (Michaël Zasso) [#&#8203;53650](nodejs/node#53650)
-   \[[`758178bd72`](nodejs/node@758178bd72)] - **doc**: include node.module_timer on available categories (Vinicius Lourenço) [#&#8203;53638](nodejs/node#53638)
-   \[[`e0d213df2b`](nodejs/node@e0d213df2b)] - **doc**: fix module customization hook examples (Elliot Goodrich) [#&#8203;53637](nodejs/node#53637)
-   \[[`43ac5a2441`](nodejs/node@43ac5a2441)] - **doc**: fix doc for correct usage with plan & TestContext (Emil Tayeb) [#&#8203;53615](nodejs/node#53615)
-   \[[`5076f0d292`](nodejs/node@5076f0d292)] - **doc**: remove some news issues that are no longer (Michael Dawson) [#&#8203;53608](nodejs/node#53608)
-   \[[`c997dbef34`](nodejs/node@c997dbef34)] - **doc**: add issue for news from ambassadors (Michael Dawson) [#&#8203;53607](nodejs/node#53607)
-   \[[`16d55f1d25`](nodejs/node@16d55f1d25)] - **doc**: add esm example for os (Leonardo Peixoto) [#&#8203;53604](nodejs/node#53604)
-   \[[`156fc536f2`](nodejs/node@156fc536f2)] - **doc**: clarify usage of coverage reporters (Eliphaz Bouye) [#&#8203;53523](nodejs/node#53523)
-   \[[`f8f247bc99`](nodejs/node@f8f247bc99)] - **doc**: document addition testing options (Aviv Keller) [#&#8203;53569](nodejs/node#53569)
-   \[[`73860aca56`](nodejs/node@73860aca56)] - **doc**: clarify that fs.exists() may return false for existing symlink (Tobias Nießen) [#&#8203;53566](nodejs/node#53566)
-   \[[`59c5c5c73e`](nodejs/node@59c5c5c73e)] - **doc**: note http.closeAllConnections excludes upgraded sockets (Rob Hogan) [#&#8203;53560](nodejs/node#53560)
-   \[[`1cd3c8eb27`](nodejs/node@1cd3c8eb27)] - **doc**: fix typo (EhsanKhaki) [#&#8203;53397](nodejs/node#53397)
-   \[[`3c5e593e2a`](nodejs/node@3c5e593e2a)] - **doc, meta**: add PTAL to glossary (Aviv Keller) [#&#8203;53770](nodejs/node#53770)
-   \[[`f336e61257`](nodejs/node@f336e61257)] - **doc, test**: tracing channel hasSubscribers getter (Thomas Hunter II) [#&#8203;52908](nodejs/node#52908)
-   \[[`4187b81439`](nodejs/node@4187b81439)] - **doc, typings**: events.once accepts symbol event type (René) [#&#8203;53542](nodejs/node#53542)
-   \[[`3cdf94d403`](nodejs/node@3cdf94d403)] - **doc,tty**: add documentation for ReadStream and WriteStream (jakecastelli) [#&#8203;53567](nodejs/node#53567)
-   \[[`5d03f6fab7`](nodejs/node@5d03f6fab7)] - **esm**: move hooks test with others (Geoffrey Booth) [#&#8203;53558](nodejs/node#53558)
-   \[[`490f15a99b`](nodejs/node@490f15a99b)] - **fs**: ensure consistency for mkdtemp in both fs and fs/promises (YieldRay) [#&#8203;53776](nodejs/node#53776)
-   \[[`8e64c02b19`](nodejs/node@8e64c02b19)] - **(SEMVER-MINOR)** **http**: add diagnostics channel `http.client.request.error` (Kohei Ueno) [#&#8203;54054](nodejs/node#54054)
-   \[[`0d70c79ebf`](nodejs/node@0d70c79ebf)] - **lib**: optimize copyError with ObjectAssign in primordials (HEESEUNG) [#&#8203;53999](nodejs/node#53999)
-   \[[`a4ff2ac0f0`](nodejs/node@a4ff2ac0f0)] - **lib**: improve cluster/primary code (Ehsan Khakifirooz) [#&#8203;53756](nodejs/node#53756)
-   \[[`c667fbd988`](nodejs/node@c667fbd988)] - **lib**: improve error message when index not found on cjs (Vinicius Lourenço) [#&#8203;53859](nodejs/node#53859)
-   \[[`51ba566171`](nodejs/node@51ba566171)] - **lib**: decorate async stack trace in source maps (Chengzhong Wu) [#&#8203;53860](nodejs/node#53860)
-   \[[`d012dd3d29`](nodejs/node@d012dd3d29)] - **lib**: remove path.resolve from permissions.js (Rafael Gonzaga) [#&#8203;53729](nodejs/node#53729)
-   \[[`1e9ff50446`](nodejs/node@1e9ff50446)] - **lib**: add toJSON to PerformanceMeasure (theanarkh) [#&#8203;53603](nodejs/node#53603)
-   \[[`3a2d8bffa5`](nodejs/node@3a2d8bffa5)] - **lib**: convert WeakMaps in cjs loader with private symbol properties (Chengzhong Wu) [#&#8203;52095](nodejs/node#52095)
-   \[[`e326342bd7`](nodejs/node@e326342bd7)] - **meta**: add `sqlite` to js subsystems (Alex Yang) [#&#8203;53911](nodejs/node#53911)
-   \[[`bfabfb4d17`](nodejs/node@bfabfb4d17)] - **meta**: move tsc member to emeritus (Michael Dawson) [#&#8203;54029](nodejs/node#54029)
-   \[[`ae30674991`](nodejs/node@ae30674991)] - **meta**: add jake to collaborators (jakecastelli) [#&#8203;54004](nodejs/node#54004)
-   \[[`6ca0cfc602`](nodejs/node@6ca0cfc602)] - **meta**: remove license for hljs (Aviv Keller) [#&#8203;53970](nodejs/node#53970)
-   \[[`e6ba121e83`](nodejs/node@e6ba121e83)] - **meta**: make more bug-report information required (Aviv Keller) [#&#8203;53718](nodejs/node#53718)
-   \[[`1864cddd0c`](nodejs/node@1864cddd0c)] - **meta**: store actions secrets in environment (Aviv Keller) [#&#8203;53930](nodejs/node#53930)
-   \[[`c0b24e5071`](nodejs/node@c0b24e5071)] - **meta**: move anonrig to tsc voting members (Yagiz Nizipli) [#&#8203;53888](nodejs/node#53888)
-   \[[`e60b089f7f`](nodejs/node@e60b089f7f)] - **meta**: remove redudant logging from dep updaters (Aviv Keller) [#&#8203;53783](nodejs/node#53783)
-   \[[`bff6995ec3`](nodejs/node@bff6995ec3)] - **meta**: change email address of anonrig (Yagiz Nizipli) [#&#8203;53829](nodejs/node#53829)
-   \[[`c2bb46020a`](nodejs/node@c2bb46020a)] - **meta**: add `node_sqlite.c` to PR label config (Aviv Keller) [#&#8203;53797](nodejs/node#53797)
-   \[[`b8d2bbc6d6`](nodejs/node@b8d2bbc6d6)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#&#8203;53758](nodejs/node#53758)
-   \[[`0ad4b7c1f7`](nodejs/node@0ad4b7c1f7)] - **meta**: use HTML entities in commit-queue comment (Aviv Keller) [#&#8203;53744](nodejs/node#53744)
-   \[[`aa0c5c25d1`](nodejs/node@aa0c5c25d1)] - **meta**: move regular TSC member to emeritus (Michael Dawson) [#&#8203;53693](nodejs/node#53693)
-   \[[`a5f5b4550b`](nodejs/node@a5f5b4550b)] - **meta**: bump codecov/codecov-action from 4.4.1 to 4.5.0 (dependabot\[bot]) [#&#8203;53675](nodejs/node#53675)
-   \[[`f84e215c90`](nodejs/node@f84e215c90)] - **meta**: bump mozilla-actions/sccache-action from 0.0.4 to 0.0.5 (dependabot\[bot]) [#&#8203;53674](nodejs/node#53674)
-   \[[`d5a9c249d3`](nodejs/node@d5a9c249d3)] - **meta**: bump github/codeql-action from 3.25.7 to 3.25.11 (dependabot\[bot]) [#&#8203;53673](nodejs/node#53673)
-   \[[`39d6c780c8`](nodejs/node@39d6c780c8)] - **meta**: bump actions/checkout from 4.1.6 to 4.1.7 (dependabot\[bot]) [#&#8203;53672](nodejs/node#53672)
-   \[[`bb6fe38a34`](nodejs/node@bb6fe38a34)] - **meta**: bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (dependabot\[bot]) [#&#8203;53671](nodejs/node#53671)
-   \[[`5dcdfb5e6b`](nodejs/node@5dcdfb5e6b)] - **meta**: bump step-security/harden-runner from 2.8.0 to 2.8.1 (dependabot\[bot]) [#&#8203;53670](nodejs/node#53670)
-   \[[`44d901a1c9`](nodejs/node@44d901a1c9)] - **meta**: move member from TSC regular to emeriti (Michael Dawson) [#&#8203;53599](nodejs/node#53599)
-   \[[`0c91186afa`](nodejs/node@0c91186afa)] - **meta**: warnings bypass deprecation cycle (Benjamin Gruenbaum) [#&#8203;53513](nodejs/node#53513)
-   \[[`bcd08bef60`](nodejs/node@bcd08bef60)] - **meta**: prevent constant references to issues in versioning (Aviv Keller) [#&#8203;53564](nodejs/node#53564)
-   \[[`7625dc4927`](nodejs/node@7625dc4927)] - **module**: fix submodules loaded by require() and import() (Joyee Cheung) [#&#8203;52487](nodejs/node#52487)
-   \[[`6c4f4772e3`](nodejs/node@6c4f4772e3)] - **module**: tidy code and comments (Jacob Smith) [#&#8203;52437](nodejs/node#52437)
-   \[[`51b88faeac`](nodejs/node@51b88faeac)] - **module**: disallow CJS <-> ESM edges in a cycle from require(esm) (Joyee Cheung) [#&#8203;52264](nodejs/node#52264)
-   \[[`4dae68ced4`](nodejs/node@4dae68ced4)] - **module**: centralize SourceTextModule compilation for builtin loader (Joyee Cheung) [#&#8203;52291](nodejs/node#52291)
-   \[[`cad46afc07`](nodejs/node@cad46afc07)] - **(SEMVER-MINOR)** **module**: support require()ing synchronous ESM graphs (Joyee Cheung) [#&#8203;51977](nodejs/node#51977)
-   \[[`ac58c829a1`](nodejs/node@ac58c829a1)] - **node-api**: add property keys benchmark (Chengzhong Wu) [#&#8203;54012](nodejs/node#54012)
-   \[[`e6a4104bd1`](nodejs/node@e6a4104bd1)] - **node-api**: rename nogc to basic (Gabriel Schulhof) [#&#8203;53830](nodejs/node#53830)
-   \[[`57b8b8e18e`](nodejs/node@57b8b8e18e)] - **(SEMVER-MINOR)** **path**: add `matchesGlob` method (Aviv Keller) [#&#8203;52881](nodejs/node#52881)
-   \[[`bf6aa53299`](nodejs/node@bf6aa53299)] - **process**: unify experimental warning messages (Aviv Keller) [#&#8203;53704](nodejs/node#53704)
-   \[[`2a3ae16e62`](nodejs/node@2a3ae16e62)] - **src**: expose LookupAndCompile with parameters (Shelley Vohr) [#&#8203;53886](nodejs/node#53886)
-   \[[`0109f9c961`](nodejs/node@0109f9c961)] - **src**: simplify AESCipherTraits::AdditionalConfig (Tobias Nießen) [#&#8203;53890](nodejs/node#53890)
-   \[[`6bafe8a457`](nodejs/node@6bafe8a457)] - **src**: fix -Wshadow warning (Shelley Vohr) [#&#8203;53885](nodejs/node#53885)
-   \[[`4c36d6c47a`](nodejs/node@4c36d6c47a)] - **src**: fix slice of slice of file-backed Blob (Josh Lee) [#&#8203;53972](nodejs/node#53972)
-   \[[`848c2d59fb`](nodejs/node@848c2d59fb)] - **src**: cache invariant code motion (Rafael Gonzaga) [#&#8203;53879](nodejs/node#53879)
-   \[[`acaf5dd1cd`](nodejs/node@acaf5dd1cd)] - **src**: avoid strcmp in ImportJWKAsymmetricKey (Tobias Nießen) [#&#8203;53813](nodejs/node#53813)
-   \[[`b71250aaf9`](nodejs/node@b71250aaf9)] - **src**: replace ToLocalChecked uses with ToLocal in node-file (James M Snell) [#&#8203;53869](nodejs/node#53869)
-   \[[`aff9a5339a`](nodejs/node@aff9a5339a)] - **src**: fix env-file flag to ignore spaces before quotes (Mohit Malhotra) [#&#8203;53786](nodejs/node#53786)
-   \[[`e352a4ef27`](nodejs/node@e352a4ef27)] - **src**: update outdated references to spec sections (Tobias Nießen) [#&#8203;53832](nodejs/node#53832)
-   \[[`1a4da22a60`](nodejs/node@1a4da22a60)] - **src**: use Maybe\<void> in ManagedEVPPKey (Tobias Nießen) [#&#8203;53811](nodejs/node#53811)
-   \[[`0c24b91bd2`](nodejs/node@0c24b91bd2)] - **src**: fix error handling in ExportJWKAsymmetricKey (Tobias Nießen) [#&#8203;53767](nodejs/node#53767)
-   \[[`81cd84c716`](nodejs/node@81cd84c716)] - **src**: use Maybe\<void> in node::crypto::error (Tobias Nießen) [#&#8203;53766](nodejs/node#53766)
-   \[[`8135f3616d`](nodejs/node@8135f3616d)] - **src**: fix typo in node.h (Daeyeon Jeong) [#&#8203;53759](nodejs/node#53759)
-   \[[`e6d735a997`](nodejs/node@e6d735a997)] - **src**: document the Node.js context embedder data (Joyee Cheung) [#&#8203;53611](nodejs/node#53611)
-   \[[`584beaa2ed`](nodejs/node@584beaa2ed)] - **src**: zero-initialize data that are copied into the snapshot (Joyee Cheung) [#&#8203;53563](nodejs/node#53563)
-   \[[`ef5dabd8c6`](nodejs/node@ef5dabd8c6)] - **src**: fix Worker termination when '--inspect-brk' is passed (Daeyeon Jeong) [#&#8203;53724](nodejs/node#53724)
-   \[[`62f4f6f48e`](nodejs/node@62f4f6f48e)] - **src**: remove ArrayBufferAllocator::Reallocate override (Shu-yu Guo) [#&#8203;52910](nodejs/node#52910)
-   \[[`a6dd8643fa`](nodejs/node@a6dd8643fa)] - **src**: reduce unnecessary serialization of CLI options in C++ (Joyee Cheung) [#&#8203;52451](nodejs/node#52451)
-   \[[`31fdb881cf`](nodejs/node@31fdb881cf)] - **src,lib**: expose getCategoryEnabledBuffer to use on node.http (Vinicius Lourenço) [#&#8203;53602](nodejs/node#53602)
-   \[[`2eea8502e1`](nodejs/node@2eea8502e1)] - **src,test**: further cleanup references to osx (Daniel Bayley) [#&#8203;53820](nodejs/node#53820)
-   \[[`7c21bb99a5`](nodejs/node@7c21bb99a5)] - **(SEMVER-MINOR)** **stream**: expose DuplexPair API (Austin Wright) [#&#8203;34111](nodejs/node#34111)
-   \[[`56299f7309`](nodejs/node@56299f7309)] - **stream**: improve inspector ergonomics (Benjamin Gruenbaum) [#&#8203;53800](nodejs/node#53800)
-   \[[`9b82b15230`](nodejs/node@9b82b15230)] - **stream**: update ongoing promise in async iterator return() method (Mattias Buelens) [#&#8203;52657](nodejs/node#52657)
-   \[[`4a3ecbfc9b`](nodejs/node@4a3ecbfc9b)] - **(SEMVER-MINOR)** **stream**: implement `min` option for `ReadableStreamBYOBReader.read` (Mattias Buelens) [#&#8203;50888](nodejs/node#50888)
-   \[[`bd996bf694`](nodejs/node@bd996bf694)] - **test**: do not swallow uncaughtException errors in exit code tests (Meghan Denny) [#&#8203;54039](nodejs/node#54039)
-   \[[`77761af077`](nodejs/node@77761af077)] - **test**: move shared module to `test/common` (Rich Trott) [#&#8203;54042](nodejs/node#54042)
-   \[[`bec88ce138`](nodejs/node@bec88ce138)] - **test**: skip sea tests with more accurate available disk space estimation (Chengzhong Wu) [#&#8203;53996](nodejs/node#53996)
-   \[[`9a98ad47cd`](nodejs/node@9a98ad47cd)] - **test**: remove unnecessary console log (KAYYY) [#&#8203;53812](nodejs/node#53812)
-   \[[`364d09cf0a`](nodejs/node@364d09cf0a)] - **test**: add comments and rename test for timer robustness (Rich Trott) [#&#8203;54008](nodejs/node#54008)
-   \[[`5c5093dc0a`](nodejs/node@5c5093dc0a)] - **test**: add test for one arg timers to increase coverage (Carlos Espa) [#&#8203;54007](nodejs/node#54007)
-   \[[`43ede1ae0b`](nodejs/node@43ede1ae0b)] - **test**: mark 'test/parallel/test-sqlite.js' as flaky (Colin Ihrig) [#&#8203;54031](nodejs/node#54031)
-   \[[`0ad783cb42`](nodejs/node@0ad783cb42)] - **test**: mark test-pipe-file-to-http as flaky (jakecastelli) [#&#8203;53751](nodejs/node#53751)
-   \[[`f2b4fd3544`](nodejs/node@f2b4fd3544)] - **test**: compare paths on Windows without considering case (Early Riser) [#&#8203;53993](nodejs/node#53993)
-   \[[`2e69e5f4d2`](nodejs/node@2e69e5f4d2)] - **test**: skip sea tests in large debug builds (Chengzhong Wu) [#&#8203;53918](nodejs/node#53918)
-   \[[`56c26fe6e5`](nodejs/node@56c26fe6e5)] - **test**: skip --title check on IBM i (Abdirahim Musse) [#&#8203;53952](nodejs/node#53952)
-   \[[`6d0b8ded00`](nodejs/node@6d0b8ded00)] - **test**: reduce flakiness of `test-assert-esm-cjs-message-verify` (Antoine du Hamel) [#&#8203;53967](nodejs/node#53967)
-   \[[`edb75aebd7`](nodejs/node@edb75aebd7)] - **test**: use `PYTHON` executable from env in `assertSnapshot` (Antoine du Hamel) [#&#8203;53938](nodejs/node#53938)
-   \[[`be94e470a6`](nodejs/node@be94e470a6)] - **test**: deflake test-blob-file-backed (Luigi Pinca) [#&#8203;53920](nodejs/node#53920)
-   \[[`c2b0dcd165`](nodejs/node@c2b0dcd165)] - **test**: un-set inspector-async-hook-setup-at-inspect-brk as flaky (Abdirahim Musse) [#&#8203;53692](nodejs/node#53692)
-   \[[`6dc18981ac`](nodejs/node@6dc18981ac)] - **test**: use python3 instead of python in pummel test (Mathis Wiehl) [#&#8203;53057](nodejs/node#53057)
-   \[[`662bf524e1`](nodejs/node@662bf524e1)] - **test**: do not assume cwd in snapshot tests (Antoine du Hamel) [#&#8203;53146](nodejs/node#53146)
-   \[[`a07526702a`](nodejs/node@a07526702a)] - **test**: fix OpenSSL version checks (Richard Lau) [#&#8203;53503](nodejs/node#53503)
-   \[[`2b70018d11`](nodejs/node@2b70018d11)] - **test**: refactor, add assertion to http-request-end (jakecastelli) [#&#8203;53411](nodejs/node#53411)
-   \[[`c0262c1561`](nodejs/node@c0262c1561)] - **test_runner**: switched to internal readline interface (Emil Tayeb) [#&#8203;54000](nodejs/node#54000)
-   \[[`fb7342246c`](nodejs/node@fb7342246c)] - **test_runner**: do not throw on mocked clearTimeout() (Aksinya Bykova) [#&#8203;54005](nodejs/node#54005)
-   \[[`367f9e77f3`](nodejs/node@367f9e77f3)] - **test_runner**: cleanup global event listeners after run (Eddie Abbondanzio) [#&#8203;53878](nodejs/node#53878)
-   \[[`206c668ee7`](nodejs/node@206c668ee7)] - **test_runner**: remove plan option from run() (Colin Ihrig) [#&#8203;53834](nodejs/node#53834)
-   \[[`8660d481e5`](nodejs/node@8660d481e5)] - **tls**: add setKeyCert() to tls.Socket (Brian White) [#&#8203;53636](nodejs/node#53636)
-   \[[`9c5beabd83`](nodejs/node@9c5beabd83)] - **tools**: fix `SLACK_TITLE` in invalid commit workflow (Antoine du Hamel) [#&#8203;53912](nodejs/node#53912)
-   \[[`4dedf2aead`](nodejs/node@4dedf2aead)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#&#8203;53840](nodejs/node#53840)
-   \[[`642d5c5d30`](nodejs/node@642d5c5d30)] - **tools**: use v8\_features.json to populate config.gypi (Cheng) [#&#8203;53749](nodejs/node#53749)
-   \[[`031206544d`](nodejs/node@031206544d)] - **tools**: update lint-md-dependencies to unified@11.0.5 (Node.js GitHub Bot) [#&#8203;53555](nodejs/node#53555)
-   \[[`8404421ea6`](nodejs/node@8404421ea6)] - **tools**: replace reference to NodeMainInstance with SnapshotBuilder (codediverdev) [#&#8203;53544](nodejs/node#53544)
-   \[[`2d8490fed5`](nodejs/node@2d8490fed5)] - **typings**: add `fs_dir` types (Yagiz Nizipli) [#&#8203;53631](nodejs/node#53631)
-   \[[`325eae0b3f`](nodejs/node@325eae0b3f)] - **url**: fix typo (KAYYY) [#&#8203;53827](nodejs/node#53827)
-   \[[`7fc45f5e3f`](nodejs/node@7fc45f5e3f)] - **url**: reduce unnecessary string copies (Yagiz Nizipli) [#&#8203;53628](nodejs/node#53628)
-   \[[`1d961facf1`](nodejs/node@1d961facf1)] - **url**: add missing documentation for `URL.parse()` (Yagiz Nizipli) [#&#8203;53733](nodejs/node#53733)
-   \[[`ce877c6d0f`](nodejs/node@ce877c6d0f)] - **util**: fix crashing when emitting new Buffer() deprecation warning [#&#8203;53075](nodejs/node#53075) (Aras Abbasi) [#&#8203;53089](nodejs/node#53089)
-   \[[`d6d04279ca`](nodejs/node@d6d04279ca)] - **worker**: allow copied NODE_OPTIONS in the env setting (Joyee Cheung) [#&#8203;53596](nodejs/node#53596)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC40Ni4xIiwidXBkYXRlZEluVmVyIjoiMzguNDYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://git.tristess.app/alexandresoro/ouca/pulls/47
Reviewed-by: Alexandre Soro <code@soro.dev>
Co-authored-by: renovate <renovate@git.tristess.app>
Co-committed-by: renovate <renovate@git.tristess.app>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Aug 22, 2024
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `20.16.0` -> `20.17.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v20.17.0`](https://github.com/nodejs/node/releases/tag/v20.17.0): 2024-08-21, Version 20.17.0 &#x27;Iron&#x27; (LTS), @&#8203;marco-ippolito

[Compare Source](nodejs/node@v20.16.0...v20.17.0)

##### module: support require()ing synchronous ESM graphs

This release adds `require()` support for synchronous ESM graphs under
the flag `--experimental-require-module`.

If `--experimental-require-module` is enabled, and the ECMAScript
module being loaded by `require()` meets the following requirements:

-   Explicitly marked as an ES module with a "type": "module" field in the closest package.json or a .mjs extension.
-   Fully synchronous (contains no top-level await).

`require()` will load the requested module as an ES Module, and return
the module name space object. In this case it is similar to dynamic
`import()` but is run synchronously and returns the name space object
directly.

Contributed by Joyee Cheung in [#&#8203;51977](nodejs/node#51977)

##### path: add `matchesGlob` method

Glob patterns can now be tested against individual paths via the `path.matchesGlob(path, pattern)` method.

Contributed by Aviv Keller in [#&#8203;52881](nodejs/node#52881)

##### stream: expose DuplexPair API

The function `duplexPair` returns an array with two items,
each being a `Duplex` stream connected to the other side:

```js
const [ sideA, sideB ] = duplexPair();
```

Whatever is written to one stream is made readable on the other. It provides
behavior analogous to a network connection, where the data written by the client
becomes readable by the server, and vice-versa.

Contributed by Austin Wright in [#&#8203;34111](nodejs/node#34111)

##### Other Notable Changes

-   \[[`8e64c02b19`](nodejs/node@8e64c02b19)] - **(SEMVER-MINOR)** **http**: add diagnostics channel `http.client.request.error` (Kohei Ueno) [#&#8203;54054](nodejs/node#54054)
-   \[[`ae30674991`](nodejs/node@ae30674991)] - **meta**: add jake to collaborators (jakecastelli) [#&#8203;54004](nodejs/node#54004)
-   \[[`4a3ecbfc9b`](nodejs/node@4a3ecbfc9b)] - **(SEMVER-MINOR)** **stream**: implement `min` option for `ReadableStreamBYOBReader.read` (Mattias Buelens) [#&#8203;50888](nodejs/node#50888)

##### Commits

-   \[[`b3a2726cbc`](nodejs/node@b3a2726cbc)] - **assert**: use isError instead of instanceof in innerOk (Pietro Marchini) [#&#8203;53980](nodejs/node#53980)
-   \[[`c7e4c3daf4`](nodejs/node@c7e4c3daf4)] - **benchmark**: add cpSync benchmark (Yagiz Nizipli) [#&#8203;53612](nodejs/node#53612)
-   \[[`a52de8c5ff`](nodejs/node@a52de8c5ff)] - **bootstrap**: print `--help` message using `console.log` (Jacob Hummer) [#&#8203;51463](nodejs/node#51463)
-   \[[`61b90e7c5e`](nodejs/node@61b90e7c5e)] - **build**: update gcovr to 7.2 and codecov config (Benjamin E. Coe) [#&#8203;54019](nodejs/node#54019)
-   \[[`a9c04eaa27`](nodejs/node@a9c04eaa27)] - **build**: ensure v8\_pointer_compression_sandbox is enabled on 64bit (Shelley Vohr) [#&#8203;53884](nodejs/node#53884)
-   \[[`342a663d7a`](nodejs/node@342a663d7a)] - **build**: trigger coverage ci when updating codecov (Yagiz Nizipli) [#&#8203;53929](nodejs/node#53929)
-   \[[`5727b4d129`](nodejs/node@5727b4d129)] - **build**: update codecov coverage build count (Yagiz Nizipli) [#&#8203;53929](nodejs/node#53929)
-   \[[`977af25870`](nodejs/node@977af25870)] - **build**: disable test-asan workflow (Michaël Zasso) [#&#8203;53844](nodejs/node#53844)
-   \[[`04798fb104`](nodejs/node@04798fb104)] - **build**: fix build warning of c-ares under GN build (Cheng) [#&#8203;53750](nodejs/node#53750)
-   \[[`5ec5e78574`](nodejs/node@5ec5e78574)] - **build**: fix mac build error of c-ares under GN (Cheng) [#&#8203;53687](nodejs/node#53687)
-   \[[`3d8721f0a4`](nodejs/node@3d8721f0a4)] - **build**: add version-specific library path for AIX (Richard Lau) [#&#8203;53585](nodejs/node#53585)
-   \[[`ffb0bd344d`](nodejs/node@ffb0bd344d)] - **build, tools**: drop leading `/` from `r2dir` (Richard Lau) [#&#8203;53951](nodejs/node#53951)
-   \[[`a2d74f4c31`](nodejs/node@a2d74f4c31)] - **build,tools**: simplify upload of shasum signatures (Michaël Zasso) [#&#8203;53892](nodejs/node#53892)
-   \[[`993bb3b6e7`](nodejs/node@993bb3b6e7)] - **child_process**: fix incomplete prototype pollution hardening (Liran Tal) [#&#8203;53781](nodejs/node#53781)
-   \[[`137a2e5766`](nodejs/node@137a2e5766)] - **cli**: document `--inspect` port `0` behavior (Aviv Keller) [#&#8203;53782](nodejs/node#53782)
-   \[[`820e6e1737`](nodejs/node@820e6e1737)] - **cli**: update `node.1` to reflect Atom's sunset (Aviv Keller) [#&#8203;53734](nodejs/node#53734)
-   \[[`fa0e8d7b3b`](nodejs/node@fa0e8d7b3b)] - **crypto**: avoid std::function (Tobias Nießen) [#&#8203;53683](nodejs/node#53683)
-   \[[`460240c368`](nodejs/node@460240c368)] - **crypto**: make deriveBits length parameter optional and nullable (Filip Skokan) [#&#8203;53601](nodejs/node#53601)
-   \[[`ceb1d5e00a`](nodejs/node@ceb1d5e00a)] - **crypto**: avoid taking ownership of OpenSSL objects (Tobias Nießen) [#&#8203;53460](nodejs/node#53460)
-   \[[`44268c27eb`](nodejs/node@44268c27eb)] - **deps**: update corepack to 0.29.3 (Node.js GitHub Bot) [#&#8203;54072](nodejs/node#54072)
-   \[[`496975ece0`](nodejs/node@496975ece0)] - **deps**: update c-ares to v1.32.3 (Node.js GitHub Bot) [#&#8203;54020](nodejs/node#54020)
-   \[[`5eea419349`](nodejs/node@5eea419349)] - **deps**: update c-ares to v1.32.2 (Node.js GitHub Bot) [#&#8203;53865](nodejs/node#53865)
-   \[[`8c8e3688c5`](nodejs/node@8c8e3688c5)] - **deps**: update googletest to [`4b21f1a`](nodejs/node@4b21f1a) (Node.js GitHub Bot) [#&#8203;53842](nodejs/node#53842)
-   \[[`78f6b34c77`](nodejs/node@78f6b34c77)] - **deps**: update minimatch to 10.0.1 (Node.js GitHub Bot) [#&#8203;53841](nodejs/node#53841)
-   \[[`398f7acca3`](nodejs/node@398f7acca3)] - **deps**: update corepack to 0.29.2 (Node.js GitHub Bot) [#&#8203;53838](nodejs/node#53838)
-   \[[`fa8f99d90b`](nodejs/node@fa8f99d90b)] - **deps**: update simdutf to 5.3.0 (Node.js GitHub Bot) [#&#8203;53837](nodejs/node#53837)
-   \[[`a19b28336b`](nodejs/node@a19b28336b)] - **deps**: update ada to 2.9.0 (Node.js GitHub Bot) [#&#8203;53748](nodejs/node#53748)
-   \[[`2f66c7e707`](nodejs/node@2f66c7e707)] - **deps**: upgrade npm to 10.8.2 (npm team) [#&#8203;53799](nodejs/node#53799)
-   \[[`2a2620e7c0`](nodejs/node@2a2620e7c0)] - **deps**: update googletest to [`34ad51b`](nodejs/node@34ad51b) (Node.js GitHub Bot) [#&#8203;53157](nodejs/node#53157)
-   \[[`c01ce60ce7`](nodejs/node@c01ce60ce7)] - **deps**: update googletest to [`305e5a2`](nodejs/node@305e5a2) (Node.js GitHub Bot) [#&#8203;53157](nodejs/node#53157)
-   \[[`832328ea01`](nodejs/node@832328ea01)] - **deps**: update c-ares to v1.32.1 (Node.js GitHub Bot) [#&#8203;53753](nodejs/node#53753)
-   \[[`878e9a4ae7`](nodejs/node@878e9a4ae7)] - **deps**: update minimatch to 9.0.5 (Node.js GitHub Bot) [#&#8203;53646](nodejs/node#53646)
-   \[[`4647e6b5c5`](nodejs/node@4647e6b5c5)] - **deps**: update c-ares to v1.32.0 (Node.js GitHub Bot) [#&#8203;53722](nodejs/node#53722)
-   \[[`30310bf887`](nodejs/node@30310bf887)] - **doc**: move numCPUs require to top of file in cluster CJS example (Alfredo González) [#&#8203;53932](nodejs/node#53932)
-   \[[`36170eddca`](nodejs/node@36170eddca)] - **doc**: update security-release process to automated one (Rafael Gonzaga) [#&#8203;53877](nodejs/node#53877)
-   \[[`55f5e76ba7`](nodejs/node@55f5e76ba7)] - **doc**: fix typo in technical-priorities.md (YoonSoo_Shin) [#&#8203;54094](nodejs/node#54094)
-   \[[`1c0ccc0ca8`](nodejs/node@1c0ccc0ca8)] - **doc**: fix typo in diagnostic tooling support tiers document (Taejin Kim) [#&#8203;54058](nodejs/node#54058)
-   \[[`6a5120ff0f`](nodejs/node@6a5120ff0f)] - **doc**: move GeoffreyBooth to TSC regular member (Geoffrey Booth) [#&#8203;54047](nodejs/node#54047)
-   \[[`ead05aad2a`](nodejs/node@ead05aad2a)] - **doc**: fix typo in recognizing-contributors (Marco Ippolito) [#&#8203;53990](nodejs/node#53990)
-   \[[`25e59aebac`](nodejs/node@25e59aebac)] - **doc**: update boxstarter README (Aviv Keller) [#&#8203;53785](nodejs/node#53785)
-   \[[`a3183fb927`](nodejs/node@a3183fb927)] - **doc**: add info about prefix-only modules to `module.builtinModules` (Grigory) [#&#8203;53954](nodejs/node#53954)
-   \[[`89599e025f`](nodejs/node@89599e025f)] - **doc**: remove `scroll-behavior: smooth;` (Cloyd Lau) [#&#8203;53942](nodejs/node#53942)
-   \[[`139c62e40c`](nodejs/node@139c62e40c)] - **doc**: move --test-coverage-{ex,in}clude to proper location (Colin Ihrig) [#&#8203;53926](nodejs/node#53926)
-   \[[`233aba90ea`](nodejs/node@233aba90ea)] - **doc**: update `api_assets` README for new files (Aviv Keller) [#&#8203;53676](nodejs/node#53676)
-   \[[`44a1cbe98a`](nodejs/node@44a1cbe98a)] - **doc**: add MattiasBuelens to collaborators (Mattias Buelens) [#&#8203;53895](nodejs/node#53895)
-   \[[`f5280ddbc5`](nodejs/node@f5280ddbc5)] - **doc**: fix casing of GitHub handle for two collaborators (Antoine du Hamel) [#&#8203;53857](nodejs/node#53857)
-   \[[`9224e3eef1`](nodejs/node@9224e3eef1)] - **doc**: update release-post nodejs.org script (Rafael Gonzaga) [#&#8203;53762](nodejs/node#53762)
-   \[[`f87eed8de4`](nodejs/node@f87eed8de4)] - **doc**: move MylesBorins to emeritus (Myles Borins) [#&#8203;53760](nodejs/node#53760)
-   \[[`32ac80ae8d`](nodejs/node@32ac80ae8d)] - **doc**: add Rafael to the last security release (Rafael Gonzaga) [#&#8203;53769](nodejs/node#53769)
-   \[[`e71aa7e98b`](nodejs/node@e71aa7e98b)] - **doc**: use mock.callCount() in examples (Sébastien Règne) [#&#8203;53754](nodejs/node#53754)
-   \[[`f64db24312`](nodejs/node@f64db24312)] - **doc**: clarify authenticity of plaintexts in update (Tobias Nießen) [#&#8203;53784](nodejs/node#53784)
-   \[[`51e736ac83`](nodejs/node@51e736ac83)] - **doc**: add option to have support me link (Michael Dawson) [#&#8203;53312](nodejs/node#53312)
-   \[[`9804731d0f`](nodejs/node@9804731d0f)] - **doc**: update `scroll-padding-top` to 4rem (Cloyd Lau) [#&#8203;53662](nodejs/node#53662)
-   \[[`229f7f8b8a`](nodejs/node@229f7f8b8a)] - **doc**: mention v8.setFlagsFromString to pm (Rafael Gonzaga) [#&#8203;53731](nodejs/node#53731)
-   \[[`98d59aa929`](nodejs/node@98d59aa929)] - **doc**: remove the last \<pre> tag (Claudio W) [#&#8203;53741](nodejs/node#53741)
-   \[[`60ee41df08`](nodejs/node@60ee41df08)] - **doc**: exclude voting and regular TSC from spotlight (Michael Dawson) [#&#8203;53694](nodejs/node#53694)
-   \[[`c3536cfa99`](nodejs/node@c3536cfa99)] - **doc**: fix releases guide for recent Git versions (Michaël Zasso) [#&#8203;53709](nodejs/node#53709)
-   \[[`3b632e1871`](nodejs/node@3b632e1871)] - **doc**: require `node:process` in assert doc examples (Alfredo González) [#&#8203;53702](nodejs/node#53702)
-   \[[`754090c110`](nodejs/node@754090c110)] - **doc**: add additional explanation to the wildcard section in permissions (jakecastelli) [#&#8203;53664](nodejs/node#53664)
-   \[[`4346de7267`](nodejs/node@4346de7267)] - **doc**: mark NODE_MODULE_VERSION for Node.js 22.0.0 (Michaël Zasso) [#&#8203;53650](nodejs/node#53650)
-   \[[`758178bd72`](nodejs/node@758178bd72)] - **doc**: include node.module_timer on available categories (Vinicius Lourenço) [#&#8203;53638](nodejs/node#53638)
-   \[[`e0d213df2b`](nodejs/node@e0d213df2b)] - **doc**: fix module customization hook examples (Elliot Goodrich) [#&#8203;53637](nodejs/node#53637)
-   \[[`43ac5a2441`](nodejs/node@43ac5a2441)] - **doc**: fix doc for correct usage with plan & TestContext (Emil Tayeb) [#&#8203;53615](nodejs/node#53615)
-   \[[`5076f0d292`](nodejs/node@5076f0d292)] - **doc**: remove some news issues that are no longer (Michael Dawson) [#&#8203;53608](nodejs/node#53608)
-   \[[`c997dbef34`](nodejs/node@c997dbef34)] - **doc**: add issue for news from ambassadors (Michael Dawson) [#&#8203;53607](nodejs/node#53607)
-   \[[`16d55f1d25`](nodejs/node@16d55f1d25)] - **doc**: add esm example for os (Leonardo Peixoto) [#&#8203;53604](nodejs/node#53604)
-   \[[`156fc536f2`](nodejs/node@156fc536f2)] - **doc**: clarify usage of coverage reporters (Eliphaz Bouye) [#&#8203;53523](nodejs/node#53523)
-   \[[`f8f247bc99`](nodejs/node@f8f247bc99)] - **doc**: document addition testing options (Aviv Keller) [#&#8203;53569](nodejs/node#53569)
-   \[[`73860aca56`](nodejs/node@73860aca56)] - **doc**: clarify that fs.exists() may return false for existing symlink (Tobias Nießen) [#&#8203;53566](nodejs/node#53566)
-   \[[`59c5c5c73e`](nodejs/node@59c5c5c73e)] - **doc**: note http.closeAllConnections excludes upgraded sockets (Rob Hogan) [#&#8203;53560](nodejs/node#53560)
-   \[[`1cd3c8eb27`](nodejs/node@1cd3c8eb27)] - **doc**: fix typo (EhsanKhaki) [#&#8203;53397](nodejs/node#53397)
-   \[[`3c5e593e2a`](nodejs/node@3c5e593e2a)] - **doc, meta**: add PTAL to glossary (Aviv Keller) [#&#8203;53770](nodejs/node#53770)
-   \[[`f336e61257`](nodejs/node@f336e61257)] - **doc, test**: tracing channel hasSubscribers getter (Thomas Hunter II) [#&#8203;52908](nodejs/node#52908)
-   \[[`4187b81439`](nodejs/node@4187b81439)] - **doc, typings**: events.once accepts symbol event type (René) [#&#8203;53542](nodejs/node#53542)
-   \[[`3cdf94d403`](nodejs/node@3cdf94d403)] - **doc,tty**: add documentation for ReadStream and WriteStream (jakecastelli) [#&#8203;53567](nodejs/node#53567)
-   \[[`5d03f6fab7`](nodejs/node@5d03f6fab7)] - **esm**: move hooks test with others (Geoffrey Booth) [#&#8203;53558](nodejs/node#53558)
-   \[[`490f15a99b`](nodejs/node@490f15a99b)] - **fs**: ensure consistency for mkdtemp in both fs and fs/promises (YieldRay) [#&#8203;53776](nodejs/node#53776)
-   \[[`8e64c02b19`](nodejs/node@8e64c02b19)] - **(SEMVER-MINOR)** **http**: add diagnostics channel `http.client.request.error` (Kohei Ueno) [#&#8203;54054](nodejs/node#54054)
-   \[[`0d70c79ebf`](nodejs/node@0d70c79ebf)] - **lib**: optimize copyError with ObjectAssign in primordials (HEESEUNG) [#&#8203;53999](nodejs/node#53999)
-   \[[`a4ff2ac0f0`](nodejs/node@a4ff2ac0f0)] - **lib**: improve cluster/primary code (Ehsan Khakifirooz) [#&#8203;53756](nodejs/node#53756)
-   \[[`c667fbd988`](nodejs/node@c667fbd988)] - **lib**: improve error message when index not found on cjs (Vinicius Lourenço) [#&#8203;53859](nodejs/node#53859)
-   \[[`51ba566171`](nodejs/node@51ba566171)] - **lib**: decorate async stack trace in source maps (Chengzhong Wu) [#&#8203;53860](nodejs/node#53860)
-   \[[`d012dd3d29`](nodejs/node@d012dd3d29)] - **lib**: remove path.resolve from permissions.js (Rafael Gonzaga) [#&#8203;53729](nodejs/node#53729)
-   \[[`1e9ff50446`](nodejs/node@1e9ff50446)] - **lib**: add toJSON to PerformanceMeasure (theanarkh) [#&#8203;53603](nodejs/node#53603)
-   \[[`3a2d8bffa5`](nodejs/node@3a2d8bffa5)] - **lib**: convert WeakMaps in cjs loader with private symbol properties (Chengzhong Wu) [#&#8203;52095](nodejs/node#52095)
-   \[[`e326342bd7`](nodejs/node@e326342bd7)] - **meta**: add `sqlite` to js subsystems (Alex Yang) [#&#8203;53911](nodejs/node#53911)
-   \[[`bfabfb4d17`](nodejs/node@bfabfb4d17)] - **meta**: move tsc member to emeritus (Michael Dawson) [#&#8203;54029](nodejs/node#54029)
-   \[[`ae30674991`](nodejs/node@ae30674991)] - **meta**: add jake to collaborators (jakecastelli) [#&#8203;54004](nodejs/node#54004)
-   \[[`6ca0cfc602`](nodejs/node@6ca0cfc602)] - **meta**: remove license for hljs (Aviv Keller) [#&#8203;53970](nodejs/node#53970)
-   \[[`e6ba121e83`](nodejs/node@e6ba121e83)] - **meta**: make more bug-report information required (Aviv Keller) [#&#8203;53718](nodejs/node#53718)
-   \[[`1864cddd0c`](nodejs/node@1864cddd0c)] - **meta**: store actions secrets in environment (Aviv Keller) [#&#8203;53930](nodejs/node#53930)
-   \[[`c0b24e5071`](nodejs/node@c0b24e5071)] - **meta**: move anonrig to tsc voting members (Yagiz Nizipli) [#&#8203;53888](nodejs/node#53888)
-   \[[`e60b089f7f`](nodejs/node@e60b089f7f)] - **meta**: remove redudant logging from dep updaters (Aviv Keller) [#&#8203;53783](nodejs/node#53783)
-   \[[`bff6995ec3`](nodejs/node@bff6995ec3)] - **meta**: change email address of anonrig (Yagiz Nizipli) [#&#8203;53829](nodejs/node#53829)
-   \[[`c2bb46020a`](nodejs/node@c2bb46020a)] - **meta**: add `node_sqlite.c` to MR label config (Aviv Keller) [#&#8203;53797](nodejs/node#53797)
-   \[[`b8d2bbc6d6`](nodejs/node@b8d2bbc6d6)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#&#8203;53758](nodejs/node#53758)
-   \[[`0ad4b7c1f7`](nodejs/node@0ad4b7c1f7)] - **meta**: use HTML entities in commit-queue comment (Aviv Keller) [#&#8203;53744](nodejs/node#53744)
-   \[[`aa0c5c25d1`](nodejs/node@aa0c5c25d1)] - **meta**: move regular TSC member to emeritus (Michael Dawson) [#&#8203;53693](nodejs/node#53693)
-   \[[`a5f5b4550b`](nodejs/node@a5f5b4550b)] - **meta**: bump codecov/codecov-action from 4.4.1 to 4.5.0 (dependabot\[bot]) [#&#8203;53675](nodejs/node#53675)
-   \[[`f84e215c90`](nodejs/node@f84e215c90)] - **meta**: bump mozilla-actions/sccache-action from 0.0.4 to 0.0.5 (dependabot\[bot]) [#&#8203;53674](nodejs/node#53674)
-   \[[`d5a9c249d3`](nodejs/node@d5a9c249d3)] - **meta**: bump github/codeql-action from 3.25.7 to 3.25.11 (dependabot\[bot]) [#&#8203;53673](nodejs/node#53673)
-   \[[`39d6c780c8`](nodejs/node@39d6c780c8)] - **meta**: bump actions/checkout from 4.1.6 to 4.1.7 (dependabot\[bot]) [#&#8203;53672](nodejs/node#53672)
-   \[[`bb6fe38a34`](nodejs/node@bb6fe38a34)] - **meta**: bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (dependabot\[bot]) [#&#8203;53671](nodejs/node#53671)
-   \[[`5dcdfb5e6b`](nodejs/node@5dcdfb5e6b)] - **meta**: bump step-security/harden-runner from 2.8.0 to 2.8.1 (dependabot\[bot]) [#&#8203;53670](nodejs/node#53670)
-   \[[`44d901a1c9`](nodejs/node@44d901a1c9)] - **meta**: move member from TSC regular to emeriti (Michael Dawson) [#&#8203;53599](nodejs/node#53599)
-   \[[`0c91186afa`](nodejs/node@0c91186afa)] - **meta**: warnings bypass deprecation cycle (Benjamin Gruenbaum) [#&#8203;53513](nodejs/node#53513)
-   \[[`bcd08bef60`](nodejs/node@bcd08bef60)] - **meta**: prevent constant references to issues in versioning (Aviv Keller) [#&#8203;53564](nodejs/node#53564)
-   \[[`7625dc4927`](nodejs/node@7625dc4927)] - **module**: fix submodules loaded by require() and import() (Joyee Cheung) [#&#8203;52487](nodejs/node#52487)
-   \[[`6c4f4772e3`](nodejs/node@6c4f4772e3)] - **module**: tidy code and comments (Jacob Smith) [#&#8203;52437](nodejs/node#52437)
-   \[[`51b88faeac`](nodejs/node@51b88faeac)] - **module**: disallow CJS <-> ESM edges in a cycle from require(esm) (Joyee Cheung) [#&#8203;52264](nodejs/node#52264)
-   \[[`4dae68ced4`](nodejs/node@4dae68ced4)] - **module**: centralize SourceTextModule compilation for builtin loader (Joyee Cheung) [#&#8203;52291](nodejs/node#52291)
-   \[[`cad46afc07`](nodejs/node@cad46afc07)] - **(SEMVER-MINOR)** **module**: support require()ing synchronous ESM graphs (Joyee Cheung) [#&#8203;51977](nodejs/node#51977)
-   \[[`ac58c829a1`](nodejs/node@ac58c829a1)] - **node-api**: add property keys benchmark (Chengzhong Wu) [#&#8203;54012](nodejs/node#54012)
-   \[[`e6a4104bd1`](nodejs/node@e6a4104bd1)] - **node-api**: rename nogc to basic (Gabriel Schulhof) [#&#8203;53830](nodejs/node#53830)
-   \[[`57b8b8e18e`](nodejs/node@57b8b8e18e)] - **(SEMVER-MINOR)** **path**: add `matchesGlob` method (Aviv Keller) [#&#8203;52881](nodejs/node#52881)
-   \[[`bf6aa53299`](nodejs/node@bf6aa53299)] - **process**: unify experimental warning messages (Aviv Keller) [#&#8203;53704](nodejs/node#53704)
-   \[[`2a3ae16e62`](nodejs/node@2a3ae16e62)] - **src**: expose LookupAndCompile with parameters (Shelley Vohr) [#&#8203;53886](nodejs/node#53886)
-   \[[`0109f9c961`](nodejs/node@0109f9c961)] - **src**: simplify AESCipherTraits::AdditionalConfig (Tobias Nießen) [#&#8203;53890](nodejs/node#53890)
-   \[[`6bafe8a457`](nodejs/node@6bafe8a457)] - **src**: fix -Wshadow warning (Shelley Vohr) [#&#8203;53885](nodejs/node#53885)
-   \[[`4c36d6c47a`](nodejs/node@4c36d6c47a)] - **src**: fix slice of slice of file-backed Blob (Josh Lee) [#&#8203;53972](nodejs/node#53972)
-   \[[`848c2d59fb`](nodejs/node@848c2d59fb)] - **src**: cache invariant code motion (Rafael Gonzaga) [#&#8203;53879](nodejs/node#53879)
-   \[[`acaf5dd1cd`](nodejs/node@acaf5dd1cd)] - **src**: avoid strcmp in ImportJWKAsymmetricKey (Tobias Nießen) [#&#8203;53813](nodejs/node#53813)
-   \[[`b71250aaf9`](nodejs/node@b71250aaf9)] - **src**: replace ToLocalChecked uses with ToLocal in node-file (James M Snell) [#&#8203;53869](nodejs/node#53869)
-   \[[`aff9a5339a`](nodejs/node@aff9a5339a)] - **src**: fix env-file flag to ignore spaces before quotes (Mohit Malhotra) [#&#8203;53786](nodejs/node#53786)
-   \[[`e352a4ef27`](nodejs/node@e352a4ef27)] - **src**: update outdated references to spec sections (Tobias Nießen) [#&#8203;53832](nodejs/node#53832)
-   \[[`1a4da22a60`](nodejs/node@1a4da22a60)] - **src**: use Maybe\<void> in ManagedEVPPKey (Tobias Nießen) [#&#8203;53811](nodejs/node#53811)
-   \[[`0c24b91bd2`](nodejs/node@0c24b91bd2)] - **src**: fix error handling in ExportJWKAsymmetricKey (Tobias Nießen) [#&#8203;53767](nodejs/node#53767)
-   \[[`81cd84c716`](nodejs/node@81cd84c716)] - **src**: use Maybe\<void> in node::crypto::error (Tobias Nießen) [#&#8203;53766](nodejs/node#53766)
-   \[[`8135f3616d`](nodejs/node@8135f3616d)] - **src**: fix typo in node.h (Daeyeon Jeong) [#&#8203;53759](nodejs/node#53759)
-   \[[`e6d735a997`](nodejs/node@e6d735a997)] - **src**: document the Node.js context embedder data (Joyee Cheung) [#&#8203;53611](nodejs/node#53611)
-   \[[`584beaa2ed`](nodejs/node@584beaa2ed)] - **src**: zero-initialize data that are copied into the snapshot (Joyee Cheung) [#&#8203;53563](nodejs/node#53563)
-   \[[`ef5dabd8c6`](nodejs/node@ef5dabd8c6)] - **src**: fix Worker termination when '--inspect-brk' is passed (Daeyeon Jeong) [#&#8203;53724](nodejs/node#53724)
-   \[[`62f4f6f48e`](nodejs/node@62f4f6f48e)] - **src**: remove ArrayBufferAllocator::Reallocate override (Shu-yu Guo) [#&#8203;52910](nodejs/node#52910)
-   \[[`a6dd8643fa`](nodejs/node@a6dd8643fa)] - **src**: reduce unnecessary serialization of CLI options in C++ (Joyee Cheung) [#&#8203;52451](nodejs/node#52451)
-   \[[`31fdb881cf`](nodejs/node@31fdb881cf)] - **src,lib**: expose getCategoryEnabledBuffer to use on node.http (Vinicius Lourenço) [#&#8203;53602](nodejs/node#53602)
-   \[[`2eea8502e1`](nodejs/node@2eea8502e1)] - **src,test**: further cleanup references to osx (Daniel Bayley) [#&#8203;53820](nodejs/node#53820)
-   \[[`7c21bb99a5`](nodejs/node@7c21bb99a5)] - **(SEMVER-MINOR)** **stream**: expose DuplexPair API (Austin Wright) [#&#8203;34111](nodejs/node#34111)
-   \[[`56299f7309`](nodejs/node@56299f7309)] - **stream**: improve inspector ergonomics (Benjamin Gruenbaum) [#&#8203;53800](nodejs/node#53800)
-   \[[`9b82b15230`](nodejs/node@9b82b15230)] - **stream**: update ongoing promise in async iterator return() method (Mattias Buelens) [#&#8203;52657](nodejs/node#52657)
-   \[[`4a3ecbfc9b`](nodejs/node@4a3ecbfc9b)] - **(SEMVER-MINOR)** **stream**: implement `min` option for `ReadableStreamBYOBReader.read` (Mattias Buelens) [#&#8203;50888](nodejs/node#50888)
-   \[[`bd996bf694`](nodejs/node@bd996bf694)] - **test**: do not swallow uncaughtException errors in exit code tests (Meghan Denny) [#&#8203;54039](nodejs/node#54039)
-   \[[`77761af077`](nodejs/node@77761af077)] - **test**: move shared module to `test/common` (Rich Trott) [#&#8203;54042](nodejs/node#54042)
-   \[[`bec88ce138`](nodejs/node@bec88ce138)] - **test**: skip sea tests with more accurate available disk space estimation (Chengzhong Wu) [#&#8203;53996](nodejs/node#53996)
-   \[[`9a98ad47cd`](nodejs/node@9a98ad47cd)] - **test**: remove unnecessary console log (KAYYY) [#&#8203;53812](nodejs/node#53812)
-   \[[`364d09cf0a`](nodejs/node@364d09cf0a)] - **test**: add comments and rename test for timer robustness (Rich Trott) [#&#8203;54008](nodejs/node#54008)
-   \[[`5c5093dc0a`](nodejs/node@5c5093dc0a)] - **test**: add test for one arg timers to increase coverage (Carlos Espa) [#&#8203;54007](nodejs/node#54007)
-   \[[`43ede1ae0b`](nodejs/node@43ede1ae0b)] - **test**: mark 'test/parallel/test-sqlite.js' as flaky (Colin Ihrig) [#&#8203;54031](nodejs/node#54031)
-   \[[`0ad783cb42`](nodejs/node@0ad783cb42)] - **test**: mark test-pipe-file-to-http as flaky (jakecastelli) [#&#8203;53751](nodejs/node#53751)
-   \[[`f2b4fd3544`](nodejs/node@f2b4fd3544)] - **test**: compare paths on Windows without considering case (Early Riser) [#&#8203;53993](nodejs/node#53993)
-   \[[`2e69e5f4d2`](nodejs/node@2e69e5f4d2)] - **test**: skip sea tests in large debug builds (Chengzhong Wu) [#&#8203;53918](nodejs/node#53918)
-   \[[`56c26fe6e5`](nodejs/node@56c26fe6e5)] - **test**: skip --title check on IBM i (Abdirahim Musse) [#&#8203;53952](nodejs/node#53952)
-   \[[`6d0b8ded00`](nodejs/node@6d0b8ded00)] - **test**: reduce flakiness of `test-assert-esm-cjs-message-verify` (Antoine du Hamel) [#&#8203;53967](nodejs/node#53967)
-   \[[`edb75aebd7`](nodejs/node@edb75aebd7)] - **test**: use `PYTHON` executable from env in `assertSnapshot` (Antoine du Hamel) [#&#8203;53938](nodejs/node#53938)
-   \[[`be94e470a6`](nodejs/node@be94e470a6)] - **test**: deflake test-blob-file-backed (Luigi Pinca) [#&#8203;53920](nodejs/node#53920)
-   \[[`c2b0dcd165`](nodejs/node@c2b0dcd165)] - **test**: un-set inspector-async-hook-setup-at-inspect-brk as flaky (Abdirahim Musse) [#&#8203;53692](nodejs/node#53692)
-   \[[`6dc18981ac`](nodejs/node@6dc18981ac)] - **test**: use python3 instead of python in pummel test (Mathis Wiehl) [#&#8203;53057](nodejs/node#53057)
-   \[[`662bf524e1`](nodejs/node@662bf524e1)] - **test**: do not assume cwd in snapshot tests (Antoine du Hamel) [#&#8203;53146](nodejs/node#53146)
-   \[[`a07526702a`](nodejs/node@a07526702a)] - **test**: fix OpenSSL version checks (Richard Lau) [#&#8203;53503](nodejs/node#53503)
-   \[[`2b70018d11`](nodejs/node@2b70018d11)] - **test**: refactor, add assertion to http-request-end (jakecastelli) [#&#8203;53411](nodejs/node#53411)
-   \[[`c0262c1561`](nodejs/node@c0262c1561)] - **test_runner**: switched to internal readline interface (Emil Tayeb) [#&#8203;54000](nodejs/node#54000)
-   \[[`fb7342246c`](nodejs/node@fb7342246c)] - **test_runner**: do not throw on mocked clearTimeout() (Aksinya Bykova) [#&#8203;54005](nodejs/node#54005)
-   \[[`367f9e77f3`](nodejs/node@367f9e77f3)] - **test_runner**: cleanup global event listeners after run (Eddie Abbondanzio) [#&#8203;53878](nodejs/node#53878)
-   \[[`206c668ee7`](nodejs/node@206c668ee7)] - **test_runner**: remove plan option from run() (Colin Ihrig) [#&#8203;53834](nodejs/node#53834)
-   \[[`8660d481e5`](nodejs/node@8660d481e5)] - **tls**: add setKeyCert() to tls.Socket (Brian White) [#&#8203;53636](nodejs/node#53636)
-   \[[`9c5beabd83`](nodejs/node@9c5beabd83)] - **tools**: fix `SLACK_TITLE` in invalid commit workflow (Antoine du Hamel) [#&#8203;53912](nodejs/node#53912)
-   \[[`4dedf2aead`](nodejs/node@4dedf2aead)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#&#8203;53840](nodejs/node#53840)
-   \[[`642d5c5d30`](nodejs/node@642d5c5d30)] - **tools**: use v8\_features.json to populate config.gypi (Cheng) [#&#8203;53749](nodejs/node#53749)
-   \[[`031206544d`](nodejs/node@031206544d)] - **tools**: update lint-md-dependencies to unified@11.0.5 (Node.js GitHub Bot) [#&#8203;53555](nodejs/node#53555)
-   \[[`8404421ea6`](nodejs/node@8404421ea6)] - **tools**: replace reference to NodeMainInstance with SnapshotBuilder (codediverdev) [#&#8203;53544](nodejs/node#53544)
-   \[[`2d8490fed5`](nodejs/node@2d8490fed5)] - **typings**: add `fs_dir` types (Yagiz Nizipli) [#&#8203;53631](nodejs/node#53631)
-   \[[`325eae0b3f`](nodejs/node@325eae0b3f)] - **url**: fix typo (KAYYY) [#&#8203;53827](nodejs/node#53827)
-   \[[`7fc45f5e3f`](nodejs/node@7fc45f5e3f)] - **url**: reduce unnecessary string copies (Yagiz Nizipli) [#&#8203;53628](nodejs/node#53628)
-   \[[`1d961facf1`](nodejs/node@1d961facf1)] - **url**: add missing documentation for `URL.parse()` (Yagiz Nizipli) [#&#8203;53733](nodejs/node#53733)
-   \[[`ce877c6d0f`](nodejs/node@ce877c6d0f)] - **util**: fix crashing when emitting new Buffer() deprecation warning [#&#8203;53075](nodejs/node#53075) (Aras Abbasi) [#&#8203;53089](nodejs/node#53089)
-   \[[`d6d04279ca`](nodejs/node@d6d04279ca)] - **worker**: allow copied NODE_OPTIONS in the env setting (Joyee Cheung) [#&#8203;53596](nodejs/node#53596)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
codebytere added a commit to electron/electron that referenced this pull request Aug 23, 2024
codebytere added a commit to electron/electron that referenced this pull request Aug 26, 2024
codebytere added a commit to electron/electron that referenced this pull request Aug 26, 2024
codebytere added a commit to electron/electron that referenced this pull request Aug 26, 2024
jkleinsc pushed a commit to electron/electron that referenced this pull request Aug 26, 2024
* chore: bump node in DEPS to v20.17.0

* module: disallow CJS <-> ESM edges in a cycle from require(esm)

nodejs/node#52264

* src: expose LookupAndCompile with parameters

nodejs/node#53886

* src: fix -Wshadow warning

nodejs/node#53885

* lib: convert WeakMaps in cjs loader with symbol properties

nodejs/node#52095

* src: reduce unnecessary serialization of CLI options in C++

nodejs/node#52451

* build: ensure v8_pointer_compression_sandbox is enabled on 64bit

nodejs/node#53884

* lib: improve error message when index not found on cjs

nodejs/node#53859

* src,lib: expose getCategoryEnabledBuffer to use on node.http

nodejs/node#53602

* deps: update c-ares to v1.32.2

nodejs/node#53865

* chore: fixup patch indices

* deps: update V8 to 12.2

nodejs/node#51362

* stream: Expose DuplexPair API

nodejs/node#34111

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
codebytere added a commit to electron/electron that referenced this pull request Aug 27, 2024
* chore: bump node in DEPS to v20.17.0

* module: disallow CJS <-> ESM edges in a cycle from require(esm)

nodejs/node#52264

* src: expose LookupAndCompile with parameters

nodejs/node#53886

* src: fix -Wshadow warning

nodejs/node#53885

* lib: convert WeakMaps in cjs loader with symbol properties

nodejs/node#52095

* src: reduce unnecessary serialization of CLI options in C++

nodejs/node#52451

* build: ensure v8_pointer_compression_sandbox is enabled on 64bit

nodejs/node#53884

* lib: improve error message when index not found on cjs

nodejs/node#53859

* src,lib: expose getCategoryEnabledBuffer to use on node.http

nodejs/node#53602

* deps: update c-ares to v1.32.2

nodejs/node#53865

* chore: update patch indices

* deps: update V8 to 12.2

nodejs/node#51362

* stream: Expose DuplexPair API

nodejs/node#34111

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
codebytere added a commit to electron/electron that referenced this pull request Sep 9, 2024
* chore: bump node in DEPS to v20.17.0

* module: disallow CJS <-> ESM edges in a cycle from require(esm)

nodejs/node#52264

* src: expose LookupAndCompile with parameters

nodejs/node#53886

* src: fix -Wshadow warning

nodejs/node#53885

* lib: convert WeakMaps in cjs loader with symbol properties

nodejs/node#52095

* src: reduce unnecessary serialization of CLI options in C++

nodejs/node#52451

* lib: improve error message when index not found on cjs

nodejs/node#53859

* src,lib: expose getCategoryEnabledBuffer to use on node.http

nodejs/node#53602

* deps: update c-ares to v1.32.2

nodejs/node#53865

* chore: fixup patch indices

* deps: update V8 to 12.2

nodejs/node#51362

* stream: Expose DuplexPair API

nodejs/node#34111

* chore: remove patch

* chore: fixup patch misapplication

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
codebytere added a commit to electron/electron that referenced this pull request Sep 10, 2024
* chore: bump node in DEPS to v20.17.0

* module: disallow CJS <-> ESM edges in a cycle from require(esm)

nodejs/node#52264

* src: expose LookupAndCompile with parameters

nodejs/node#53886

* src: fix -Wshadow warning

nodejs/node#53885

* lib: convert WeakMaps in cjs loader with symbol properties

nodejs/node#52095

* src: reduce unnecessary serialization of CLI options in C++

nodejs/node#52451

* build: ensure v8_pointer_compression_sandbox is enabled on 64bit

nodejs/node#53884

* lib: improve error message when index not found on cjs

nodejs/node#53859

* src,lib: expose getCategoryEnabledBuffer to use on node.http

nodejs/node#53602

* deps: update c-ares to v1.32.2

nodejs/node#53865

* chore: fixup patch indices

* deps: update V8 to 12.2

nodejs/node#51362

* stream: Expose DuplexPair API

nodejs/node#34111

* chore: fix patch

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Issues and PRs that require attention from people who are familiar with C++. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants