Skip to content

fs: improve cpSync dest overriding performance #58160

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

Conversation

dario-piotrowicz
Copy link
Member

@dario-piotrowicz dario-piotrowicz commented May 4, 2025

move the logic in cpSync that overrides existing dest files from JavaScript to C++ increasing its performance


This is the type of perf improvement that this change makes:
Screenshot at 2025-05-13 01-47-25

@dario-piotrowicz dario-piotrowicz requested a review from anonrig May 4, 2025 13:29
@nodejs-github-bot nodejs-github-bot added c++ Issues and PRs that require attention from people who are familiar with C++. fs Issues and PRs related to the fs subsystem / file system. needs-ci PRs that need a full CI run. labels May 4, 2025
@anonrig
Copy link
Member

anonrig commented May 4, 2025

Your benchmark needs options.force in order to trigger the path you're updating, isn't it? Or do you have force: true as the default value.

@dario-piotrowicz
Copy link
Member Author

Your benchmark needs options.force in order to trigger the path you're updating, isn't it? Or do you have force: true as the default value.

Yes, force: true is the default 🙂

Copy link

codecov bot commented May 4, 2025

Codecov Report

Attention: Patch coverage is 31.37255% with 35 lines in your changes missing coverage. Please review.

Project coverage is 90.23%. Comparing base (73e7bd1) to head (33cc599).
Report is 33 commits behind head on main.

Files with missing lines Patch % Lines
src/node_file.cc 27.90% 20 Missing and 11 partials ⚠️
src/env-inl.h 0.00% 4 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #58160   +/-   ##
=======================================
  Coverage   90.22%   90.23%           
=======================================
  Files         633      633           
  Lines      186871   186925   +54     
  Branches    36685    36703   +18     
=======================================
+ Hits       168612   168667   +55     
- Misses      11042    11054   +12     
+ Partials     7217     7204   -13     
Files with missing lines Coverage Δ
lib/internal/fs/cp/cp-sync.js 92.13% <100.00%> (-0.11%) ⬇️
src/env.h 98.14% <ø> (ø)
src/env-inl.h 93.39% <0.00%> (-0.81%) ⬇️
src/node_file.cc 76.12% <27.90%> (-0.87%) ⬇️

... and 31 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

BridgeAR

This comment was marked as resolved.

@dario-piotrowicz
Copy link
Member Author

Could we get another benchmark that only removed existing files? I guess it will also be faster, it is just helpful to know by how much.

Sorry could you clarify what you mean? 🙏

This code, as far as my understanding goes, is only effecting cpSync when it is overriding the destination file, no other cp operation should see any difference here 🤔

@BridgeAR
Copy link
Member

BridgeAR commented May 4, 2025

You are absolutely correct! I misread. Please ignore my comment :)

@dario-piotrowicz
Copy link
Member Author

Ah ok no worries 😄👍

@anonrig
Copy link
Member

anonrig commented May 5, 2025

Windows error

src\node_file.cc(40,10): fatal  error : 'utime.h' file not found [D:\a\node\node\libnode.vcxproj]

@dario-piotrowicz dario-piotrowicz force-pushed the dario/move-cpsync-mayCopyFile-logic-to-cpp branch from 4a5cad0 to 2828919 Compare May 10, 2025 10:36
@dario-piotrowicz dario-piotrowicz force-pushed the dario/move-cpsync-mayCopyFile-logic-to-cpp branch from 6956e4b to 07c6f8e Compare May 12, 2025 12:33
@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. label May 13, 2025
@dario-piotrowicz dario-piotrowicz added request-ci Add this label to start a Jenkins CI on a PR. and removed request-ci Add this label to start a Jenkins CI on a PR. labels May 13, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label May 15, 2025
@nodejs-github-bot
Copy link
Collaborator

