|
9 | 9 | </tr> |
10 | 10 | <tr> |
11 | 11 | <td> |
| 12 | +<a href="#20.20.1">20.20.1</a><br/> |
12 | 13 | <a href="#20.20.0">20.20.0</a><br/> |
13 | 14 | <a href="#20.19.6">20.19.6</a><br/> |
14 | 15 | <a href="#20.19.5">20.19.5</a><br/> |
|
76 | 77 | * [io.js](CHANGELOG_IOJS.md) |
77 | 78 | * [Archive](CHANGELOG_ARCHIVE.md) |
78 | 79 |
|
| 80 | +<a id="20.20.1"></a> |
| 81 | + |
| 82 | +## 2026-03-05, Version 20.20.1 'Iron' (LTS), @marco-ippolito |
| 83 | + |
| 84 | +### Notable Changes |
| 85 | + |
| 86 | +* \[[`91a66e671c`](https://github.com/nodejs/node/commit/91a66e671c)] - **build**: test on Python 3.14 (Christian Clauss) [#59983](https://github.com/nodejs/node/pull/59983) |
| 87 | +* \[[`f66056054b`](https://github.com/nodejs/node/commit/f66056054b)] - **crypto**: update root certificates to NSS 3.119 (Node.js GitHub Bot) [#61419](https://github.com/nodejs/node/pull/61419) |
| 88 | +* \[[`80feacaddb`](https://github.com/nodejs/node/commit/80feacaddb)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#60741](https://github.com/nodejs/node/pull/60741) |
| 89 | + |
| 90 | +### Commits |
| 91 | + |
| 92 | +* \[[`6f580d5399`](https://github.com/nodejs/node/commit/6f580d5399)] - **assert**: fix deepEqual always return true on URL (Xuguang Mei) [#50853](https://github.com/nodejs/node/pull/50853) |
| 93 | +* \[[`91a66e671c`](https://github.com/nodejs/node/commit/91a66e671c)] - **build**: test on Python 3.14 (Christian Clauss) [#59983](https://github.com/nodejs/node/pull/59983) |
| 94 | +* \[[`cc4f7af6f3`](https://github.com/nodejs/node/commit/cc4f7af6f3)] - **build**: skip sscache action on non-main branches (Joyee Cheung) [#61790](https://github.com/nodejs/node/pull/61790) |
| 95 | +* \[[`f66056054b`](https://github.com/nodejs/node/commit/f66056054b)] - **crypto**: update root certificates to NSS 3.119 (Node.js GitHub Bot) [#61419](https://github.com/nodejs/node/pull/61419) |
| 96 | +* \[[`80feacaddb`](https://github.com/nodejs/node/commit/80feacaddb)] - **crypto**: update root certificates to NSS 3.117 (Node.js GitHub Bot) [#60741](https://github.com/nodejs/node/pull/60741) |
| 97 | +* \[[`fa88cc07e2`](https://github.com/nodejs/node/commit/fa88cc07e2)] - **crypto**: ensure documented RSA-PSS saltLength default is used (Filip Skokan) [#60662](https://github.com/nodejs/node/pull/60662) |
| 98 | +* \[[`bf2415ea1e`](https://github.com/nodejs/node/commit/bf2415ea1e)] - **deps**: update minimatch to 10.2.2 (Node.js GitHub Bot) [#61830](https://github.com/nodejs/node/pull/61830) |
| 99 | +* \[[`fc56c1a2cb`](https://github.com/nodejs/node/commit/fc56c1a2cb)] - **deps**: V8: backport 6a0a25abaed3 (Vivian Wang) [#61687](https://github.com/nodejs/node/pull/61687) |
| 100 | +* \[[`0a6f543c86`](https://github.com/nodejs/node/commit/0a6f543c86)] - **deps**: update googletest to 5a9c3f9e8d9b90bbbe8feb32902146cb8f7c1757 (Node.js GitHub Bot) [#61731](https://github.com/nodejs/node/pull/61731) |
| 101 | +* \[[`60d535cb40`](https://github.com/nodejs/node/commit/60d535cb40)] - **deps**: update googletest to 56efe3983185e3f37e43415d1afa97e3860f187f (Node.js GitHub Bot) [#61605](https://github.com/nodejs/node/pull/61605) |
| 102 | +* \[[`fb50a77d4a`](https://github.com/nodejs/node/commit/fb50a77d4a)] - **deps**: update googletest to 85087857ad10bd407cd6ed2f52f7ea9752db621f (Node.js GitHub Bot) [#61417](https://github.com/nodejs/node/pull/61417) |
| 103 | +* \[[`ddb36883c1`](https://github.com/nodejs/node/commit/ddb36883c1)] - **deps**: update icu to 78.2 (Node.js GitHub Bot) [#60523](https://github.com/nodejs/node/pull/60523) |
| 104 | +* \[[`5cc0b3f9c8`](https://github.com/nodejs/node/commit/5cc0b3f9c8)] - **deps**: update acorn-walk to 8.3.5 (Node.js GitHub Bot) [#61928](https://github.com/nodejs/node/pull/61928) |
| 105 | +* \[[`34d4427473`](https://github.com/nodejs/node/commit/34d4427473)] - **deps**: update acorn to 8.16.0 (Node.js GitHub Bot) [#61925](https://github.com/nodejs/node/pull/61925) |
| 106 | +* \[[`8249f96c40`](https://github.com/nodejs/node/commit/8249f96c40)] - **deps**: update llhttp to 9.3.1 (Node.js GitHub Bot) [#61827](https://github.com/nodejs/node/pull/61827) |
| 107 | +* \[[`a0476a2576`](https://github.com/nodejs/node/commit/a0476a2576)] - **deps**: brotli: cherry-pick e230f474b87 (liujiahui) [#61003](https://github.com/nodejs/node/pull/61003) |
| 108 | +* \[[`feed278cd6`](https://github.com/nodejs/node/commit/feed278cd6)] - **deps**: update zlib to 1.3.1-e00f703 (Node.js GitHub Bot) [#61135](https://github.com/nodejs/node/pull/61135) |
| 109 | +* \[[`ab6d450dbe`](https://github.com/nodejs/node/commit/ab6d450dbe)] - **deps**: update cjs-module-lexer to 2.2.0 (Node.js GitHub Bot) [#61271](https://github.com/nodejs/node/pull/61271) |
| 110 | +* \[[`fe2e48d7eb`](https://github.com/nodejs/node/commit/fe2e48d7eb)] - **deps**: update timezone to 2025c (Node.js GitHub Bot) [#61138](https://github.com/nodejs/node/pull/61138) |
| 111 | +* \[[`45f289a530`](https://github.com/nodejs/node/commit/45f289a530)] - **deps**: update googletest to 065127f1e4b46c5f14fc73cf8d323c221f9dc68e (Node.js GitHub Bot) [#61055](https://github.com/nodejs/node/pull/61055) |
| 112 | +* \[[`9377812dd0`](https://github.com/nodejs/node/commit/9377812dd0)] - **deps**: update zlib to 1.3.1-63d7e16 (Node.js GitHub Bot) [#60898](https://github.com/nodejs/node/pull/60898) |
| 113 | +* \[[`ad30baaa59`](https://github.com/nodejs/node/commit/ad30baaa59)] - **deps**: update brotli to 1.2.0 (Node.js GitHub Bot) [#60540](https://github.com/nodejs/node/pull/60540) |
| 114 | +* \[[`09259532ef`](https://github.com/nodejs/node/commit/09259532ef)] - **deps**: update googletest to 1b96fa13f549387b7549cc89e1a785cf143a1a50 (Node.js GitHub Bot) [#60739](https://github.com/nodejs/node/pull/60739) |
| 115 | +* \[[`aa8bdb6886`](https://github.com/nodejs/node/commit/aa8bdb6886)] - **deps**: update cjs-module-lexer to 2.1.1 (Node.js GitHub Bot) [#60646](https://github.com/nodejs/node/pull/60646) |
| 116 | +* \[[`cc849fde27`](https://github.com/nodejs/node/commit/cc849fde27)] - **deps**: update googletest to 279f847 (Node.js GitHub Bot) [#60219](https://github.com/nodejs/node/pull/60219) |
| 117 | +* \[[`a99ba553a2`](https://github.com/nodejs/node/commit/a99ba553a2)] - **deps**: update googletest to 50b8600 (Node.js GitHub Bot) [#59955](https://github.com/nodejs/node/pull/59955) |
| 118 | +* \[[`6349a79f5f`](https://github.com/nodejs/node/commit/6349a79f5f)] - **deps**: update googletest to 7e17b15 (Node.js GitHub Bot) [#59131](https://github.com/nodejs/node/pull/59131) |
| 119 | +* \[[`8ba759f1a0`](https://github.com/nodejs/node/commit/8ba759f1a0)] - **deps**: update googletest to 35b75a2 (Node.js GitHub Bot) [#58710](https://github.com/nodejs/node/pull/58710) |
| 120 | +* \[[`927d906850`](https://github.com/nodejs/node/commit/927d906850)] - **deps**: update googletest to e9092b1 (Node.js GitHub Bot) [#58565](https://github.com/nodejs/node/pull/58565) |
| 121 | +* \[[`bf8919f5c2`](https://github.com/nodejs/node/commit/bf8919f5c2)] - **deps**: update googletest to 0bdccf4 (Node.js GitHub Bot) [#57380](https://github.com/nodejs/node/pull/57380) |
| 122 | +* \[[`ae6231dac0`](https://github.com/nodejs/node/commit/ae6231dac0)] - **deps**: update googletest to e235eb3 (Node.js GitHub Bot) [#56873](https://github.com/nodejs/node/pull/56873) |
| 123 | +* \[[`0561c62e85`](https://github.com/nodejs/node/commit/0561c62e85)] - **deps**: update minimatch to 10.1.2 (Node.js GitHub Bot) [#61732](https://github.com/nodejs/node/pull/61732) |
| 124 | +* \[[`f0ef221b0d`](https://github.com/nodejs/node/commit/f0ef221b0d)] - **deps**: update minimatch to 10.1.1 (Node.js GitHub Bot) [#60543](https://github.com/nodejs/node/pull/60543) |
| 125 | +* \[[`15bd0da404`](https://github.com/nodejs/node/commit/15bd0da404)] - **deps**: update archs files for openssl (Antoine du Hamel) [#61912](https://github.com/nodejs/node/pull/61912) |
| 126 | +* \[[`04d439323f`](https://github.com/nodejs/node/commit/04d439323f)] - **deps**: upgrade openssl sources to openssl-3.0.19 (Antoine du Hamel) [#61912](https://github.com/nodejs/node/pull/61912) |
| 127 | +* \[[`2ea16d3bd6`](https://github.com/nodejs/node/commit/2ea16d3bd6)] - **deps**: update corepack to 0.34.6 (Node.js GitHub Bot) [#61510](https://github.com/nodejs/node/pull/61510) |
| 128 | +* \[[`622f973d1c`](https://github.com/nodejs/node/commit/622f973d1c)] - **deps**: update corepack to 0.34.5 (Node.js GitHub Bot) [#60842](https://github.com/nodejs/node/pull/60842) |
| 129 | +* \[[`2cd265d8b9`](https://github.com/nodejs/node/commit/2cd265d8b9)] - **deps**: update corepack to 0.34.4 (Node.js GitHub Bot) [#60643](https://github.com/nodejs/node/pull/60643) |
| 130 | +* \[[`65e839687b`](https://github.com/nodejs/node/commit/65e839687b)] - **deps**: update corepack to 0.34.2 (Node.js GitHub Bot) [#60550](https://github.com/nodejs/node/pull/60550) |
| 131 | +* \[[`2dc99d2771`](https://github.com/nodejs/node/commit/2dc99d2771)] - **dns**: fix Windows SRV ECONNREFUSED by adjusting c-ares fallback detection (notvivek12) [#61453](https://github.com/nodejs/node/pull/61453) |
| 132 | +* \[[`d33e2f6daa`](https://github.com/nodejs/node/commit/d33e2f6daa)] - **doc**: fix typo in http.md (Michael Solomon) [#59354](https://github.com/nodejs/node/pull/59354) |
| 133 | +* \[[`e3eaab6824`](https://github.com/nodejs/node/commit/e3eaab6824)] - **doc**: fix grammar in global dispatcher usage (Eng Zer Jun) [#59344](https://github.com/nodejs/node/pull/59344) |
| 134 | +* \[[`5f60840534`](https://github.com/nodejs/node/commit/5f60840534)] - **doc**: fix typo in `test/common/README.md` (Yoo) [#59180](https://github.com/nodejs/node/pull/59180) |
| 135 | +* \[[`00362e417f`](https://github.com/nodejs/node/commit/00362e417f)] - **doc**: fix broken sentence in `URL.parse` (Superchupu) [#59164](https://github.com/nodejs/node/pull/59164) |
| 136 | +* \[[`4c795ba114`](https://github.com/nodejs/node/commit/4c795ba114)] - **doc**: fix typo in writing-test.md (SeokHun) [#59123](https://github.com/nodejs/node/pull/59123) |
| 137 | +* \[[`88a6cf2945`](https://github.com/nodejs/node/commit/88a6cf2945)] - **doc**: fix `fetch` subsections in `globals.md` (Antoine du Hamel) [#58933](https://github.com/nodejs/node/pull/58933) |
| 138 | +* \[[`e9d1d92c2f`](https://github.com/nodejs/node/commit/e9d1d92c2f)] - **doc**: fix wrong RFC number in http2 (Deokjin Kim) [#58753](https://github.com/nodejs/node/pull/58753) |
| 139 | +* \[[`2424f53796`](https://github.com/nodejs/node/commit/2424f53796)] - **doc**: punctuation fix for Node-API versioning clarification (Jiacai Liu) [#58599](https://github.com/nodejs/node/pull/58599) |
| 140 | +* \[[`f549588dec`](https://github.com/nodejs/node/commit/f549588dec)] - **doc**: fix typo of file `http.md`, `outgoingMessage.setTimeout` section (yusheng chen) [#58188](https://github.com/nodejs/node/pull/58188) |
| 141 | +* \[[`b3d6683e7b`](https://github.com/nodejs/node/commit/b3d6683e7b)] - **doc**: support toolchain with Visual Studio 2019 & 2022 only (Mike McCready) [#61450](https://github.com/nodejs/node/pull/61450) |
| 142 | +* \[[`8fdde5d110`](https://github.com/nodejs/node/commit/8fdde5d110)] - **doc**: fix v20 changelog after security release (Marco Ippolito) [#61371](https://github.com/nodejs/node/pull/61371) |
| 143 | +* \[[`6a44459dd8`](https://github.com/nodejs/node/commit/6a44459dd8)] - **http**: fix keep-alive not timing out after post-request empty line (Shima Ryuhei) [#58178](https://github.com/nodejs/node/pull/58178) |
| 144 | +* \[[`5ec7d1eba0`](https://github.com/nodejs/node/commit/5ec7d1eba0)] - **http2**: validate initialWindowSize per HTTP/2 spec (Matteo Collina) [#61402](https://github.com/nodejs/node/pull/61402) |
| 145 | +* \[[`5c091d5a96`](https://github.com/nodejs/node/commit/5c091d5a96)] - **meta**: persist sccache daemon until end of build workflows (René) [#61639](https://github.com/nodejs/node/pull/61639) |
| 146 | +* \[[`183353aba0`](https://github.com/nodejs/node/commit/183353aba0)] - **path,win**: fix bug in resolve and normalize (Hüseyin Açacak) [#55623](https://github.com/nodejs/node/pull/55623) |
| 147 | +* \[[`dbe9e5091b`](https://github.com/nodejs/node/commit/dbe9e5091b)] - **src**: fix flags argument offset in JSUdpWrap (Weixie Cui) [#61948](https://github.com/nodejs/node/pull/61948) |
| 148 | +* \[[`443168311e`](https://github.com/nodejs/node/commit/443168311e)] - **test**: mark stringbytes-external-max flaky on AIX (Stewart X Addison) [#60995](https://github.com/nodejs/node/pull/60995) |
| 149 | +* \[[`722793f2d2`](https://github.com/nodejs/node/commit/722793f2d2)] - **test**: mark stringbytes-external-exceed-max tests as flaky on AIX (Joyee Cheung) [#60565](https://github.com/nodejs/node/pull/60565) |
| 150 | +* \[[`929f7dccac`](https://github.com/nodejs/node/commit/929f7dccac)] - **test**: fix flaky test-performance-eventloopdelay (Matteo Collina) [#61629](https://github.com/nodejs/node/pull/61629) |
| 151 | +* \[[`a00cd9dfc8`](https://github.com/nodejs/node/commit/a00cd9dfc8)] - **test**: fix flaky test-worker-message-port-transfer-filehandle test (Alex Yang) [#59158](https://github.com/nodejs/node/pull/59158) |
| 152 | +* \[[`718c6ff067`](https://github.com/nodejs/node/commit/718c6ff067)] - **test**: account for truthy signal in flaky async\_hooks tests (Darshan Sen) [#58478](https://github.com/nodejs/node/pull/58478) |
| 153 | +* \[[`29ed1f91b1`](https://github.com/nodejs/node/commit/29ed1f91b1)] - **test**: mark `test-http2-debug` as flaky on LinuxONE (Richard Lau) [#58494](https://github.com/nodejs/node/pull/58494) |
| 154 | +* \[[`33c20dc5b7`](https://github.com/nodejs/node/commit/33c20dc5b7)] - **test**: set `test-fs-cp` as flaky (Stefan Stojanovic) [#56799](https://github.com/nodejs/node/pull/56799) |
| 155 | +* \[[`e86bdaefd6`](https://github.com/nodejs/node/commit/e86bdaefd6)] - **test**: mark `test-esm-loader-hooks-inspect-wait` flaky (Richard Lau) [#56803](https://github.com/nodejs/node/pull/56803) |
| 156 | +* \[[`6320cd0721`](https://github.com/nodejs/node/commit/6320cd0721)] - **test**: skip strace test with shared openssl (Richard Lau) [#61987](https://github.com/nodejs/node/pull/61987) |
| 157 | +* \[[`11deb1ddea`](https://github.com/nodejs/node/commit/11deb1ddea)] - **tools**: make nodedownload module compatible with Python 3.14 (Lumír 'Frenzy' Balhar) [#58752](https://github.com/nodejs/node/pull/58752) |
| 158 | +* \[[`6cf9b5786e`](https://github.com/nodejs/node/commit/6cf9b5786e)] - **tools**: enforce removal of `lts-watch-*` labels on release proposals (Antoine du Hamel) [#61672](https://github.com/nodejs/node/pull/61672) |
| 159 | +* \[[`cd4161499c`](https://github.com/nodejs/node/commit/cd4161499c)] - **tools**: use ubuntu-slim runner in meta GitHub Actions (Tierney Cyren) [#61663](https://github.com/nodejs/node/pull/61663) |
| 160 | +* \[[`6dc2a99a0d`](https://github.com/nodejs/node/commit/6dc2a99a0d)] - **tools**: validate release commit diff as part of `lint-release-proposal` (Antoine du Hamel) [#61440](https://github.com/nodejs/node/pull/61440) |
| 161 | +* \[[`5014f22332`](https://github.com/nodejs/node/commit/5014f22332)] - **tools**: add read permission to workflows that read contents (Antoine du Hamel) [#58255](https://github.com/nodejs/node/pull/58255) |
| 162 | +* \[[`6c3ad2a5a3`](https://github.com/nodejs/node/commit/6c3ad2a5a3)] - **tools**: switch to ARM runners on GHA jobs (Antoine du Hamel) [#61903](https://github.com/nodejs/node/pull/61903) |
| 163 | +* \[[`1abada9c34`](https://github.com/nodejs/node/commit/1abada9c34)] - **tools**: avoid building twice in coverage jobs (Antoine du Hamel) [#61899](https://github.com/nodejs/node/pull/61899) |
| 164 | +* \[[`f260e40127`](https://github.com/nodejs/node/commit/f260e40127)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61759](https://github.com/nodejs/node/pull/61759) |
| 165 | +* \[[`64beca5e01`](https://github.com/nodejs/node/commit/64beca5e01)] - **tools**: use ubuntu-slim runner in GHA (Antoine du Hamel) [#61734](https://github.com/nodejs/node/pull/61734) |
| 166 | + |
79 | 167 | <a id="20.20.0"></a> |
80 | 168 |
|
81 | 169 | ## 2026-01-13, Version 20.20.0 'Iron' (LTS), @marco-ippolito |
|
0 commit comments