diff --git a/apps/site/pages/en/blog/release/v24.14.0.md b/apps/site/pages/en/blog/release/v24.14.0.md new file mode 100644 index 0000000000000..a517d3f1051e1 --- /dev/null +++ b/apps/site/pages/en/blog/release/v24.14.0.md @@ -0,0 +1,222 @@ +--- +date: '2026-02-24T15:38:19.656Z' +category: release +title: Node.js 24.14.0 (LTS) +layout: blog-post +author: Ruy Adorno +--- + +## 2026-02-24, Version 24.14.0 'Krypton' (LTS), @ruyadorno prepared by @aduh95 + +### Notable Changes + +- \[[`8b6d31d379`](https://github.com/nodejs/node/commit/8b6d31d379)] - **(SEMVER-MINOR)** **async_hooks**: add `trackPromises` option to `createHook()` (Joyee Cheung) [#61415](https://github.com/nodejs/node/pull/61415) +- \[[`68da144b4e`](https://github.com/nodejs/node/commit/68da144b4e)] - **build,deps**: replace cjs-module-lexer with merve (Yagiz Nizipli) [#61456](https://github.com/nodejs/node/pull/61456) +- \[[`f3a24c76e4`](https://github.com/nodejs/node/commit/f3a24c76e4)] - **(SEMVER-MINOR)** **deps**: add LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`1948861d23`](https://github.com/nodejs/node/commit/1948861d23)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#60214](https://github.com/nodejs/node/pull/60214) +- \[[`d6f7c8d06f`](https://github.com/nodejs/node/commit/d6f7c8d06f)] - **(SEMVER-MINOR)** **fs**: add `ignore` option to `fs.watch` (Matteo Collina) [#61433](https://github.com/nodejs/node/pull/61433) +- \[[`cb54b3ca6e`](https://github.com/nodejs/node/commit/cb54b3ca6e)] - **(SEMVER-MINOR)** **http**: add `http.setGlobalProxyFromEnv()` (Joyee Cheung) [#60953](https://github.com/nodejs/node/pull/60953) +- \[[`35b1759d06`](https://github.com/nodejs/node/commit/35b1759d06)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#60864](https://github.com/nodejs/node/pull/60864) +- \[[`2d72ea66f2`](https://github.com/nodejs/node/commit/2d72ea66f2)] - **(SEMVER-MINOR)** **process**: preserve `AsyncLocalStorage` in `queueMicrotask` only when needed (Gürgün Dayıoğlu) [#60913](https://github.com/nodejs/node/pull/60913) +- \[[`6f4a4f6c8e`](https://github.com/nodejs/node/commit/6f4a4f6c8e)] - **(SEMVER-MINOR)** **sea**: split sea binary manipulation code (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`c0ceb9b065`](https://github.com/nodejs/node/commit/c0ceb9b065)] - **(SEMVER-MINOR)** **sqlite**: enable defensive mode by default (Bart Louwers) [#61266](https://github.com/nodejs/node/pull/61266) +- \[[`33d8e8303b`](https://github.com/nodejs/node/commit/33d8e8303b)] - **(SEMVER-MINOR)** **sqlite**: add sqlite prepare options args (Guilherme Araújo) [#61311](https://github.com/nodejs/node/pull/61311) +- \[[`563ab699eb`](https://github.com/nodejs/node/commit/563ab699eb)] - **(SEMVER-MINOR)** **src**: add initial support for ESM in embedder API (Joyee Cheung) [#61548](https://github.com/nodejs/node/pull/61548) +- \[[`4c80031000`](https://github.com/nodejs/node/commit/4c80031000)] - **(SEMVER-MINOR)** **stream**: add `bytes()` method to `node:stream/consumers` (wantaek) [#60426](https://github.com/nodejs/node/pull/60426) +- \[[`f5233df4ff`](https://github.com/nodejs/node/commit/f5233df4ff)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#60907](https://github.com/nodejs/node/pull/60907) +- \[[`345a40fda3`](https://github.com/nodejs/node/commit/345a40fda3)] - **(SEMVER-MINOR)** **test**: use fixture directories for sea tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`972f82411d`](https://github.com/nodejs/node/commit/972f82411d)] - **(SEMVER-MINOR)** **test_runner**: add `env` option to `run` function (Ethan Arrowood) [#61367](https://github.com/nodejs/node/pull/61367) +- \[[`d77f98c4b6`](https://github.com/nodejs/node/commit/d77f98c4b6)] - **(SEMVER-MINOR)** **test_runner**: support expecting a test-case to fail (Jacob Smith) [#60669](https://github.com/nodejs/node/pull/60669) +- \[[`8e900af6ba`](https://github.com/nodejs/node/commit/8e900af6ba)] - **(SEMVER-MINOR)** **util**: add `convertProcessSignalToExitCode` utility (Erick Wendel) [#60963](https://github.com/nodejs/node/pull/60963) + +### Commits + +- \[[`180778fb9a`](https://github.com/nodejs/node/commit/180778fb9a)] - **assert**: fix loose deepEqual arrays with undefined and null failing (Ruben Bridgewater) [#61587](https://github.com/nodejs/node/pull/61587) +- \[[`8b6d31d379`](https://github.com/nodejs/node/commit/8b6d31d379)] - **(SEMVER-MINOR)** **async_hooks**: add trackPromises option to createHook() (Joyee Cheung) [#61415](https://github.com/nodejs/node/pull/61415) +- \[[`83bcd38d35`](https://github.com/nodejs/node/commit/83bcd38d35)] - **benchmark**: add streaming TextDecoder benchmark (Сковорода Никита Андреевич) [#61549](https://github.com/nodejs/node/pull/61549) +- \[[`4c105844c5`](https://github.com/nodejs/node/commit/4c105844c5)] - **build**: add support for Visual Studio 2026 (Michaël Zasso) [#60727](https://github.com/nodejs/node/pull/60727) +- \[[`1f84fd91d9`](https://github.com/nodejs/node/commit/1f84fd91d9)] - **build**: skip sscache action on non-main branches (Joyee Cheung) [#61790](https://github.com/nodejs/node/pull/61790) +- \[[`30601b680f`](https://github.com/nodejs/node/commit/30601b680f)] - **build**: add `--shared-nbytes` configure flag (Antoine du Hamel) [#61341](https://github.com/nodejs/node/pull/61341) +- \[[`c6253eda49`](https://github.com/nodejs/node/commit/c6253eda49)] - **build**: add `--shared-hdr-histogram` configure flag (Antoine du Hamel) [#61280](https://github.com/nodejs/node/pull/61280) +- \[[`584c189037`](https://github.com/nodejs/node/commit/584c189037)] - **build**: add `--shared-gtest` configure flag (Antoine du Hamel) [#61279](https://github.com/nodejs/node/pull/61279) +- \[[`5998987881`](https://github.com/nodejs/node/commit/5998987881)] - **build**: aix: deoptimize implementation-visitor.cc with --shared (Stewart X Addison) [#61550](https://github.com/nodejs/node/pull/61550) +- \[[`68da144b4e`](https://github.com/nodejs/node/commit/68da144b4e)] - **build,deps**: replace cjs-module-lexer with merve (Yagiz Nizipli) [#61456](https://github.com/nodejs/node/pull/61456) +- \[[`6a4511bafb`](https://github.com/nodejs/node/commit/6a4511bafb)] - **build,win**: fix vs2022 compilation (Stefan Stojanovic) [#61530](https://github.com/nodejs/node/pull/61530) +- \[[`2d6735db8a`](https://github.com/nodejs/node/commit/2d6735db8a)] - **deps**: upgrade npm to 11.9.0 (npm team) [#61685](https://github.com/nodejs/node/pull/61685) +- \[[`699e2f8f81`](https://github.com/nodejs/node/commit/699e2f8f81)] - **deps**: update amaro to 1.1.7 (Node.js GitHub Bot) [#61730](https://github.com/nodejs/node/pull/61730) +- \[[`7be76316d6`](https://github.com/nodejs/node/commit/7be76316d6)] - **deps**: update minimatch to 10.1.2 (Node.js GitHub Bot) [#61732](https://github.com/nodejs/node/pull/61732) +- \[[`97e5a65013`](https://github.com/nodejs/node/commit/97e5a65013)] - **deps**: update undici to 7.21.0 (Node.js GitHub Bot) [#61683](https://github.com/nodejs/node/pull/61683) +- \[[`74e4710ee7`](https://github.com/nodejs/node/commit/74e4710ee7)] - **deps**: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) [#61605](https://github.com/nodejs/node/pull/61605) +- \[[`b5113e2a2a`](https://github.com/nodejs/node/commit/b5113e2a2a)] - **deps**: update amaro to 1.1.6 (Node.js GitHub Bot) [#61603](https://github.com/nodejs/node/pull/61603) +- \[[`f3a24c76e4`](https://github.com/nodejs/node/commit/f3a24c76e4)] - **(SEMVER-MINOR)** **deps**: add LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`c370c3dc06`](https://github.com/nodejs/node/commit/c370c3dc06)] - **(SEMVER-MINOR)** **deps**: add tools and scripts to pull LIEF as a dependency (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`e54975e17d`](https://github.com/nodejs/node/commit/e54975e17d)] - **deps**: V8: cherry-pick highway\@dcc0ca1cd42 (Richard Lau) [#61008](https://github.com/nodejs/node/pull/61008) +- \[[`625b90b76b`](https://github.com/nodejs/node/commit/625b90b76b)] - **deps**: update undici to 7.19.2 (Node.js GitHub Bot) [#61566](https://github.com/nodejs/node/pull/61566) +- \[[`05e9a9fb5e`](https://github.com/nodejs/node/commit/05e9a9fb5e)] - **deps**: update undici to 7.19.1 (Node.js GitHub Bot) [#61514](https://github.com/nodejs/node/pull/61514) +- \[[`3d41643e38`](https://github.com/nodejs/node/commit/3d41643e38)] - **deps**: update undici to 7.19.0 (Node.js GitHub Bot) [#61470](https://github.com/nodejs/node/pull/61470) +- \[[`17b363a66c`](https://github.com/nodejs/node/commit/17b363a66c)] - **dns**: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) [#61453](https://github.com/nodejs/node/pull/61453) +- \[[`33d0a8c22d`](https://github.com/nodejs/node/commit/33d0a8c22d)] - **doc**: clarify EventEmitter error handling in threat model (Matteo Collina) [#61701](https://github.com/nodejs/node/pull/61701) +- \[[`5b8e72cf85`](https://github.com/nodejs/node/commit/5b8e72cf85)] - **doc**: mention default option for test runner env (Steven) [#61659](https://github.com/nodejs/node/pull/61659) +- \[[`f44e67fac2`](https://github.com/nodejs/node/commit/f44e67fac2)] - **doc**: fix --inspect security warning section (Tim Perry) [#61675](https://github.com/nodejs/node/pull/61675) +- \[[`a0e09c9043`](https://github.com/nodejs/node/commit/a0e09c9043)] - **doc**: document `url.format(urlString)` as deprecated under DEP0169 (René) [#61644](https://github.com/nodejs/node/pull/61644) +- \[[`5e719248fe`](https://github.com/nodejs/node/commit/5e719248fe)] - **doc**: deprecation add more codemod (Augustin Mauroy) [#61642](https://github.com/nodejs/node/pull/61642) +- \[[`8f5a3e5df4`](https://github.com/nodejs/node/commit/8f5a3e5df4)] - **doc**: fix grammatical error in README.md (ayj8201) [#61653](https://github.com/nodejs/node/pull/61653) +- \[[`d52b535163`](https://github.com/nodejs/node/commit/d52b535163)] - **doc**: correct tools README Boxstarter link (Mike McCready) [#61638](https://github.com/nodejs/node/pull/61638) +- \[[`4889dc4f59`](https://github.com/nodejs/node/commit/4889dc4f59)] - **doc**: update `server.dropMaxConnection` link (YuSheng Chen) [#61584](https://github.com/nodejs/node/pull/61584) +- \[[`8e48e72f2a`](https://github.com/nodejs/node/commit/8e48e72f2a)] - **doc**: clean up writing-and-running-benchmarks.md (Hardanish Singh) [#61345](https://github.com/nodejs/node/pull/61345) +- \[[`1948861d23`](https://github.com/nodejs/node/commit/1948861d23)] - **(SEMVER-MINOR)** **events**: repurpose `events.listenerCount()` to accept EventTargets (René) [#60214](https://github.com/nodejs/node/pull/60214) +- \[[`d6f7c8d06f`](https://github.com/nodejs/node/commit/d6f7c8d06f)] - **(SEMVER-MINOR)** **fs**: add ignore option to fs.watch (Matteo Collina) [#61433](https://github.com/nodejs/node/pull/61433) +- \[[`2d7e5f9581`](https://github.com/nodejs/node/commit/2d7e5f9581)] - **http**: implement slab allocation for HTTP header parsing (Mert Can Altin) [#61375](https://github.com/nodejs/node/pull/61375) +- \[[`cb54b3ca6e`](https://github.com/nodejs/node/commit/cb54b3ca6e)] - **(SEMVER-MINOR)** **http**: add http.setGlobalProxyFromEnv() (Joyee Cheung) [#60953](https://github.com/nodejs/node/pull/60953) +- \[[`6df8be48ce`](https://github.com/nodejs/node/commit/6df8be48ce)] - **lib**: use utf8 fast path for streaming TextDecoder (Сковорода Никита Андреевич) [#61549](https://github.com/nodejs/node/pull/61549) +- \[[`830fff0aca`](https://github.com/nodejs/node/commit/830fff0aca)] - **lib**: recycle queues (Robert Nagy) [#61461](https://github.com/nodejs/node/pull/61461) +- \[[`069874bdbd`](https://github.com/nodejs/node/commit/069874bdbd)] - **lib**: use StringPrototypeStartsWith from primordials in locks (Taejin Kim) [#61492](https://github.com/nodejs/node/pull/61492) +- \[[`7824c7589e`](https://github.com/nodejs/node/commit/7824c7589e)] - **lib**: unify ICU and no-ICU TextDecoder (Сковорода Никита Андреевич) [#61409](https://github.com/nodejs/node/pull/61409) +- \[[`f81430702a`](https://github.com/nodejs/node/commit/f81430702a)] - **lib**: prefer `call()` over `apply()` if argument list is not array (Livia Medeiros) [#60796](https://github.com/nodejs/node/pull/60796) +- \[[`a723f72e1e`](https://github.com/nodejs/node/commit/a723f72e1e)] - **lib**: add support for readable byte streams to .toWeb() (Hans Klunder) [#58664](https://github.com/nodejs/node/pull/58664) +- \[[`b78d814b3d`](https://github.com/nodejs/node/commit/b78d814b3d)] - **meta**: persist sccache daemon until end of build workflows (René) [#61639](https://github.com/nodejs/node/pull/61639) +- \[[`40a872a4b9`](https://github.com/nodejs/node/commit/40a872a4b9)] - **meta**: bump github/codeql-action from 4.31.9 to 4.32.0 (dependabot\[bot]) [#61622](https://github.com/nodejs/node/pull/61622) +- \[[`0637bdb3be`](https://github.com/nodejs/node/commit/0637bdb3be)] - **meta**: bump step-security/harden-runner from 2.14.0 to 2.14.1 (dependabot\[bot]) [#61621](https://github.com/nodejs/node/pull/61621) +- \[[`e8d9bd9fc5`](https://github.com/nodejs/node/commit/e8d9bd9fc5)] - **meta**: bump actions/setup-python from 6.1.0 to 6.2.0 (dependabot\[bot]) [#61627](https://github.com/nodejs/node/pull/61627) +- \[[`c517df2b65`](https://github.com/nodejs/node/commit/c517df2b65)] - **meta**: bump actions/setup-node from 6.1.0 to 6.2.0 (dependabot\[bot]) [#61625](https://github.com/nodejs/node/pull/61625) +- \[[`9a64f2f25d`](https://github.com/nodejs/node/commit/9a64f2f25d)] - **meta**: bump actions/cache from 5.0.1 to 5.0.3 (dependabot\[bot]) [#61624](https://github.com/nodejs/node/pull/61624) +- \[[`0e5922e95e`](https://github.com/nodejs/node/commit/0e5922e95e)] - **meta**: bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (dependabot\[bot]) [#61623](https://github.com/nodejs/node/pull/61623) +- \[[`5da7b51091`](https://github.com/nodejs/node/commit/5da7b51091)] - **meta**: bump actions/stale from 10.1.0 to 10.1.1 (dependabot\[bot]) [#61620](https://github.com/nodejs/node/pull/61620) +- \[[`c085c8a43f`](https://github.com/nodejs/node/commit/c085c8a43f)] - **meta**: bump actions/checkout from 6.0.1 to 6.0.2 (dependabot\[bot]) [#61619](https://github.com/nodejs/node/pull/61619) +- \[[`ce2acf0275`](https://github.com/nodejs/node/commit/ce2acf0275)] - **meta**: bump actions/download-artifact from 6.0.0 to 7.0.0 (dependabot\[bot]) [#61242](https://github.com/nodejs/node/pull/61242) +- \[[`629f0eaac5`](https://github.com/nodejs/node/commit/629f0eaac5)] - **meta**: bump actions/checkout from 6.0.0 to 6.0.1 (dependabot\[bot]) [#61239](https://github.com/nodejs/node/pull/61239) +- \[[`cd80d369c9`](https://github.com/nodejs/node/commit/cd80d369c9)] - **meta**: bump actions/upload-artifact from 5.0.0 to 6.0.0 (dependabot\[bot]) [#61238](https://github.com/nodejs/node/pull/61238) +- \[[`8c75e4e1fa`](https://github.com/nodejs/node/commit/8c75e4e1fa)] - **meta**: bump actions/checkout from 5.0.1 to 6.0.0 (dependabot\[bot]) [#60925](https://github.com/nodejs/node/pull/60925) +- \[[`5a9e9f4127`](https://github.com/nodejs/node/commit/5a9e9f4127)] - **meta**: bump actions/checkout from 5.0.0 to 5.0.1 (dependabot\[bot]) [#60767](https://github.com/nodejs/node/pull/60767) +- \[[`1519251dd1`](https://github.com/nodejs/node/commit/1519251dd1)] - **module**: do not invoke resolve hooks twice for imported cjs (Joyee Cheung) [#61529](https://github.com/nodejs/node/pull/61529) +- \[[`8d7190b3fe`](https://github.com/nodejs/node/commit/8d7190b3fe)] - **module**: do not wrap module.\_load when tracing is not enabled (Joyee Cheung) [#61479](https://github.com/nodejs/node/pull/61479) +- \[[`35b1759d06`](https://github.com/nodejs/node/commit/35b1759d06)] - **(SEMVER-MINOR)** **module**: allow subpath imports that start with `#/` (Jan Martin) [#60864](https://github.com/nodejs/node/pull/60864) +- \[[`7a83b38921`](https://github.com/nodejs/node/commit/7a83b38921)] - **net**: defer synchronous destroy calls in internalConnect (RajeshKumar11) [#61658](https://github.com/nodejs/node/pull/61658) +- \[[`16bab79421`](https://github.com/nodejs/node/commit/16bab79421)] - **process**: do not truncate long strings in `--print` (Mohamed Akram) [#61497](https://github.com/nodejs/node/pull/61497) +- \[[`2d72ea66f2`](https://github.com/nodejs/node/commit/2d72ea66f2)] - **(SEMVER-MINOR)** **process**: preserve AsyncLocalStorage in queueMicrotask only when needed (Gürgün Dayıoğlu) [#60913](https://github.com/nodejs/node/pull/60913) +- \[[`9cc1c4604f`](https://github.com/nodejs/node/commit/9cc1c4604f)] - **repl**: fix getters triggering side effects during completion (Dario Piotrowicz) [#61043](https://github.com/nodejs/node/pull/61043) +- \[[`93703306a1`](https://github.com/nodejs/node/commit/93703306a1)] - **repl**: tab completion targets `` instead of `new ` (Đỗ Trọng Hải) [#60319](https://github.com/nodejs/node/pull/60319) +- \[[`6f4a4f6c8e`](https://github.com/nodejs/node/commit/6f4a4f6c8e)] - **(SEMVER-MINOR)** **sea**: split sea binary manipulation code (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`46a2dad4db`](https://github.com/nodejs/node/commit/46a2dad4db)] - **sqlite**: avoid extra copy for large text binds (Ali Hassan) [#61580](https://github.com/nodejs/node/pull/61580) +- \[[`f91a377f7e`](https://github.com/nodejs/node/commit/f91a377f7e)] - **sqlite**: use DictionaryTemplate for run() result (Mert Can Altin) [#61432](https://github.com/nodejs/node/pull/61432) +- \[[`0e7571ae3e`](https://github.com/nodejs/node/commit/0e7571ae3e)] - **sqlite**: change approach to fix segfault SQLTagStore (Bart Louwers) [#60462](https://github.com/nodejs/node/pull/60462) +- \[[`8e8f70524a`](https://github.com/nodejs/node/commit/8e8f70524a)] - **sqlite**: reserve vectors space (Guilherme Araújo) [#61540](https://github.com/nodejs/node/pull/61540) +- \[[`c0ceb9b065`](https://github.com/nodejs/node/commit/c0ceb9b065)] - **(SEMVER-MINOR)** **sqlite**: enable defensive mode by default (Bart Louwers) [#61266](https://github.com/nodejs/node/pull/61266) +- \[[`33d8e8303b`](https://github.com/nodejs/node/commit/33d8e8303b)] - **(SEMVER-MINOR)** **sqlite**: add sqlite prepare options args (Guilherme Araújo) [#61311](https://github.com/nodejs/node/pull/61311) +- \[[`f0d8f37002`](https://github.com/nodejs/node/commit/f0d8f37002)] - **src**: elide heap allocation in structured clone implementation (Anna Henningsen) [#61703](https://github.com/nodejs/node/pull/61703) +- \[[`db478c4336`](https://github.com/nodejs/node/commit/db478c4336)] - **src**: use simdutf for one-byte string UTF-8 write in stringBytes (Mert Can Altin) [#61696](https://github.com/nodejs/node/pull/61696) +- \[[`563ab699eb`](https://github.com/nodejs/node/commit/563ab699eb)] - **(SEMVER-MINOR)** **src**: add initial support for ESM in embedder API (Joyee Cheung) [#61548](https://github.com/nodejs/node/pull/61548) +- \[[`da13186a15`](https://github.com/nodejs/node/commit/da13186a15)] - **src**: throw RangeError on failed ArrayBuffer BackingStore allocation (Chengzhong Wu) [#61480](https://github.com/nodejs/node/pull/61480) +- \[[`4c80031000`](https://github.com/nodejs/node/commit/4c80031000)] - **(SEMVER-MINOR)** **stream**: add bytes() method to stream/consumers (wantaek) [#60426](https://github.com/nodejs/node/pull/60426) +- \[[`f5233df4ff`](https://github.com/nodejs/node/commit/f5233df4ff)] - **(SEMVER-MINOR)** **stream**: do not pass `readable.compose()` output via `Readable.from()` (René) [#60907](https://github.com/nodejs/node/pull/60907) +- \[[`ad04a469c8`](https://github.com/nodejs/node/commit/ad04a469c8)] - **test**: restraint version replacement pattern in snapshots (Chengzhong Wu) [#61748](https://github.com/nodejs/node/pull/61748) +- \[[`2d3b4a8d65`](https://github.com/nodejs/node/commit/2d3b4a8d65)] - **test**: print stack immediately avoiding GC interleaving (Chengzhong Wu) [#61699](https://github.com/nodejs/node/pull/61699) +- \[[`38f43a6d4e`](https://github.com/nodejs/node/commit/38f43a6d4e)] - **test**: fix case-insensitive path matching on Windows (Matteo Collina) [#61682](https://github.com/nodejs/node/pull/61682) +- \[[`06513f5ff2`](https://github.com/nodejs/node/commit/06513f5ff2)] - **test**: fix flaky test-performance-eventloopdelay (Matteo Collina) [#61629](https://github.com/nodejs/node/pull/61629) +- \[[`9d79c66c61`](https://github.com/nodejs/node/commit/9d79c66c61)] - **test**: remove duplicate wpt tests (Filip Skokan) [#61617](https://github.com/nodejs/node/pull/61617) +- \[[`eac9f4f401`](https://github.com/nodejs/node/commit/eac9f4f401)] - **test**: fix race condition in watch mode tests (Matteo Collina) [#61615](https://github.com/nodejs/node/pull/61615) +- \[[`ecf5947575`](https://github.com/nodejs/node/commit/ecf5947575)] - **test**: update WPT for url to e3c46fdf55 (Node.js GitHub Bot) [#61602](https://github.com/nodejs/node/pull/61602) +- \[[`356ff5fece`](https://github.com/nodejs/node/commit/356ff5fece)] - **test**: use the skipIfNoWatch() utility function (Luigi Pinca) [#61531](https://github.com/nodejs/node/pull/61531) +- \[[`4b2187aea2`](https://github.com/nodejs/node/commit/4b2187aea2)] - **test**: unify assertSnapshot common patterns (Chengzhong Wu) [#61590](https://github.com/nodejs/node/pull/61590) +- \[[`8c25489d63`](https://github.com/nodejs/node/commit/8c25489d63)] - **test**: split test-fs-watch-ignore-\* (Luigi Pinca) [#61494](https://github.com/nodejs/node/pull/61494) +- \[[`43b8a2b7e7`](https://github.com/nodejs/node/commit/43b8a2b7e7)] - **test**: add some validation for JSON doc output (Antoine du Hamel) [#61413](https://github.com/nodejs/node/pull/61413) +- \[[`345a40fda3`](https://github.com/nodejs/node/commit/345a40fda3)] - **(SEMVER-MINOR)** **test**: use fixture directories for sea tests (Joyee Cheung) [#61167](https://github.com/nodejs/node/pull/61167) +- \[[`24cf6b8326`](https://github.com/nodejs/node/commit/24cf6b8326)] - **test**: reveal wpt evaluation errors in status files (Chengzhong Wu) [#61358](https://github.com/nodejs/node/pull/61358) +- \[[`d4034dfb62`](https://github.com/nodejs/node/commit/d4034dfb62)] - **test**: forbid use of named imports for fixtures (Antoine du Hamel) [#61228](https://github.com/nodejs/node/pull/61228) +- \[[`4f871ee897`](https://github.com/nodejs/node/commit/4f871ee897)] - **test**: enforce better never-settling-promise detection (Antoine du Hamel) [#60976](https://github.com/nodejs/node/pull/60976) +- \[[`8e9adedf02`](https://github.com/nodejs/node/commit/8e9adedf02)] - **test**: ensure assertions are reached on all tests (Antoine du Hamel) [#60845](https://github.com/nodejs/node/pull/60845) +- \[[`273832802e`](https://github.com/nodejs/node/commit/273832802e)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60763](https://github.com/nodejs/node/pull/60763) +- \[[`e06adcb52f`](https://github.com/nodejs/node/commit/e06adcb52f)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60760](https://github.com/nodejs/node/pull/60760) +- \[[`aeed0ccc02`](https://github.com/nodejs/node/commit/aeed0ccc02)] - **test**: use `RegExp.escape` to improve test reliability (Antoine du Hamel) [#60803](https://github.com/nodejs/node/pull/60803) +- \[[`74bcd0adab`](https://github.com/nodejs/node/commit/74bcd0adab)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60728](https://github.com/nodejs/node/pull/60728) +- \[[`407807b08e`](https://github.com/nodejs/node/commit/407807b08e)] - **test**: skip tests not passing without `NODE_OPTIONS` support (Antoine du Hamel) [#60912](https://github.com/nodejs/node/pull/60912) +- \[[`a9e70cefb0`](https://github.com/nodejs/node/commit/a9e70cefb0)] - **test**: ensure assertions are reached on more tests (Antoine du Hamel) [#60634](https://github.com/nodejs/node/pull/60634) +- \[[`21b23cd0d0`](https://github.com/nodejs/node/commit/21b23cd0d0)] - **test_runner**: fix test enqueue when test file has syntax error (Edy Silva) [#61573](https://github.com/nodejs/node/pull/61573) +- \[[`6a4de694b2`](https://github.com/nodejs/node/commit/6a4de694b2)] - **test_runner**: fix passing `expectFailure` (Moshe Atlow) [#61568](https://github.com/nodejs/node/pull/61568) +- \[[`6640de2b0f`](https://github.com/nodejs/node/commit/6640de2b0f)] - **test_runner**: differentiate todo and failure styles (Moshe Atlow) [#61564](https://github.com/nodejs/node/pull/61564) +- \[[`972f82411d`](https://github.com/nodejs/node/commit/972f82411d)] - **(SEMVER-MINOR)** **test_runner**: add env option to run function (Ethan Arrowood) [#61367](https://github.com/nodejs/node/pull/61367) +- \[[`d77f98c4b6`](https://github.com/nodejs/node/commit/d77f98c4b6)] - **(SEMVER-MINOR)** **test_runner**: support expecting a test-case to fail (Jacob Smith) [#60669](https://github.com/nodejs/node/pull/60669) +- \[[`f98986cbb9`](https://github.com/nodejs/node/commit/f98986cbb9)] - **tools**: switch to ARM runners on GHA jobs (Antoine du Hamel) [#61903](https://github.com/nodejs/node/pull/61903) +- \[[`034589dd93`](https://github.com/nodejs/node/commit/034589dd93)] - **tools**: avoid building twice in coverage jobs (Antoine du Hamel) [#61899](https://github.com/nodejs/node/pull/61899) +- \[[`e50e2f00bb`](https://github.com/nodejs/node/commit/e50e2f00bb)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61759](https://github.com/nodejs/node/pull/61759) +- \[[`f658f48ccb`](https://github.com/nodejs/node/commit/f658f48ccb)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61734](https://github.com/nodejs/node/pull/61734) +- \[[`65c77d74ff`](https://github.com/nodejs/node/commit/65c77d74ff)] - **tools**: use ubuntu-latest runner in `notify-on-push` workflow (Antoine du Hamel) [#61742](https://github.com/nodejs/node/pull/61742) +- \[[`605905556a`](https://github.com/nodejs/node/commit/605905556a)] - **tools**: enforce removal of `lts-watch-*` labels on release proposals (Antoine du Hamel) [#61672](https://github.com/nodejs/node/pull/61672) +- \[[`f0f98d4c03`](https://github.com/nodejs/node/commit/f0f98d4c03)] - **tools**: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) [#61663](https://github.com/nodejs/node/pull/61663) +- \[[`ab63ddf354`](https://github.com/nodejs/node/commit/ab63ddf354)] - **tools**: add LIEF to license builder (Chengzhong Wu) [#61523](https://github.com/nodejs/node/pull/61523) +- \[[`8a0f6192c9`](https://github.com/nodejs/node/commit/8a0f6192c9)] - **tools**: enforce trailing commas in `test/es-module` (Antoine du Hamel) [#60891](https://github.com/nodejs/node/pull/60891) +- \[[`4afbbcf39e`](https://github.com/nodejs/node/commit/4afbbcf39e)] - **tools**: enforce trailing commas in `test/sequential` (Antoine du Hamel) [#60892](https://github.com/nodejs/node/pull/60892) +- \[[`4c1abf752c`](https://github.com/nodejs/node/commit/4c1abf752c)] - **tools,win**: upgrade install additional tools to Visual Studio 2026 (Mike McCready) [#61562](https://github.com/nodejs/node/pull/61562) +- \[[`8e900af6ba`](https://github.com/nodejs/node/commit/8e900af6ba)] - **(SEMVER-MINOR)** **util**: add convertProcessSignalToExitCode utility (Erick Wendel) [#60963](https://github.com/nodejs/node/pull/60963) + +Windows 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0-x64.msi \ +Windows ARM 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0-arm64.msi \ +Windows 64-bit Binary: https://nodejs.org/dist/v24.14.0/win-x64/node.exe \ +Windows ARM 64-bit Binary: https://nodejs.org/dist/v24.14.0/win-arm64/node.exe \ +macOS 64-bit Installer: https://nodejs.org/dist/v24.14.0/node-v24.14.0.pkg \ +macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-darwin-arm64.tar.gz \ +macOS Intel 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-darwin-x64.tar.gz \ +Linux 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-x64.tar.xz \ +Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-ppc64le.tar.xz \ +Linux s390x 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-s390x.tar.xz \ +AIX 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-aix-ppc64.tar.gz \ +ARMv8 64-bit Binary: https://nodejs.org/dist/v24.14.0/node-v24.14.0-linux-arm64.tar.xz \ +Source Code: https://nodejs.org/dist/v24.14.0/node-v24.14.0.tar.gz \ +Other release files: https://nodejs.org/dist/v24.14.0/ \ +Documentation: https://nodejs.org/docs/v24.14.0/api/ + +### SHASUMS + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +27ac48f94c7e88f4b0c5d9077f0fec10256289c7dca21e0d9f82cbaad13d6e3d node-v24.14.0-aix-ppc64.tar.gz +63d07136eead197b66c58f4ee6c4343e0b4027cc3a1f852ada45b081250e21b7 node-v24.14.0-arm64.msi +a1a54f46a750d2523d628d924aab61758a51c9dad3e0238beb14141be9615dd3 node-v24.14.0-darwin-arm64.tar.gz +448f01d4dfa5a21d280cfbacf00abc22b51aad52f38db0f4886e0e5d00df541d node-v24.14.0-darwin-arm64.tar.xz +f2879eb810e25993a0578e5d878930266fd2eafcffe9f2839b3d8db354d4879e node-v24.14.0-darwin-x64.tar.gz +c17b234c4db75eeb03c3a86664428ec25ee849e1ebbe8cb05c4a70f282187866 node-v24.14.0-darwin-x64.tar.xz +bc1505c8e2b2b1f7b7cf3808bf53691e5d110c816d1bc1a48075195c5dcafe05 node-v24.14.0-headers.tar.gz +87d1a7d80599ce330de0f0832f6b85c7d93c5be7b6a203725afa016405227988 node-v24.14.0-headers.tar.xz +f44740cd218de8127f1c44c41510a3a740fa5c9c8d1cdce1c3bedada79f3cde7 node-v24.14.0-linux-arm64.tar.gz +e7adfca03d9173276114a6f2219df1a7d25e1bfd6bbd771d3f839118a2053094 node-v24.14.0-linux-arm64.tar.xz +83b263f9c2ea946c0c4a15c3caea6470dc49fe0beb6f33dfd29aa9128250637a node-v24.14.0-linux-ppc64le.tar.gz +33beedaf3ff82ee511cfc5ca0cc7076161a54a982321d061409299e27bc5f41e node-v24.14.0-linux-ppc64le.tar.xz +8fa220a1f7b7769605c2e929fdbf736822997bf4cf88a3db05188eabd7712328 node-v24.14.0-linux-s390x.tar.gz +d133f1aac2d6dbaa4de9fe183184e57adbc9f45d62e37f55a864c8af92d4cb5a node-v24.14.0-linux-s390x.tar.xz +dbf5b8665dec15e59e6359a517fefb47b23fdb9152d8def975b9bca3dfc6d355 node-v24.14.0-linux-x64.tar.gz +41cd79bb7877c81605a9e68ec4c91547774f46a40c67a17e34d7179ef11729df node-v24.14.0-linux-x64.tar.xz +5514f833980f172088ce22883000d1aea9db9eea41cb1a306154eb4f333ec1c0 node-v24.14.0.pkg +852c73dd5b6ba15b231d036da6312dbcdabd6295adc3940586f3187b77731cf3 node-v24.14.0.tar.gz +9fe025ef4028aba95d16e7810518bf4a5e8abfb0bdc07d8a3fdbb0afd538d77f node-v24.14.0.tar.xz +6cd8d95799dc70e89585522e5cfe5d576b6ac44f6ff5afc0a4b0318c9f7aa8cd node-v24.14.0-win-arm64.7z +88d36e8109736a2fa9bdc596f2cf507a3c52c69cdf96e54f8acd473ec14be853 node-v24.14.0-win-arm64.zip +90f18586ef8ca13dd94e7f571d27b8a5120116fea218bcc41e3ef6697dcbc777 node-v24.14.0-win-x64.7z +313fa40c0d7b18575821de8cb17483031fe07d95de5994f6f435f3b345f85c66 node-v24.14.0-win-x64.zip +e75802e82be6875b03b63377a9e12e4416799d0fb6dd460f0605d29144d386a6 node-v24.14.0-x64.msi +8c5fd45a4a1fd3cc4a6f07da8803b05194108906cb6fb7d962448a12582a5922 win-arm64/node.exe +59f1c42e5962e9333bb1673c21125b7a7ce9a6908299aee8f7673803c2e24212 win-arm64/node.lib +5a7c7261b40fd4e39bc4410e23d31e48857d737d830434ea2dc215fec892a8dd win-arm64/node_pdb.7z +3bf09a2b133893208ad48b3c439dad570aa4cc2a5fe842bc137f795aa4e72944 win-arm64/node_pdb.zip +63c259c81e5d472b5f11c8d506070130cb04a1ecf84b80377a34ed6ec9048088 win-x64/node.exe +35fcdd35d3d22e283c0e2e095cc43ef676301bb85f950c344a73d59231bd7e61 win-x64/node.lib +802553494ca6c8049aa542ddcc54e2616a0a1819ae23f894767a4110a1ec0b5a win-x64/node_pdb.7z +b8e1aee14390b2828ede1f4b89ed8a8b0c5da40e43fbfe14dc4b42dc14ed3710 win-x64/node_pdb.zip +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCAAdFiEEEI9StI21e7DMQ5spl7AUGb2S+AoFAmmdxM8ACgkQl7AUGb2S ++AqtGg//VNRQePlUD0cVBO0AnCnV4LlkmkIdxYDmD1Myk2blqC1rvLsGDj1kwfp0 +cOrDI1PvnYrasK9N5Q1cF+g9ZJDgv59v8lLkPYng8hYPiVgyYE4e00QSPMebDzwu +jwIZtNdR0sdD6nAq3WLQQFqkvytj2y4OhL1w4+OiXomBXYRC7CU3/ZwzEsrJ/od6 +QeO10KezF3luDGiMXVoJzn1pxm6Itvcdyqu0DZkBsbX6IrzR+Kbb2wv/dWUafas+ +PM9J89QhV4UTgRSHo6O5FnG6ZStcOpa/o4yCWmO9EA1GBv/n3Jnr/uk8zNE2ODwe +TV0OiJnbUrCx0dQQTx42wVQL+Ust/PLu5m5csnO0R5E/QCVBxwwF6+CnPyNP6HgF +fA+2PoKuv5pSCbfupfJg0KLSxToX6p3wO02sRzQnpzY8usdEel071n6246TjYRqM +o4nS5FgLlBLd1djKjOna62QYsKtOvldZ1+R96rQBOW7oYeAG9vggGcbuWN2y2zvu +ctcVpC3+cj2wEQ/N2NQOz/Zd//m8j19XgIoNxHuU6w0xGXxHnyTpJhrd5bI3L3R4 +QMK+v67uM9qVLPPZdEFbRpwVv/UhtM2jewcQtwnplo2dseWO3n+CXgRs8DOK5JKX +RN7ozy+bCPm3ayU6O01MmUiUaD9PQA/lIE2M4jZ9qfmhWuTlk20= +=i+aM +-----END PGP SIGNATURE----- +``` diff --git a/apps/site/pages/en/blog/release/v25.7.0.md b/apps/site/pages/en/blog/release/v25.7.0.md new file mode 100644 index 0000000000000..3d9683ea36f98 --- /dev/null +++ b/apps/site/pages/en/blog/release/v25.7.0.md @@ -0,0 +1,182 @@ +--- +date: '2026-02-24T15:38:46.266Z' +category: release +title: Node.js 25.7.0 (Current) +layout: blog-post +author: Ruy Adorno +--- + +## 2026-02-24, Version 25.7.0 (Current), @ruyadorno prepared by @aduh95 + +### Notable Changes + +- \[[`b0a79b10f0`](https://github.com/nodejs/node/commit/b0a79b10f0)] - **(SEMVER-MINOR)** **http2**: add http1Options for HTTP/1 fallback configuration (Amol Yadav) [#61713](https://github.com/nodejs/node/pull/61713) +- \[[`2d874dfb8e`](https://github.com/nodejs/node/commit/2d874dfb8e)] - **(SEMVER-MINOR)** **sea**: support ESM entry point in SEA (Joyee Cheung) [#61813](https://github.com/nodejs/node/pull/61813) +- \[[`ee59127664`](https://github.com/nodejs/node/commit/ee59127664)] - **sqlite**: mark as release candidate (Matteo Collina) [#61262](https://github.com/nodejs/node/pull/61262) +- \[[`608736e19e`](https://github.com/nodejs/node/commit/608736e19e)] - **(SEMVER-MINOR)** **stream**: rename `Duplex.toWeb()` type option to `readableType` (René) [#61632](https://github.com/nodejs/node/pull/61632) +- \[[`a43375999f`](https://github.com/nodejs/node/commit/a43375999f)] - **(SEMVER-MINOR)** **test_runner**: show interrupted test on SIGINT (Matteo Collina) [#61676](https://github.com/nodejs/node/pull/61676) + +### Commits + +- \[[`ab4375e141`](https://github.com/nodejs/node/commit/ab4375e141)] - **benchmark**: add startup benchmark for ESM entrypoint (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769) +- \[[`8d83d8026b`](https://github.com/nodejs/node/commit/8d83d8026b)] - **build**: add temporal test on GHA windows (Chengzhong Wu) [#61810](https://github.com/nodejs/node/pull/61810) +- \[[`aab153eec3`](https://github.com/nodejs/node/commit/aab153eec3)] - **build**: skip sscache action on non-main branches (Joyee Cheung) [#61790](https://github.com/nodejs/node/pull/61790) +- \[[`9e40fb93bc`](https://github.com/nodejs/node/commit/9e40fb93bc)] - **build**: use path-ignore in GHA coverage-windows.yml (Chengzhong Wu) [#61811](https://github.com/nodejs/node/pull/61811) +- \[[`4896653361`](https://github.com/nodejs/node/commit/4896653361)] - **build**: generate_config_gypi.py generates valid JSON (Shelley Vohr) [#61791](https://github.com/nodejs/node/pull/61791) +- \[[`bb82b44de0`](https://github.com/nodejs/node/commit/bb82b44de0)] - **build**: build with v8 gdbjit support on supported platform (Joyee Cheung) [#61010](https://github.com/nodejs/node/pull/61010) +- \[[`e7173a093a`](https://github.com/nodejs/node/commit/e7173a093a)] - **build**: show cc outputs when version detection failed (Chengzhong Wu) [#61700](https://github.com/nodejs/node/pull/61700) +- \[[`848050d38f`](https://github.com/nodejs/node/commit/848050d38f)] - **build,win**: add WinGet Visual Studio 2022 Build Tools Edition config (Mike McCready) [#61652](https://github.com/nodejs/node/pull/61652) +- \[[`938841e1cd`](https://github.com/nodejs/node/commit/938841e1cd)] - **crypto**: always return certificate serial numbers as uppercase (Anna Henningsen) [#61752](https://github.com/nodejs/node/pull/61752) +- \[[`dba9001d6f`](https://github.com/nodejs/node/commit/dba9001d6f)] - **deps**: upgrade npm to 11.10.1 (npm team) [#61892](https://github.com/nodejs/node/pull/61892) +- \[[`75c8e18d2f`](https://github.com/nodejs/node/commit/75c8e18d2f)] - **deps**: update nbytes to 0.1.3 (Node.js GitHub Bot) [#61879](https://github.com/nodejs/node/pull/61879) +- \[[`4ca1597f25`](https://github.com/nodejs/node/commit/4ca1597f25)] - **deps**: remove stale OpenSSL arch configs (René) [#61834](https://github.com/nodejs/node/pull/61834) +- \[[`c4f298c729`](https://github.com/nodejs/node/commit/c4f298c729)] - **deps**: update llhttp to 9.3.1 (Node.js GitHub Bot) [#61827](https://github.com/nodejs/node/pull/61827) +- \[[`7d63a2df93`](https://github.com/nodejs/node/commit/7d63a2df93)] - **deps**: V8: cherry-pick 64b36b441179 (Rafael Magrin) [#61712](https://github.com/nodejs/node/pull/61712) +- \[[`241a6b7088`](https://github.com/nodejs/node/commit/241a6b7088)] - **deps**: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) [#61731](https://github.com/nodejs/node/pull/61731) +- \[[`eec896c0e0`](https://github.com/nodejs/node/commit/eec896c0e0)] - **deps**: V8: backport 6a0a25abaed3 (Vivian Wang) [#61666](https://github.com/nodejs/node/pull/61666) +- \[[`5a9874af09`](https://github.com/nodejs/node/commit/5a9874af09)] - **doc**: clarify status of feature request issues (Antoine du Hamel) [#61505](https://github.com/nodejs/node/pull/61505) +- \[[`0648ac64aa`](https://github.com/nodejs/node/commit/0648ac64aa)] - **doc**: add esm and cjs examples to node:vm (Alfredo González) [#61498](https://github.com/nodejs/node/pull/61498) +- \[[`8b38718294`](https://github.com/nodejs/node/commit/8b38718294)] - **doc**: clarify build environment is trusted in threat model (Matteo Collina) [#61865](https://github.com/nodejs/node/pull/61865) +- \[[`10e86818ee`](https://github.com/nodejs/node/commit/10e86818ee)] - **doc**: remove incorrect mention of `module` in `typescript.md` (Rob Palmer) [#61839](https://github.com/nodejs/node/pull/61839) +- \[[`b50376f527`](https://github.com/nodejs/node/commit/b50376f527)] - **doc**: simplify addAbortListener example (Chemi Atlow) [#61842](https://github.com/nodejs/node/pull/61842) +- \[[`dea0e7a856`](https://github.com/nodejs/node/commit/dea0e7a856)] - **doc**: fix typo in --disable-wasm-trap-handler description (Dmytro Semchuk) [#61820](https://github.com/nodejs/node/pull/61820) +- \[[`57ac1f5aa0`](https://github.com/nodejs/node/commit/57ac1f5aa0)] - **doc**: clean up globals.md (René) [#61822](https://github.com/nodejs/node/pull/61822) +- \[[`4c30d2bb4d`](https://github.com/nodejs/node/commit/4c30d2bb4d)] - **doc**: remove obsolete Boxstarter automated install (Mike McCready) [#61785](https://github.com/nodejs/node/pull/61785) +- \[[`db610b9e32`](https://github.com/nodejs/node/commit/db610b9e32)] - **doc**: clarify async caveats for `events.once()` (René) [#61572](https://github.com/nodejs/node/pull/61572) +- \[[`b4a826b11c`](https://github.com/nodejs/node/commit/b4a826b11c)] - **doc**: update Juan's security steward info (Juan José) [#61754](https://github.com/nodejs/node/pull/61754) +- \[[`7d9cc5dc54`](https://github.com/nodejs/node/commit/7d9cc5dc54)] - **doc**: fix methods being documented as properties in `process.md` (Antoine du Hamel) [#61765](https://github.com/nodejs/node/pull/61765) +- \[[`aa0362c26a`](https://github.com/nodejs/node/commit/aa0362c26a)] - **doc**: add riscv64 info into platform list (Lu Yahan) [#42251](https://github.com/nodejs/node/pull/42251) +- \[[`9b0101b65b`](https://github.com/nodejs/node/commit/9b0101b65b)] - **doc**: fix dropdown menu being obscured at <600px due to stacking context (Jeff) [#61735](https://github.com/nodejs/node/pull/61735) +- \[[`df2c65b3e4`](https://github.com/nodejs/node/commit/df2c65b3e4)] - **doc**: fix spacing in process message event (Aviv Keller) [#61756](https://github.com/nodejs/node/pull/61756) +- \[[`01018559f5`](https://github.com/nodejs/node/commit/01018559f5)] - **doc**: move describe/it aliases section before expectFailure (Luca Raveri) [#61567](https://github.com/nodejs/node/pull/61567) +- \[[`49443583af`](https://github.com/nodejs/node/commit/49443583af)] - **doc**: fix broken links of net.md (YuSheng Chen) [#61673](https://github.com/nodejs/node/pull/61673) +- \[[`af7c927a2a`](https://github.com/nodejs/node/commit/af7c927a2a)] - **doc**: clean up Windows code snippet in `child_process.md` (reillylm) [#61422](https://github.com/nodejs/node/pull/61422) +- \[[`221648a687`](https://github.com/nodejs/node/commit/221648a687)] - **esm**: update outdated FIXME comment in translators.js (Karan Mangtani) [#61715](https://github.com/nodejs/node/pull/61715) +- \[[`4484e14a31`](https://github.com/nodejs/node/commit/4484e14a31)] - **events**: don't call resume after close (Сковорода Никита Андреевич) [#60548](https://github.com/nodejs/node/pull/60548) +- \[[`4cecbe1f53`](https://github.com/nodejs/node/commit/4cecbe1f53)] - **fs**: add `throwIfNoEntry` option for fs.stat and fs.promises.stat (Juan José) [#61178](https://github.com/nodejs/node/pull/61178) +- \[[`2c94967684`](https://github.com/nodejs/node/commit/2c94967684)] - **http**: remove redundant keepAliveTimeoutBuffer assignment (Efe) [#61743](https://github.com/nodejs/node/pull/61743) +- \[[`435f3dd8e4`](https://github.com/nodejs/node/commit/435f3dd8e4)] - **http**: attach error handler to socket synchronously in onSocket (RajeshKumar11) [#61770](https://github.com/nodejs/node/pull/61770) +- \[[`ce0ebd853d`](https://github.com/nodejs/node/commit/ce0ebd853d)] - **http**: fix keep-alive socket reuse race in requestOnFinish (Martin Slota) [#61710](https://github.com/nodejs/node/pull/61710) +- \[[`8103a78b6a`](https://github.com/nodejs/node/commit/8103a78b6a)] - **http2**: add strictSingleValueFields option to relax header validation (Tim Perry) [#59917](https://github.com/nodejs/node/pull/59917) +- \[[`b0a79b10f0`](https://github.com/nodejs/node/commit/b0a79b10f0)] - **(SEMVER-MINOR)** **http2**: add http1Options for HTTP/1 fallback configuration (Amol Yadav) [#61713](https://github.com/nodejs/node/pull/61713) +- \[[`c589b6b23c`](https://github.com/nodejs/node/commit/c589b6b23c)] - **http2**: fix FileHandle leak in respondWithFile (sangwook) [#61707](https://github.com/nodejs/node/pull/61707) +- \[[`df477202ae`](https://github.com/nodejs/node/commit/df477202ae)] - **lib**: reduce cycles in esm loader and load it in snapshot (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769) +- \[[`deda50a819`](https://github.com/nodejs/node/commit/deda50a819)] - **lib**: remove top-level getOptionValue() calls in lib/internal/modules (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769) +- \[[`b1c1ddff79`](https://github.com/nodejs/node/commit/b1c1ddff79)] - **lib**: optimize styleText when validateStream is false (Rafael Gonzaga) [#61792](https://github.com/nodejs/node/pull/61792) +- \[[`df334f7fa0`](https://github.com/nodejs/node/commit/df334f7fa0)] - **meta**: use SCCACHE_GHA_ENABLED for shared build workflows (René) [#61640](https://github.com/nodejs/node/pull/61640) +- \[[`e1b2cd605f`](https://github.com/nodejs/node/commit/e1b2cd605f)] - **meta**: bump cachix/install-nix-action from 31.9.0 to 31.9.1 (dependabot\[bot]) [#61910](https://github.com/nodejs/node/pull/61910) +- \[[`24b858547a`](https://github.com/nodejs/node/commit/24b858547a)] - **module**: fix extensionless entry with explicit type=commonjs (Yuya Inoue) [#61600](https://github.com/nodejs/node/pull/61600) +- \[[`4f2f8006bd`](https://github.com/nodejs/node/commit/4f2f8006bd)] - **repl**: fix FileHandle leak in history initialization (sangwook) [#61706](https://github.com/nodejs/node/pull/61706) +- \[[`2d874dfb8e`](https://github.com/nodejs/node/commit/2d874dfb8e)] - **(SEMVER-MINOR)** **sea**: support ESM entry point in SEA (Joyee Cheung) [#61813](https://github.com/nodejs/node/pull/61813) +- \[[`ee59127664`](https://github.com/nodejs/node/commit/ee59127664)] - **sqlite**: mark as release candidate (Matteo Collina) [#61262](https://github.com/nodejs/node/pull/61262) +- \[[`f14ff14473`](https://github.com/nodejs/node/commit/f14ff14473)] - **src**: remove unnecessary `c_str()` conversions in diagnostic messages (Anna Henningsen) [#61786](https://github.com/nodejs/node/pull/61786) +- \[[`26a09e541d`](https://github.com/nodejs/node/commit/26a09e541d)] - **src**: use bool literals in TraceEnvVarOptions (Tobias Nießen) [#61425](https://github.com/nodejs/node/pull/61425) +- \[[`62b0758c47`](https://github.com/nodejs/node/commit/62b0758c47)] - **src**: fix `--build-sea` default executable path (Alex Schwartz) [#61708](https://github.com/nodejs/node/pull/61708) +- \[[`b5724921b1`](https://github.com/nodejs/node/commit/b5724921b1)] - **src**: track allocations made by zstd streams (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717) +- \[[`3d1d1523a5`](https://github.com/nodejs/node/commit/3d1d1523a5)] - **src**: do not store compression methods on Brotli classes (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717) +- \[[`b2915cda77`](https://github.com/nodejs/node/commit/b2915cda77)] - **src**: extract zlib allocation tracking into its own class (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717) +- \[[`3032a7e3c6`](https://github.com/nodejs/node/commit/3032a7e3c6)] - **src**: release memory for zstd contexts in `Close()` (Anna Henningsen) [#61717](https://github.com/nodejs/node/pull/61717) +- \[[`bc2287db74`](https://github.com/nodejs/node/commit/bc2287db74)] - **src**: add more checks and clarify docs for external references (Joyee Cheung) [#61719](https://github.com/nodejs/node/pull/61719) +- \[[`5daf282e33`](https://github.com/nodejs/node/commit/5daf282e33)] - **src**: fix cjs_lexer external reference registration (Joyee Cheung) [#61718](https://github.com/nodejs/node/pull/61718) +- \[[`fb2db5f947`](https://github.com/nodejs/node/commit/fb2db5f947)] - **src**: support import() and import.meta in embedder-run modules (Joyee Cheung) [#61654](https://github.com/nodejs/node/pull/61654) +- \[[`e146591002`](https://github.com/nodejs/node/commit/e146591002)] - **stream**: fix decoded fromList chunk boundary check (Thomas Watson) [#61884](https://github.com/nodejs/node/pull/61884) +- \[[`065200a5f0`](https://github.com/nodejs/node/commit/065200a5f0)] - **stream**: add fast paths for webstreams read and pipeTo (Matteo Collina) [#61807](https://github.com/nodejs/node/pull/61807) +- \[[`608736e19e`](https://github.com/nodejs/node/commit/608736e19e)] - **(SEMVER-MINOR)** **stream**: rename `Duplex.toWeb()` type option to `readableType` (René) [#61632](https://github.com/nodejs/node/pull/61632) +- \[[`51587d684d`](https://github.com/nodejs/node/commit/51587d684d)] - **test**: fix typos in test files (Daijiro Wachi) [#61408](https://github.com/nodejs/node/pull/61408) +- \[[`17b2361360`](https://github.com/nodejs/node/commit/17b2361360)] - **test**: allow filtering async internal frames in assertSnapshot (Joyee Cheung) [#61769](https://github.com/nodejs/node/pull/61769) +- \[[`3f6a5f5f7f`](https://github.com/nodejs/node/commit/3f6a5f5f7f)] - **test**: unify assertSnapshot stacktrace transform (Chengzhong Wu) [#61665](https://github.com/nodejs/node/pull/61665) +- \[[`c8dac320de`](https://github.com/nodejs/node/commit/c8dac320de)] - **test**: check stability block position in API markdown (René) [#58590](https://github.com/nodejs/node/pull/58590) +- \[[`6809ef8d04`](https://github.com/nodejs/node/commit/6809ef8d04)] - **test**: adapt buffer test for v8 sandbox (Shelley Vohr) [#61772](https://github.com/nodejs/node/pull/61772) +- \[[`60f5771a74`](https://github.com/nodejs/node/commit/60f5771a74)] - **test**: update FileAPI tests from WPT (Ms2ger) [#61750](https://github.com/nodejs/node/pull/61750) +- \[[`d2fef4a31a`](https://github.com/nodejs/node/commit/d2fef4a31a)] - **test**: update WPT for WebCryptoAPI to 7cbe7e8ed9 (Node.js GitHub Bot) [#61729](https://github.com/nodejs/node/pull/61729) +- \[[`d7a87f14da`](https://github.com/nodejs/node/commit/d7a87f14da)] - **test**: update WPT for url to efb889eb4c (Node.js GitHub Bot) [#61728](https://github.com/nodejs/node/pull/61728) +- \[[`b6ae1fc4b8`](https://github.com/nodejs/node/commit/b6ae1fc4b8)] - **test**: split test-embedding.js and run tests in parallel (Joyee Cheung) [#61571](https://github.com/nodejs/node/pull/61571) +- \[[`a43375999f`](https://github.com/nodejs/node/commit/a43375999f)] - **(SEMVER-MINOR)** **test_runner**: show interrupted test on SIGINT (Matteo Collina) [#61676](https://github.com/nodejs/node/pull/61676) +- \[[`1c02aa09b0`](https://github.com/nodejs/node/commit/1c02aa09b0)] - **test_runner**: fix suite rerun (Moshe Atlow) [#61775](https://github.com/nodejs/node/pull/61775) +- \[[`47821ec609`](https://github.com/nodejs/node/commit/47821ec609)] - **tools**: switch to ARM runners on GHA jobs (Antoine du Hamel) [#61903](https://github.com/nodejs/node/pull/61903) +- \[[`1630a56370`](https://github.com/nodejs/node/commit/1630a56370)] - **tools**: avoid building twice in coverage jobs (Antoine du Hamel) [#61899](https://github.com/nodejs/node/pull/61899) +- \[[`89318b0a02`](https://github.com/nodejs/node/commit/89318b0a02)] - **tools**: fix auto-start-ci (Antoine du Hamel) [#61900](https://github.com/nodejs/node/pull/61900) +- \[[`ee107f5e84`](https://github.com/nodejs/node/commit/ee107f5e84)] - **tools**: do not checkout repo in `auto-start-ci.yml` (Antoine du Hamel) [#61874](https://github.com/nodejs/node/pull/61874) +- \[[`c2de1fa619`](https://github.com/nodejs/node/commit/c2de1fa619)] - **tools**: cache V8 build on test-shared workflow (Antoine du Hamel) [#61860](https://github.com/nodejs/node/pull/61860) +- \[[`111c77ec94`](https://github.com/nodejs/node/commit/111c77ec94)] - **tools**: automate updates for test/fixtures/test426 (Rich Trott) [#60978](https://github.com/nodejs/node/pull/60978) +- \[[`ea8886f7d5`](https://github.com/nodejs/node/commit/ea8886f7d5)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61759](https://github.com/nodejs/node/pull/61759) +- \[[`9db82ba786`](https://github.com/nodejs/node/commit/9db82ba786)] - **tools**: bump unist-util-visit in /tools/doc in the doc group (dependabot\[bot]) [#61646](https://github.com/nodejs/node/pull/61646) +- \[[`c8e58c56b9`](https://github.com/nodejs/node/commit/c8e58c56b9)] - **tools**: bump the eslint group in /tools/eslint with 6 updates (dependabot\[bot]) [#61628](https://github.com/nodejs/node/pull/61628) +- \[[`2518ec77e8`](https://github.com/nodejs/node/commit/2518ec77e8)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61734](https://github.com/nodejs/node/pull/61734) +- \[[`c5ad2beba3`](https://github.com/nodejs/node/commit/c5ad2beba3)] - **tools**: fix small inconsistencies in JSON doc output (Antoine du Hamel) [#61757](https://github.com/nodejs/node/pull/61757) +- \[[`a9f90bee0a`](https://github.com/nodejs/node/commit/a9f90bee0a)] - **tools**: use ubuntu-latest runner in `notify-on-push` workflow (Antoine du Hamel) [#61742](https://github.com/nodejs/node/pull/61742) +- \[[`30e38182d9`](https://github.com/nodejs/node/commit/30e38182d9)] - **watch**: get flags from execArgv (Efe) [#61779](https://github.com/nodejs/node/pull/61779) +- \[[`da1a08a3a5`](https://github.com/nodejs/node/commit/da1a08a3a5)] - **worker**: eliminate race condition in process.cwd() (giulioAZ) [#61664](https://github.com/nodejs/node/pull/61664) +- \[[`dfac82a235`](https://github.com/nodejs/node/commit/dfac82a235)] - **zlib**: add support for brotli compression dictionary (Andy Weiss) [#61763](https://github.com/nodejs/node/pull/61763) + +Windows 64-bit Installer: https://nodejs.org/dist/v25.7.0/node-v25.7.0-x64.msi \ +Windows ARM 64-bit Installer: https://nodejs.org/dist/v25.7.0/node-v25.7.0-arm64.msi \ +Windows 64-bit Binary: https://nodejs.org/dist/v25.7.0/win-x64/node.exe \ +Windows ARM 64-bit Binary: https://nodejs.org/dist/v25.7.0/win-arm64/node.exe \ +macOS 64-bit Installer: https://nodejs.org/dist/v25.7.0/node-v25.7.0.pkg \ +macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-darwin-arm64.tar.gz \ +macOS Intel 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-darwin-x64.tar.gz \ +Linux 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-linux-x64.tar.xz \ +Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-linux-ppc64le.tar.xz \ +Linux s390x 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-linux-s390x.tar.xz \ +AIX 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-aix-ppc64.tar.gz \ +ARMv8 64-bit Binary: https://nodejs.org/dist/v25.7.0/node-v25.7.0-linux-arm64.tar.xz \ +Source Code: https://nodejs.org/dist/v25.7.0/node-v25.7.0.tar.gz \ +Other release files: https://nodejs.org/dist/v25.7.0/ \ +Documentation: https://nodejs.org/docs/v25.7.0/api/ + +### SHASUMS + +``` +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +500805d140c6eae59705c12eeb4c59954c872b345be3a880dd59d7fa4d134abb node-v25.7.0-aix-ppc64.tar.gz +39d400db485fdb261981849a15c52c1f051ff8356c0f75c02bb09151498c290d node-v25.7.0-arm64.msi +d4e3cfe5e6bddda41ba0c683e37329632465b93371ddc538c763578758d5bc35 node-v25.7.0-darwin-arm64.tar.gz +6745e61fc00c87f20a3584591275d55b1712891eaa06d28a6bf7e97bc91262ec node-v25.7.0-darwin-arm64.tar.xz +f83929f4a84ae5a88c2a5333466b100dd101658063592497626ae9eea15b3b1b node-v25.7.0-darwin-x64.tar.gz +4843ab17e74d088a6d20d6a30589d648205a261c5b9c7f0d50235610aff2ff1b node-v25.7.0-darwin-x64.tar.xz +62b6ce65475bd3ac88f4f3f7e31c8c9f35b9c9631296e82a62670b72d1234fe1 node-v25.7.0-headers.tar.gz +b6646b9ceba75246021f3f6db4e9863dc6ee9ec87d93a3be1382fb9da1f6e1ad node-v25.7.0-headers.tar.xz +3a73c9145547b5d2e29491b0ed6a37b95306b784eb83cdb2361f1e2e76fa237f node-v25.7.0-linux-arm64.tar.gz +4aad827d8ecce8143624e09b98946e23c96a270a1407e9c13a56ceec163b4205 node-v25.7.0-linux-arm64.tar.xz +c2b5e162efb21a1d41c026bf5b08b3798e2e813b969031b1ed069b167cce77a0 node-v25.7.0-linux-ppc64le.tar.gz +59076fc29ca75b73caeafa91bb627e0c5fe083b0b7d3077389459bfea7712b78 node-v25.7.0-linux-ppc64le.tar.xz +c53a17fb58b0d8ec3001268bc69fbd4e3ec97034b7fde7c95b422d5734c52cd5 node-v25.7.0-linux-s390x.tar.gz +048749b91d9d0946b684a487c465adf56bff983949d8610ba6c0951ae61142ce node-v25.7.0-linux-s390x.tar.xz +033ad3a740d62d3c7e3aaa1fecfeec16a719d4af33ab030666bf171057b070d9 node-v25.7.0-linux-x64.tar.gz +2af25e8fc301bb3bbf02874f7d07e1d00483dc143fbd0eb56ee844c17849168e node-v25.7.0-linux-x64.tar.xz +477eb8f5499904b2eb76212e0f14f40965c693795b0af8e1500cc7aeaa1c18b8 node-v25.7.0.pkg +2a36edd1c8cc4d275464ff873a199937c8237c13f6943db5f7879f8a83ceddbe node-v25.7.0.tar.gz +8f13df7e8f79c3e8f227ad713c754592293c98f70e9e29e8fcee974e62a000e1 node-v25.7.0.tar.xz +297368ae8d82b138ad604a52578b4e2144e802d4c2855be8d3ea60ef7bf6b455 node-v25.7.0-win-arm64.7z +8b824eb15ae95d24bd082cee9637f74d5850ba5c8649bd65c5f108e360835f1e node-v25.7.0-win-arm64.zip +388fd0d55294854a132adb3bd4deee8b5afef431b7d8a3babc34ae0931ca00e8 node-v25.7.0-win-x64.7z +4a66eac416c30474fe9c3f0ef7d4ffc85a8797cbc35f6b8566dfbce02789a9c4 node-v25.7.0-win-x64.zip +5cb49889fd408ab9fe19471b0ab52badaf5724e47a6f824b0e11cafd09576838 node-v25.7.0-x64.msi +3e29601f88368da267420815f89e7bc73d67de7793a60b70a25c0c25dd6c6843 win-arm64/node.exe +47750ee99207e5b621671565852cf7385f27bf664470886b9437137342a497c9 win-arm64/node.lib +c9357f6f020191a72159acfcffc5f1c0828d841dc8d247e9af37798b97e55dca win-arm64/node_pdb.7z +279f034bebb2750f18e9bfe54688c301b517398f0cf6e1e09df57d90ab8b552d win-arm64/node_pdb.zip +6d27b928592496d739f97eb0dec6818fd7b23089ef4626f8967ece5907d23d36 win-x64/node.exe +f7201b932d898bdbf78aee7add288d2263c4791f1502068ad11b6c14675c6324 win-x64/node.lib +406b61316a6d06a0e7396d98ada6e3bd76de5ca9d8fc454fafc867c59341c060 win-x64/node_pdb.7z +1e0e09b139fa8e116b339a9f8c27f5235ffee457d6ee4bc133f07671a5aa5521 win-x64/node_pdb.zip +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCAAdFiEEEI9StI21e7DMQ5spl7AUGb2S+AoFAmmdxT4ACgkQl7AUGb2S ++Aq13A/+LZPSUeuaxLXPqztZV4GYmt35Z1JEyXou4AZp2asnAVEvLKy49hIm82cQ +Carn4LlOKLXuvEh0ZdYs53iT+xX+gIJfTQdXC/Kjaa61Rj4rdXeCP6qL1WuL39oN +FWYyk/ubhrFFWC8KV0UbGGf9Zv9wICSSDsFsdfxpkuO0aOfpC3Bj1I2j8JrlHlTP +L9mgZJs47ymlx5GGVIvK/niPBJh0znzDilQjAAj8txU6QSD+GA75ovkBkQd5s3jV +sgGTz0tRCUn8II7enmV/dfDgF9b50xP4k6vyqsNaV3WDtra7rTgehnYXgBK8lqiz +ajcaXNDd1+25pL7bkth1icAFODvZqOv8lywUlsdX1ufg8ZIP8+k/+H5Q7vsBCApH ++wapAEG5sUzN+tydJD0Xn73UNlOo+r+kLWndFD27Pfg/v4oP76fX9JNEEUEvryxT +qsqk87hL9dZkID+wOvgDpZR2md09bq2Ra4Jq1K20VaRjlfvd9zI8vcxktIdUZ2ha +7Y333TasoBl1zlM507X2Z7vvnTDWOKsZ4mDtPwSFXy09puJBexa32X0BWU0TzPqR +Qeb3b3voysIwk9KoILOrzdukb3BKXeIJul3Y/1vAyO3kolLFE/O+80Sm6TxfZ8SX +mDM7qdAGxX+TJ/AJHf+bBkEjxYim0VMwplD0LrT5HQvQ3qmzauk= +=58BT +-----END PGP SIGNATURE----- +```