@dario-piotrowicz dario-piotrowicz added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label May 16, 2025
@dario-piotrowicz dario-piotrowicz added the commit-queue Add this label to land a pull request using GitHub Actions. label May 18, 2025
@dario-piotrowicz dario-piotrowicz force-pushed the dario/move-cpsync-mayCopyFile-logic-to-cpp branch from aa6904c to 33cc599 Compare May 18, 2025 19:54
@dario-piotrowicz dario-piotrowicz added request-ci Add this label to start a Jenkins CI on a PR. and removed commit-queue-failed An error occurred while landing this pull request using GitHub Actions. labels May 18, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label May 18, 2025
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@dario-piotrowicz dario-piotrowicz added the commit-queue Add this label to land a pull request using GitHub Actions. label May 23, 2025
@nodejs-github-bot nodejs-github-bot added commit-queue-failed An error occurred while landing this pull request using GitHub Actions. and removed commit-queue Add this label to land a pull request using GitHub Actions. labels May 23, 2025
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/58160
✔  Done loading data for nodejs/node/pull/58160
----------------------------------- PR info ------------------------------------
Title      fs: improve `cpSync` dest overriding performance (#58160)
Author     Dario Piotrowicz <dario.piotrowicz@gmail.com> (@dario-piotrowicz)
Branch     dario-piotrowicz:dario/move-cpsync-mayCopyFile-logic-to-cpp -> nodejs:main
Labels     c++, fs, author ready, needs-ci
Commits    13
 - fs: improve `cpSync` dest overriding performance
 - fixup! fs: improve `cpSync` dest overriding performance
 - fixup! fs: improve `cpSync` dest overriding performance
 - fixup! fs: improve `cpSync` dest overriding performance
 - fixup! fs: improve `cpSync` dest overriding performance
 - fixup! fs: improve `cpSync` dest overriding performance
 - Apply suggestions from code review
 - fix and add OnScopeLeave calls
 - throw unlink errno error to match existing node behavior
 - use none flag instead of unnecessary skip_existing
 - format cpp code
 - fix EPERM throwing code
 - improve std code and properly throw std errors
Committers 1
 - Dario Piotrowicz <dario.piotrowicz@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Sun, 04 May 2025 13:29:18 GMT
   ✔  Approvals: 2
   ✔  - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/58160#pullrequestreview-2831887442
   ✔  - Yagiz Nizipli (@anonrig) (TSC): https://github.com/nodejs/node/pull/58160#pullrequestreview-2849079402
   ✔  Last GitHub CI successful
   ℹ  Last Full PR CI on 2025-05-23T10:46:19Z: https://ci.nodejs.org/job/node-test-pull-request/67024/
- Querying data for job/node-test-pull-request/67024/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  No git cherry-pick in progress
   ✔  No git am in progress
   ✔  No git rebase in progress
--------------------------------------------------------------------------------
- Bringing origin/main up to date...
From https://github.com/nodejs/node
 * branch                  main       -> FETCH_HEAD
✔  origin/main is now up-to-date
- Downloading patch for 58160
From https://github.com/nodejs/node
 * branch                  refs/pull/58160/merge -> FETCH_HEAD
✔  Fetched commits as d96d57d5a7cf..33cc59938e61
--------------------------------------------------------------------------------
[main a8bbced268] fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sat May 3 22:07:30 2025 +0100
 2 files changed, 57 insertions(+), 7 deletions(-)
[main bb41b9b9aa] fixup! fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sun May 4 14:48:16 2025 +0100
 1 file changed, 2 insertions(+)
[main 18a8622eb3] fixup! fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sun May 4 14:49:33 2025 +0100
 1 file changed, 7 insertions(+), 8 deletions(-)
[main f5ca508add] fixup! fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sun May 4 14:59:48 2025 +0100
 1 file changed, 8 insertions(+), 6 deletions(-)
[main 877ac242c3] fixup! fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sun May 4 15:15:27 2025 +0100
 1 file changed, 10 insertions(+), 2 deletions(-)
[main 292a0c3f11] fixup! fs: improve `cpSync` dest overriding performance
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sun May 4 17:02:19 2025 +0100
 1 file changed, 18 insertions(+), 9 deletions(-)
[main dcaa5749e9] Apply suggestions from code review
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Mon May 5 22:37:51 2025 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
[main e348fc4712] fix and add OnScopeLeave calls
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Mon May 5 22:40:41 2025 +0100
 1 file changed, 3 insertions(+), 1 deletion(-)
[main bb5f0e9836] throw unlink errno error to match existing node behavior
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Mon May 5 23:50:58 2025 +0100
 1 file changed, 5 insertions(+), 1 deletion(-)
[main 062e05d994] use none flag instead of unnecessary skip_existing
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Mon May 5 23:56:38 2025 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[main 0b4702dd57] format cpp code
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Tue May 6 00:07:54 2025 +0100
 1 file changed, 3 insertions(+), 5 deletions(-)
[main 519ec6acc7] fix EPERM throwing code
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Sat May 10 16:05:29 2025 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
[main a67da1b60a] improve std code and properly throw std errors
 Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
 Date: Tue May 13 00:51:54 2025 +0100
 3 files changed, 16 insertions(+), 11 deletions(-)
   ✔  Patches applied
There are 13 commits in the PR. Attempting autorebase.
Rebasing (2/21)
Rebasing (3/21)
Rebasing (4/21)
Rebasing (5/21)
Rebasing (6/21)
Rebasing (7/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
fs: improve `cpSync` dest overriding performance

move the logic in cpSync that overrides existing
dest files from JavaScript to C++ increasing its performance

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD b6efda350e] fs: improve cpSync dest overriding performance
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Sat May 3 22:07:30 2025 +0100
3 files changed, 77 insertions(+), 7 deletions(-)
Rebasing (8/21)
Rebasing (9/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
Apply suggestions from code review

Co-authored-by: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD e519c037e1] Apply suggestions from code review
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Mon May 5 22:37:51 2025 +0100
1 file changed, 2 insertions(+), 1 deletion(-)
Rebasing (10/21)
Rebasing (11/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
fix and add OnScopeLeave calls

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD adcd89e344] fix and add OnScopeLeave calls
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Mon May 5 22:40:41 2025 +0100
1 file changed, 3 insertions(+), 1 deletion(-)
Rebasing (12/21)
Rebasing (13/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
throw unlink errno error to match existing node behavior

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD f4581fce42] throw unlink errno error to match existing node behavior
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Mon May 5 23:50:58 2025 +0100
1 file changed, 5 insertions(+), 1 deletion(-)
Rebasing (14/21)
Rebasing (15/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
use none flag instead of unnecessary skip_existing

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD 9f34424581] use none flag instead of unnecessary skip_existing
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Mon May 5 23:56:38 2025 +0100
1 file changed, 1 insertion(+), 1 deletion(-)
Rebasing (16/21)
Rebasing (17/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
format cpp code

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD 8ee34143ef] format cpp code
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Tue May 6 00:07:54 2025 +0100
1 file changed, 3 insertions(+), 5 deletions(-)
Rebasing (18/21)
Rebasing (19/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
fix EPERM throwing code

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD 579ce500b3] fix EPERM throwing code
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Sat May 10 16:05:29 2025 +0100
1 file changed, 1 insertion(+), 3 deletions(-)
Rebasing (20/21)
Rebasing (21/21)
Executing: git node land --amend --yes
--------------------------------- New Message ----------------------------------
improve std code and properly throw std errors

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>

[detached HEAD 41506c49f0] improve std code and properly throw std errors
Author: Dario Piotrowicz <dario.piotrowicz@gmail.com>
Date: Tue May 13 00:51:54 2025 +0100
3 files changed, 16 insertions(+), 11 deletions(-)
Successfully rebased and updated refs/heads/main.

ℹ Add commit-queue-squash label to land the PR as one commit, or commit-queue-rebase to land as separate commits.

https://github.com/nodejs/node/actions/runs/15209909689

@dario-piotrowicz dario-piotrowicz added commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. commit-queue Add this label to land a pull request using GitHub Actions. and removed commit-queue-failed An error occurred while landing this pull request using GitHub Actions. labels May 23, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label May 23, 2025
@nodejs-github-bot nodejs-github-bot merged commit 1a5ab96 into nodejs:main May 23, 2025
72 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in 1a5ab96

@dario-piotrowicz dario-piotrowicz deleted the dario/move-cpsync-mayCopyFile-logic-to-cpp branch May 23, 2025 12:27
targos pushed a commit that referenced this pull request May 31, 2025
move the logic in `cpSync` that overrides existing
dest files from JavaScript to C++ increasing its performance

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
aduh95 pushed a commit that referenced this pull request Jun 10, 2025
move the logic in `cpSync` that overrides existing
dest files from JavaScript to C++ increasing its performance

PR-URL: #58160
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jun 16, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org) ([source](https://github.com/nodejs/node)) | minor | `24.0.2` -> `24.2.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>

### [`v24.2.0`](https://github.com/nodejs/node/releases/tag/v24.2.0): 2025-06-09, Version 24.2.0 (Current), @&#8203;aduh95

[Compare Source](nodejs/node@v24.0.2...v24.2.0)

##### Notable Changes

##### Remove support for HTTP/2 priority signaling

The support for priority signaling has been removed in nghttp2, following its
deprecation in the [RFC 9113](https://datatracker.ietf.org/doc/html/rfc9113#section-5.3.1).
As a consequence of this, priority signaling is deprecated on all release lines of Node.js,
and removed from Node.js 24 so we can include latest updates from nghttp2.

Contributed by Matteo Collina and Antoine du Hamel in
[#&#8203;58293](nodejs/node#58293).

##### `import.meta.main` is now available

Boolean value available in ECMAScript modules, which can be used to detect
whether the current module was the entry point of the current process.

```mjs
export function foo() {
  return 'Hello, world';
}

function main() {
  const message = foo();
  console.log(message);
}

if (import.meta.main) main();
// `foo` can be imported from another module without possible side-effects from `main`
```

Contributed by Joe and Antoine du Hamel in
[#&#8203;57804](nodejs/node#57804).

##### Other Notable Changes

-   \[[`e13930bbe0`](nodejs/node@e13930bbe0)] - **doc**: add Filip Skokan to TSC (Rafael Gonzaga) [#&#8203;58499](nodejs/node#58499)
-   \[[`984894b38c`](nodejs/node@984894b38c)] - **doc**: deprecate `util.isNativeError` in favor of `Error.isError` (Miguel Marcondes Filho) [#&#8203;58262](nodejs/node#58262)
-   \[[`d261274b0f`](nodejs/node@d261274b0f)] - **doc**: deprecate passing an empty string to `options.shell` (Antoine du Hamel) [#&#8203;58564](nodejs/node#58564)
-   \[[`510872a522`](nodejs/node@510872a522)] - **(SEMVER-MINOR)** **doc**: graduate `Symbol.dispose`/`asyncDispose` from experimental (James M Snell) [#&#8203;58467](nodejs/node#58467)
-   \[[`6f4c9dd423`](nodejs/node@6f4c9dd423)] - **(SEMVER-MINOR)** **fs**: add `autoClose` option to `FileHandle` readableWebStream (James M Snell) [#&#8203;58548](nodejs/node#58548)
-   \[[`32efb63242`](nodejs/node@32efb63242)] - **http**: deprecate instantiating classes without new (Yagiz Nizipli) [#&#8203;58518](nodejs/node#58518)
-   \[[`0234a8ef53`](nodejs/node@0234a8ef53)] - **(SEMVER-MINOR)** **http2**: add diagnostics channel `http2.server.stream.finish` (Darshan Sen) [#&#8203;58560](nodejs/node#58560)
-   \[[`0f1e94f731`](nodejs/node@0f1e94f731)] - **(SEMVER-MINOR)** **lib**: graduate error codes that have been around for years (James M Snell) [#&#8203;58541](nodejs/node#58541)
-   \[[`13abca3c26`](nodejs/node@13abca3c26)] - **(SEMVER-MINOR)** **perf_hooks**: make event loop delay histogram disposable (James M Snell) [#&#8203;58384](nodejs/node#58384)
-   \[[`8ea1fc5f3b`](nodejs/node@8ea1fc5f3b)] - **(SEMVER-MINOR)** **src**: support namespace options in configuration file (Pietro Marchini) [#&#8203;58073](nodejs/node#58073)
-   \[[`d6ea36ad6c`](nodejs/node@d6ea36ad6c)] - **src,permission**: implicit allow-fs-read to app entrypoint (Rafael Gonzaga) [#&#8203;58579](nodejs/node#58579)
-   \[[`5936cef60a`](nodejs/node@5936cef60a)] - **(SEMVER-MINOR)** **test**: add disposable histogram test (James M Snell) [#&#8203;58384](nodejs/node#58384)
-   \[[`7a91f4aaa1`](nodejs/node@7a91f4aaa1)] - **(SEMVER-MINOR)** **test**: add test for async disposable worker thread (James M Snell) [#&#8203;58385](nodejs/node#58385)
-   \[[`532c173cf2`](nodejs/node@532c173cf2)] - **(SEMVER-MINOR)** **util**: add `none` style to styleText (James M Snell) [#&#8203;58437](nodejs/node#58437)
-   \[[`aeb9ab4c4c`](nodejs/node@aeb9ab4c4c)] - **(SEMVER-MINOR)** **worker**: make Worker async disposable (James M Snell) [#&#8203;58385](nodejs/node#58385)

##### Commits

-   \[[`6c92329b1b`](nodejs/node@6c92329b1b)] - ***Revert*** "**benchmark**: fix broken fs.cpSync benchmark" (Yuesong Jake Li) [#&#8203;58476](nodejs/node#58476)
-   \[[`8bc045264e`](nodejs/node@8bc045264e)] - **benchmark**: fix broken fs.cpSync benchmark (Dario Piotrowicz) [#&#8203;58472](nodejs/node#58472)
-   \[[`46aa079cce`](nodejs/node@46aa079cce)] - **benchmark**: add callback-based `fs.glob` to glob benchmark (Livia Medeiros) [#&#8203;58417](nodejs/node#58417)
-   \[[`a57b05e105`](nodejs/node@a57b05e105)] - **benchmark**: add more options to cp-sync (Sonny) [#&#8203;58278](nodejs/node#58278)
-   \[[`8b5ada4b31`](nodejs/node@8b5ada4b31)] - **buffer**: use Utf8LengthV2() instead of Utf8Length() (Tobias Nießen) [#&#8203;58156](nodejs/node#58156)
-   \[[`22e97362f3`](nodejs/node@22e97362f3)] - **build**: search for libnode.so in multiple places (Jan Staněk) [#&#8203;58213](nodejs/node#58213)
-   \[[`0b4056c573`](nodejs/node@0b4056c573)] - **build**: add support for OpenHarmony operating system (hqzing) [#&#8203;58350](nodejs/node#58350)
-   \[[`db7f413dd3`](nodejs/node@db7f413dd3)] - **build**: fix pointer compression builds (Joyee Cheung) [#&#8203;58171](nodejs/node#58171)
-   \[[`7ff37183e5`](nodejs/node@7ff37183e5)] - **build**: fix defaults for shared llhttp (Antoine du Hamel) [#&#8203;58269](nodejs/node#58269)
-   \[[`b8c33190fe`](nodejs/node@b8c33190fe)] - **build,win**: fix dll build (Stefan Stojanovic) [#&#8203;58357](nodejs/node#58357)
-   \[[`ef9ecbe8a6`](nodejs/node@ef9ecbe8a6)] - **child_process**: give names to `ChildProcess` functions (Livia Medeiros) [#&#8203;58370](nodejs/node#58370)
-   \[[`cec9d9d016`](nodejs/node@cec9d9d016)] - **crypto**: forward auth tag to OpenSSL immediately (Tobias Nießen) [#&#8203;58547](nodejs/node#58547)
-   \[[`9fccb0609f`](nodejs/node@9fccb0609f)] - **crypto**: expose crypto.constants.OPENSSL_IS_BORINGSSL (Shelley Vohr) [#&#8203;58387](nodejs/node#58387)
-   \[[`e7c69b9345`](nodejs/node@e7c69b9345)] - **deps**: update nghttp2 to 1.65.0 (Node.js GitHub Bot) [#&#8203;57269](nodejs/node#57269)
-   \[[`d0b89598a3`](nodejs/node@d0b89598a3)] - **deps**: use proper C standard when building libuv (Yaksh Bariya) [#&#8203;58587](nodejs/node#58587)
-   \[[`8a1fe7bc6a`](nodejs/node@8a1fe7bc6a)] - **deps**: update simdjson to 3.12.3 (Node.js GitHub Bot) [#&#8203;57682](nodejs/node#57682)
-   \[[`36b639b1eb`](nodejs/node@36b639b1eb)] - **deps**: update googletest to [`e9092b1`](nodejs/node@e9092b1) (Node.js GitHub Bot) [#&#8203;58565](nodejs/node#58565)
-   \[[`f8a2a1ef52`](nodejs/node@f8a2a1ef52)] - **deps**: update corepack to 0.33.0 (Node.js GitHub Bot) [#&#8203;58566](nodejs/node#58566)
-   \[[`efb28f7895`](nodejs/node@efb28f7895)] - **deps**: V8: cherry-pick [`249de88`](nodejs/node@249de887a8d3) (Michaël Zasso) [#&#8203;58561](nodejs/node#58561)
-   \[[`88e621ea97`](nodejs/node@88e621ea97)] - **deps**: update sqlite to 3.50.0 (Node.js GitHub Bot) [#&#8203;58272](nodejs/node#58272)
-   \[[`8d2ba386f1`](nodejs/node@8d2ba386f1)] - **deps**: update OpenSSL gen container to Ubuntu 22.04 (Michaël Zasso) [#&#8203;58432](nodejs/node#58432)
-   \[[`7e62a77a7f`](nodejs/node@7e62a77a7f)] - **deps**: update undici to 7.10.0 (Node.js GitHub Bot) [#&#8203;58445](nodejs/node#58445)
-   \[[`87eebd7bad`](nodejs/node@87eebd7bad)] - **deps**: keep required OpenSSL doc files (Michaël Zasso) [#&#8203;58431](nodejs/node#58431)
-   \[[`10910660f6`](nodejs/node@10910660f6)] - **deps**: update undici to 7.9.0 (Node.js GitHub Bot) [#&#8203;58268](nodejs/node#58268)
-   \[[`5e27078ca2`](nodejs/node@5e27078ca2)] - **deps**: update ada to 3.2.4 (Node.js GitHub Bot) [#&#8203;58152](nodejs/node#58152)
-   \[[`3b1e4bdbbb`](nodejs/node@3b1e4bdbbb)] - **deps**: update libuv to 1.51.0 (Node.js GitHub Bot) [#&#8203;58124](nodejs/node#58124)
-   \[[`6bddf587ae`](nodejs/node@6bddf587ae)] - **dns**: fix dns query cache implementation (Ethan Arrowood) [#&#8203;58404](nodejs/node#58404)
-   \[[`984894b38c`](nodejs/node@984894b38c)] - **doc**: deprecate utilisNativeError in favor of ErrorisError (Miguel Marcondes Filho) [#&#8203;58262](nodejs/node#58262)
-   \[[`377ef3ce3a`](nodejs/node@377ef3ce3a)] - **doc**: add support link for panva (Filip Skokan) [#&#8203;58591](nodejs/node#58591)
-   \[[`33a69ff9e4`](nodejs/node@33a69ff9e4)] - **doc**: update metadata for \_transformState deprecation (James M Snell) [#&#8203;58530](nodejs/node#58530)
-   \[[`d261274b0f`](nodejs/node@d261274b0f)] - **doc**: deprecate passing an empty string to `options.shell` (Antoine du Hamel) [#&#8203;58564](nodejs/node#58564)
-   \[[`447ca11010`](nodejs/node@447ca11010)] - **doc**: correct formatting of example definitions for `--test-shard` (Jacob Smith) [#&#8203;58571](nodejs/node#58571)
-   \[[`2f555e0e19`](nodejs/node@2f555e0e19)] - **doc**: clarify DEP0194 scope (Antoine du Hamel) [#&#8203;58504](nodejs/node#58504)
-   \[[`af0446edcb`](nodejs/node@af0446edcb)] - **doc**: deprecate HTTP/2 priority signaling (Matteo Collina) [#&#8203;58313](nodejs/node#58313)
-   \[[`80cc17f1ec`](nodejs/node@80cc17f1ec)] - **doc**: explain child_process code and signal null values everywhere (Darshan Sen) [#&#8203;58479](nodejs/node#58479)
-   \[[`e13930bbe0`](nodejs/node@e13930bbe0)] - **doc**: add Filip Skokan to TSC (Rafael Gonzaga) [#&#8203;58499](nodejs/node#58499)
-   \[[`5f3f045ecc`](nodejs/node@5f3f045ecc)] - **doc**: update `git node release` example (Antoine du Hamel) [#&#8203;58475](nodejs/node#58475)
-   \[[`4bbd026cde`](nodejs/node@4bbd026cde)] - **doc**: add missing options.info for ZstdOptions (Jimmy Leung) [#&#8203;58360](nodejs/node#58360)
-   \[[`a6d0d2a0d7`](nodejs/node@a6d0d2a0d7)] - **doc**: add missing options.info for BrotliOptions (Jimmy Leung) [#&#8203;58359](nodejs/node#58359)
-   \[[`510872a522`](nodejs/node@510872a522)] - **(SEMVER-MINOR)** **doc**: graduate Symbol.dispose/asyncDispose from experimental (James M Snell) [#&#8203;58467](nodejs/node#58467)
-   \[[`08685256cd`](nodejs/node@08685256cd)] - **doc**: clarify x509.checkIssued only checks metadata (Filip Skokan) [#&#8203;58457](nodejs/node#58457)
-   \[[`095794fc24`](nodejs/node@095794fc24)] - **doc**: add links to parent class for `node:zlib` classes (Antoine du Hamel) [#&#8203;58433](nodejs/node#58433)
-   \[[`7acac70bce`](nodejs/node@7acac70bce)] - **doc**: remove remaining uses of `@@&#8203;wellknown` syntax (René) [#&#8203;58413](nodejs/node#58413)
-   \[[`62056d40c7`](nodejs/node@62056d40c7)] - **doc**: clarify behavior of --watch-path and --watch flags (Juan Ignacio Benito) [#&#8203;58136](nodejs/node#58136)
-   \[[`e6e6ae887d`](nodejs/node@e6e6ae887d)] - **doc**: fix the order of `process.md` sections (Allon Murienik) [#&#8203;58403](nodejs/node#58403)
-   \[[`d2f6c82c0f`](nodejs/node@d2f6c82c0f)] - **doc,lib**: update source map links to ECMA426 (Chengzhong Wu) [#&#8203;58597](nodejs/node#58597)
-   \[[`a994d3d51a`](nodejs/node@a994d3d51a)] - **doc,src,test**: fix typos (Noritaka Kobayashi) [#&#8203;58477](nodejs/node#58477)
-   \[[`252acc1e89`](nodejs/node@252acc1e89)] - **errors**: show url of unsupported attributes in the error message (Aditi) [#&#8203;58303](nodejs/node#58303)
-   \[[`767e88cbc3`](nodejs/node@767e88cbc3)] - **esm**: unwrap WebAssembly.Global on Wasm Namespaces (Guy Bedford) [#&#8203;57525](nodejs/node#57525)
-   \[[`adef9af3ae`](nodejs/node@adef9af3ae)] - **(SEMVER-MINOR)** **esm**: implement import.meta.main (Joe) [#&#8203;57804](nodejs/node#57804)
-   \[[`308f4cac4b`](nodejs/node@308f4cac4b)] - **esm**: add support for dynamic source phase hook (Guy Bedford) [#&#8203;58147](nodejs/node#58147)
-   \[[`fcef56cb05`](nodejs/node@fcef56cb05)] - **fs**: improve cpSync no-filter copyDir performance (Dario Piotrowicz) [#&#8203;58461](nodejs/node#58461)
-   \[[`996fdb05ab`](nodejs/node@996fdb05ab)] - **fs**: fix cp handle existing symlinks (Yuesong Jake Li) [#&#8203;58476](nodejs/node#58476)
-   \[[`d2931e50e3`](nodejs/node@d2931e50e3)] - **fs**: fix cpSync handle existing symlinks (Yuesong Jake Li) [#&#8203;58476](nodejs/node#58476)
-   \[[`6f4c9dd423`](nodejs/node@6f4c9dd423)] - **(SEMVER-MINOR)** **fs**: add autoClose option to FileHandle readableWebStream (James M Snell) [#&#8203;58548](nodejs/node#58548)
-   \[[`8870bb8677`](nodejs/node@8870bb8677)] - **fs**: improve `cpSync` dest overriding performance (Dario Piotrowicz) [#&#8203;58160](nodejs/node#58160)
-   \[[`f2e2301559`](nodejs/node@f2e2301559)] - **fs**: unexpose internal constants (Chengzhong Wu) [#&#8203;58327](nodejs/node#58327)
-   \[[`32efb63242`](nodejs/node@32efb63242)] - **http**: deprecate instantiating classes without new (Yagiz Nizipli) [#&#8203;58518](nodejs/node#58518)
-   \[[`0b987e5741`](nodejs/node@0b987e5741)] - **(SEMVER-MAJOR)** **http2**: remove support for priority signaling (Matteo Collina) [#&#8203;58293](nodejs/node#58293)
-   \[[`44ca874b2c`](nodejs/node@44ca874b2c)] - **http2**: add lenient flag for RFC-9113 (Carlos Fuentes) [#&#8203;58116](nodejs/node#58116)
-   \[[`0234a8ef53`](nodejs/node@0234a8ef53)] - **(SEMVER-MINOR)** **http2**: add diagnostics channel 'http2.server.stream.finish' (Darshan Sen) [#&#8203;58560](nodejs/node#58560)
-   \[[`2b868e8aa7`](nodejs/node@2b868e8aa7)] - **http2**: add diagnostics channel 'http2.server.stream.error' (Darshan Sen) [#&#8203;58512](nodejs/node#58512)
-   \[[`b4df8d38cd`](nodejs/node@b4df8d38cd)] - **http2**: add diagnostics channel 'http2.server.stream.start' (Darshan Sen) [#&#8203;58449](nodejs/node#58449)
-   \[[`d86ff608bb`](nodejs/node@d86ff608bb)] - **http2**: remove no longer userful options.selectPadding (Jimmy Leung) [#&#8203;58373](nodejs/node#58373)
-   \[[`13dbbdc8a8`](nodejs/node@13dbbdc8a8)] - **http2**: add diagnostics channel 'http2.server.stream.created' (Darshan Sen) [#&#8203;58390](nodejs/node#58390)
-   \[[`08855464ec`](nodejs/node@08855464ec)] - **http2**: add diagnostics channel 'http2.client.stream.close' (Darshan Sen) [#&#8203;58329](nodejs/node#58329)
-   \[[`566fc567b8`](nodejs/node@566fc567b8)] - **http2**: add diagnostics channel 'http2.client.stream.finish' (Darshan Sen) [#&#8203;58317](nodejs/node#58317)
-   \[[`f30b9117d4`](nodejs/node@f30b9117d4)] - **http2**: add diagnostics channel 'http2.client.stream.error' (Darshan Sen) [#&#8203;58306](nodejs/node#58306)
-   \[[`79b852a692`](nodejs/node@79b852a692)] - **inspector**: add mimeType and charset support to Network.Response (Shima Ryuhei) [#&#8203;58192](nodejs/node#58192)
-   \[[`402ac8b1d8`](nodejs/node@402ac8b1d8)] - **inspector**: add protocol method Network.dataReceived (Chengzhong Wu) [#&#8203;58001](nodejs/node#58001)
-   \[[`29f34a7f86`](nodejs/node@29f34a7f86)] - **lib**: disable REPL completion on proxies and getters (Dario Piotrowicz) [#&#8203;57909](nodejs/node#57909)
-   \[[`0f1e94f731`](nodejs/node@0f1e94f731)] - **(SEMVER-MINOR)** **lib**: graduate error codes that have been around for years (James M Snell) [#&#8203;58541](nodejs/node#58541)
-   \[[`cc1aacabb0`](nodejs/node@cc1aacabb0)] - **lib**: make ERM functions into wrappers returning undefined (Livia Medeiros) [#&#8203;58400](nodejs/node#58400)
-   \[[`8df4dee38c`](nodejs/node@8df4dee38c)] - **lib**: remove no-mixed-operators eslint rule (Ruben Bridgewater) [#&#8203;58375](nodejs/node#58375)
-   \[[`104d173f58`](nodejs/node@104d173f58)] - **meta**: bump github/codeql-action from 3.28.16 to 3.28.18 (dependabot\[bot]) [#&#8203;58552](nodejs/node#58552)
-   \[[`b454e8386c`](nodejs/node@b454e8386c)] - **meta**: bump codecov/codecov-action from 5.4.2 to 5.4.3 (dependabot\[bot]) [#&#8203;58551](nodejs/node#58551)
-   \[[`f31e014b81`](nodejs/node@f31e014b81)] - **meta**: bump step-security/harden-runner from 2.11.0 to 2.12.0 (dependabot\[bot]) [#&#8203;58109](nodejs/node#58109)
-   \[[`4da920cc13`](nodejs/node@4da920cc13)] - **meta**: bump ossf/scorecard-action from 2.4.1 to 2.4.2 (dependabot\[bot]) [#&#8203;58550](nodejs/node#58550)
-   \[[`eb9bb95fe2`](nodejs/node@eb9bb95fe2)] - **meta**: bump rtCamp/action-slack-notify from 2.3.2 to 2.3.3 (dependabot\[bot]) [#&#8203;58108](nodejs/node#58108)
-   \[[`27ada1f18c`](nodejs/node@27ada1f18c)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#&#8203;58456](nodejs/node#58456)
-   \[[`4606a6792b`](nodejs/node@4606a6792b)] - **meta**: bump github/codeql-action from 3.28.11 to 3.28.16 (dependabot\[bot]) [#&#8203;58112](nodejs/node#58112)
-   \[[`7dfe448b7f`](nodejs/node@7dfe448b7f)] - **meta**: bump codecov/codecov-action from 5.4.0 to 5.4.2 (dependabot\[bot]) [#&#8203;58110](nodejs/node#58110)
-   \[[`18bb5f7e7e`](nodejs/node@18bb5f7e7e)] - **meta**: bump actions/download-artifact from 4.2.1 to 4.3.0 (dependabot\[bot]) [#&#8203;58106](nodejs/node#58106)
-   \[[`72f2a22889`](nodejs/node@72f2a22889)] - **module**: clarify cjs global-like error on ModuleJobSync (Carlos Espa) [#&#8203;56491](nodejs/node#56491)
-   \[[`b0e0b1afae`](nodejs/node@b0e0b1afae)] - **net**: always publish to 'net.client.socket' diagnostics channel (Darshan Sen) [#&#8203;58349](nodejs/node#58349)
-   \[[`f373d6a540`](nodejs/node@f373d6a540)] - **node-api**: use WriteOneByteV2 in napi_get_value_string_latin1 (Chengzhong Wu) [#&#8203;58325](nodejs/node#58325)
-   \[[`429c38db1b`](nodejs/node@429c38db1b)] - **node-api**: use WriteV2 in napi_get_value_string_utf16 (Tobias Nießen) [#&#8203;58165](nodejs/node#58165)
-   \[[`b882148999`](nodejs/node@b882148999)] - **path**: improve path.resolve() performance when used as process.cwd() (Ruben Bridgewater) [#&#8203;58362](nodejs/node#58362)
-   \[[`13abca3c26`](nodejs/node@13abca3c26)] - **(SEMVER-MINOR)** **perf_hooks**: make event loop delay histogram disposable (James M Snell) [#&#8203;58384](nodejs/node#58384)
-   \[[`1cd417d823`](nodejs/node@1cd417d823)] - **permission**: remove useless conditional (Juan José) [#&#8203;58514](nodejs/node#58514)
-   \[[`462c4b0c24`](nodejs/node@462c4b0c24)] - **readline**: add stricter validation for functions called after closed (Dario Piotrowicz) [#&#8203;58283](nodejs/node#58283)
-   \[[`e3e36f902c`](nodejs/node@e3e36f902c)] - **repl**: extract and standardize history from both repl and interface (Giovanni Bucci) [#&#8203;58225](nodejs/node#58225)
-   \[[`cbb2a0172f`](nodejs/node@cbb2a0172f)] - **report**: use uv_getrusage_thread in report (theanarkh) [#&#8203;58405](nodejs/node#58405)
-   \[[`3a6bd9c4c4`](nodejs/node@3a6bd9c4c4)] - **sqlite**: handle thrown errors in result callback (Colin Ihrig) [#&#8203;58426](nodejs/node#58426)
-   \[[`0d761bbccd`](nodejs/node@0d761bbccd)] - **src**: env_vars caching and local variable scope optimization (Mert Can Altin) [#&#8203;57624](nodejs/node#57624)
-   \[[`8ea1fc5f3b`](nodejs/node@8ea1fc5f3b)] - **(SEMVER-MINOR)** **src**: support namespace options in configuration file (Pietro Marchini) [#&#8203;58073](nodejs/node#58073)
-   \[[`f72ce2ef75`](nodejs/node@f72ce2ef75)] - **src**: remove fast API for InternalModuleStat (Joyee Cheung) [#&#8203;58489](nodejs/node#58489)
-   \[[`8a1eaea151`](nodejs/node@8a1eaea151)] - **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T> (Aditi) [#&#8203;58500](nodejs/node#58500)
-   \[[`d99d657842`](nodejs/node@d99d657842)] - **src**: fix FIPS init error handling (Tobias Nießen) [#&#8203;58379](nodejs/node#58379)
-   \[[`11e4cd698b`](nodejs/node@11e4cd698b)] - **src**: fix possible dereference of null pointer (Eusgor) [#&#8203;58459](nodejs/node#58459)
-   \[[`ca0f5a0188`](nodejs/node@ca0f5a0188)] - **src**: add env->cppgc_allocation_handle() convenience method (James M Snell) [#&#8203;58483](nodejs/node#58483)
-   \[[`440d4f42bd`](nodejs/node@440d4f42bd)] - **src**: fix -Wreturn-stack-address error (Shelley Vohr) [#&#8203;58439](nodejs/node#58439)
-   \[[`08615b1020`](nodejs/node@08615b1020)] - **src**: prepare for v8 sandboxing (James M Snell) [#&#8203;58376](nodejs/node#58376)
-   \[[`63f643e844`](nodejs/node@63f643e844)] - **src**: reorganize ContextifyFunction methods (Chengzhong Wu) [#&#8203;58434](nodejs/node#58434)
-   \[[`3b6895a506`](nodejs/node@3b6895a506)] - **src**: improve CompileFunctionAndCacheResult error handling (Chengzhong Wu) [#&#8203;58434](nodejs/node#58434)
-   \[[`7f1c95aee8`](nodejs/node@7f1c95aee8)] - **src**: make a number of minor improvements to buffer (James M Snell) [#&#8203;58377](nodejs/node#58377)
-   \[[`ce081bcb9a`](nodejs/node@ce081bcb9a)] - **src**: fix build when using shared simdutf (Antoine du Hamel) [#&#8203;58407](nodejs/node#58407)
-   \[[`a35cc216e5`](nodejs/node@a35cc216e5)] - **src**: track cppgc wrappers with a list in Realm (Joyee Cheung) [#&#8203;56534](nodejs/node#56534)
-   \[[`947c1c2cd5`](nodejs/node@947c1c2cd5)] - **src,lib**: obtain sourceURL in magic comments from V8 (Chengzhong Wu) [#&#8203;58389](nodejs/node#58389)
-   \[[`d6ea36ad6c`](nodejs/node@d6ea36ad6c)] - **src,permission**: implicit allow-fs-read to app entrypoint (Rafael Gonzaga) [#&#8203;58579](nodejs/node#58579)
-   \[[`e8a07f2198`](nodejs/node@e8a07f2198)] - **stream**: making DecompressionStream spec compilent for trailing junk (0hm☘️) [#&#8203;58316](nodejs/node#58316)
-   \[[`3caa2f71c1`](nodejs/node@3caa2f71c1)] - **stream**: test explicit resource management implicitly (LiviaMedeiros) [#&#8203;58296](nodejs/node#58296)
-   \[[`9ccdf4fdb4`](nodejs/node@9ccdf4fdb4)] - **test**: improve flakiness detection on stack corruption tests (Darshan Sen) [#&#8203;58601](nodejs/node#58601)
-   \[[`d3fea003df`](nodejs/node@d3fea003df)] - **test**: mark timeouts & flaky test as flaky on IBM i (Abdirahim Musse) [#&#8203;58583](nodejs/node#58583)
-   \[[`8347ef6b53`](nodejs/node@8347ef6b53)] - **test**: dispose of filehandles in filehandle.read tests (Livia Medeiros) [#&#8203;58543](nodejs/node#58543)
-   \[[`34e86f91aa`](nodejs/node@34e86f91aa)] - **test**: rewrite test-child-process-spawn-args (Michaël Zasso) [#&#8203;58546](nodejs/node#58546)
-   \[[`d7a2458a58`](nodejs/node@d7a2458a58)] - **test**: make sqlite-database-sync tests work with system sqlite (Jelle Licht) [#&#8203;58507](nodejs/node#58507)
-   \[[`4d9d6830e0`](nodejs/node@4d9d6830e0)] - **test**: force slow JSON.stringify path for overflow (Shelley Vohr) [#&#8203;58181](nodejs/node#58181)
-   \[[`bef67e45e3`](nodejs/node@bef67e45e3)] - **test**: account for truthy signal in flaky async_hooks tests (Darshan Sen) [#&#8203;58478](nodejs/node#58478)
-   \[[`007c82f206`](nodejs/node@007c82f206)] - **test**: mark `test-http2-debug` as flaky on LinuxONE (Richard Lau) [#&#8203;58494](nodejs/node#58494)
-   \[[`21f6400098`](nodejs/node@21f6400098)] - **test**: update WPT for WebCryptoAPI to [`591c95c`](nodejs/node@591c95ce61) (Node.js GitHub Bot) [#&#8203;58176](nodejs/node#58176)
-   \[[`1deb5f06a5`](nodejs/node@1deb5f06a5)] - **test**: remove --no-warnings flag (Tobias Nießen) [#&#8203;58424](nodejs/node#58424)
-   \[[`beba631a10`](nodejs/node@beba631a10)] - **test**: add tests ensuring worker threads cannot access internals (Joe) [#&#8203;58332](nodejs/node#58332)
-   \[[`5936cef60a`](nodejs/node@5936cef60a)] - **(SEMVER-MINOR)** **test**: add disposable histogram test (James M Snell) [#&#8203;58384](nodejs/node#58384)
-   \[[`7a91f4aaa1`](nodejs/node@7a91f4aaa1)] - **(SEMVER-MINOR)** **test**: add test for async disposable worker thread (James M Snell) [#&#8203;58385](nodejs/node#58385)
-   \[[`5fc4706280`](nodejs/node@5fc4706280)] - **test**: leverage process.features.openssl_is_boringssl in test (Shelley Vohr) [#&#8203;58421](nodejs/node#58421)
-   \[[`4629b18397`](nodejs/node@4629b18397)] - **test**: fix test-buffer-tostring-range on allocation failure (Joyee Cheung) [#&#8203;58416](nodejs/node#58416)
-   \[[`4c445a8c85`](nodejs/node@4c445a8c85)] - **test**: skip in test-buffer-tostring-rangeerror on allocation failure (Joyee Cheung) [#&#8203;58415](nodejs/node#58415)
-   \[[`53cb29898b`](nodejs/node@53cb29898b)] - **test**: fix missing edge case in test-blob-slice-with-large-size (Joyee Cheung) [#&#8203;58414](nodejs/node#58414)
-   \[[`89fdfdedc1`](nodejs/node@89fdfdedc1)] - **test**: make crypto tests work with BoringSSL (Shelley Vohr) [#&#8203;58117](nodejs/node#58117)
-   \[[`3b5d0e62b1`](nodejs/node@3b5d0e62b1)] - **test**: test reordering of setAAD and setAuthTag (Tobias Nießen) [#&#8203;58396](nodejs/node#58396)
-   \[[`029440bec5`](nodejs/node@029440bec5)] - **test**: switch from deprecated `optparse` to `argparse` (Aviv Keller) [#&#8203;58224](nodejs/node#58224)
-   \[[`d05263edcc`](nodejs/node@d05263edcc)] - **test**: do not skip OCB decryption in FIPS mode (Tobias Nießen) [#&#8203;58382](nodejs/node#58382)
-   \[[`23474cb257`](nodejs/node@23474cb257)] - **test**: show more information in test-http2-debug upon failure (Joyee Cheung) [#&#8203;58391](nodejs/node#58391)
-   \[[`d0302e7b3d`](nodejs/node@d0302e7b3d)] - **test**: remove loop over single element (Tobias Nießen) [#&#8203;58368](nodejs/node#58368)
-   \[[`33f615897d`](nodejs/node@33f615897d)] - **test**: add chacha20-poly1305 to auth tag order test (Tobias Nießen) [#&#8203;58367](nodejs/node#58367)
-   \[[`8f09a1f502`](nodejs/node@8f09a1f502)] - **test**: skip wasm-allocation tests for pointer compression builds (Joyee Cheung) [#&#8203;58171](nodejs/node#58171)
-   \[[`4ae6a1a5ed`](nodejs/node@4ae6a1a5ed)] - **test**: remove references to create(De|C)ipher (Tobias Nießen) [#&#8203;58363](nodejs/node#58363)
-   \[[`4d647271b2`](nodejs/node@4d647271b2)] - **test_runner**: emit event when file changes in watch mode (Jacopo Martinelli) [#&#8203;57903](nodejs/node#57903)
-   \[[`1eda87c365`](nodejs/node@1eda87c365)] - **test_runner**: add level parameter to reporter.diagnostic (Jacopo Martinelli) [#&#8203;57923](nodejs/node#57923)
-   \[[`13377512be`](nodejs/node@13377512be)] - **tools**: bump the eslint group in `/tools/eslint` with 6 updates (dependabot\[bot]) [#&#8203;58549](nodejs/node#58549)
-   \[[`fcc881de0d`](nodejs/node@fcc881de0d)] - **tools**: support `DisposableStack` and `AsyncDisposableStack` in linter (LiviaMedeiros) [#&#8203;58454](nodejs/node#58454)
-   \[[`208d6a5754`](nodejs/node@208d6a5754)] - **tools**: support explicit resource management in eslint (LiviaMedeiros) [#&#8203;58296](nodejs/node#58296)
-   \[[`32070f304a`](nodejs/node@32070f304a)] - **tools**: add missing highway defines for IBM i (Abdirahim Musse) [#&#8203;58335](nodejs/node#58335)
-   \[[`ddab63a323`](nodejs/node@ddab63a323)] - **tty**: improve color terminal color detection (Ruben Bridgewater) [#&#8203;58146](nodejs/node#58146)
-   \[[`c094bea8d9`](nodejs/node@c094bea8d9)] - **tty**: use terminal VT mode on Windows (Anna Henningsen) [#&#8203;58358](nodejs/node#58358)
-   \[[`dc21054a1e`](nodejs/node@dc21054a1e)] - **typings**: add inspector internalBinding typing (Shima Ryuhei) [#&#8203;58492](nodejs/node#58492)
-   \[[`3499285904`](nodejs/node@3499285904)] - **typings**: remove no longer valid `FixedSizeBlobCopyJob` type (Dario Piotrowicz) [#&#8203;58305](nodejs/node#58305)
-   \[[`1ed2deb2c8`](nodejs/node@1ed2deb2c8)] - **typings**: remove no longer valid `revokeDataObject` type (Dario Piotrowicz) [#&#8203;58305](nodejs/node#58305)
-   \[[`532c173cf2`](nodejs/node@532c173cf2)] - **(SEMVER-MINOR)** **util**: add 'none' style to styleText (James M Snell) [#&#8203;58437](nodejs/node#58437)
-   \[[`2d5a1ef528`](nodejs/node@2d5a1ef528)] - **vm**: import call should return a promise in the current context (Chengzhong Wu) [#&#8203;58309](nodejs/node#58309)
-   \[[`588c2449f2`](nodejs/node@588c2449f2)] - **win,tools**: use Azure Trusted Signing (Stefan Stojanovic) [#&#8203;58502](nodejs/node#58502)
-   \[[`aeb9ab4c4c`](nodejs/node@aeb9ab4c4c)] - **(SEMVER-MINOR)** **worker**: make Worker async disposable (James M Snell) [#&#8203;58385](nodejs/node#58385)
-   \[[`23416cce0a`](nodejs/node@23416cce0a)] - **worker**: give names to `MessagePort` functions (Livia Medeiros) [#&#8203;58307](nodejs/node#58307)
-   \[[`44df21b7fb`](nodejs/node@44df21b7fb)] - **zlib**: remove mentions of unexposed Z_TREES constant (Jimmy Leung) [#&#8203;58371](nodejs/node#58371)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC41Mi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. 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. fs Issues and PRs related to the fs subsystem / file system. needs-ci PRs that need a full CI run.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants