Skip to content

Commit f6e6e7a

Browse files
committed
Merge tag 'v20.19.4' into node-v20.19.4-nsolid-v5.7.5-release
2025-07-15 Node.js v20.19.4 Iron (LTS) Release Git-EVTag-v0-SHA512: d3580a970f708874ed1565bdd27d100ce60bcb1c6f62cc72ae6510763854e12c8b4801e642d1bc55abcec7da736f92ca4d23480d0b4bba906e1bcea9e44ca4b1
2 parents 430c9d4 + b08ee29 commit f6e6e7a

291 files changed

Lines changed: 54647 additions & 40286 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-tarball.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
echo "TAR_DIR=$RUNNER_TEMP/`basename tarballs/*.tar.gz .tar.gz`" >> $GITHUB_ENV
9797
- name: Copy directories needed for testing
9898
run: |
99-
cp -r tools/eslint $TAR_DIR/tools
99+
cp -r tools/node_modules $TAR_DIR/tools
100100
cp -r tools/eslint-rules $TAR_DIR/tools
101101
- name: Build
102102
run: |

.github/workflows/build-windows.yml

Lines changed: 0 additions & 53 deletions
This file was deleted.

.github/workflows/test-linux.yml

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,11 @@ permissions:
3535
jobs:
3636
test-linux:
3737
if: github.event.pull_request.draft == false
38-
runs-on: ${{ matrix.os }}
39-
strategy:
40-
fail-fast: false
41-
matrix:
42-
os: [ubuntu-24.04, ubuntu-24.04-arm]
38+
runs-on: ubuntu-24.04
4339
steps:
4440
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4541
with:
4642
persist-credentials: false
47-
path: node
4843
- name: Set up Python ${{ env.PYTHON_VERSION }}
4944
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
5045
with:
@@ -56,13 +51,6 @@ jobs:
5651
- name: Environment Information
5752
run: npx envinfo
5853
- name: Build
59-
run: make -C node build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
54+
run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn"
6055
- name: Test
61-
run: make -C node run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9"
62-
- name: Re-run test in a folder whose name contains unusual chars
63-
run: |
64-
mv node "$DIR"
65-
cd "$DIR"
66-
./tools/test.py --flaky-tests keep_retrying -p actions -j 4
67-
env:
68-
DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…`
56+
run: make run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9"

.github/workflows/test-macos.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
- name: Set up sccache
5959
uses: Mozilla-Actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
6060
with:
61-
version: v0.8.1
61+
version: v0.10.0
6262
- name: Environment Information
6363
run: npx envinfo
6464
# The `npm ci` for this step fails a lot as part of the Test step. Run it

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ release.
3535
</tr>
3636
<tr>
3737
<td valign="top">
38-
<b><a href="doc/changelogs/CHANGELOG_V20.md#20.19.2">20.19.2</a></b><br/>
38+
<b><a href="doc/changelogs/CHANGELOG_V20.md#20.19.4">20.19.4</a></b><br/>
39+
<a href="doc/changelogs/CHANGELOG_V20.md#20.19.3">20.19.3</a><br/>
40+
<a href="doc/changelogs/CHANGELOG_V20.md#20.19.2">20.19.2</a><br/>
3941
<a href="doc/changelogs/CHANGELOG_V20.md#20.19.1">20.19.1</a><br/>
4042
<a href="doc/changelogs/CHANGELOG_V20.md#20.19.0">20.19.0</a><br/>
4143
<a href="doc/changelogs/CHANGELOG_V20.md#20.18.3">20.18.3</a><br/>

Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,7 @@ with-code-cache test-code-cache:
170170
$(warning '$@' target is a noop)
171171

172172
out/Makefile: config.gypi common.gypi node.gyp \
173-
deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
174-
deps/simdutf/simdutf.gyp deps/ada/ada.gyp \
173+
deps/*/*.gyp \
175174
tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
176175
tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
177176
$(PYTHON) tools/gyp_node.py -f make

common.gypi

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Reset this number to 0 on major V8 upgrades.
3838
# Increment by one for each non-official patch applied to deps/v8.
39-
'v8_embedder_string': '-node.26',
39+
'v8_embedder_string': '-node.29',
4040

4141
##### V8 defaults for Node.js #####
4242

@@ -271,6 +271,9 @@
271271
# Defines these mostly for node-gyp to pickup.
272272
'defines': [
273273
'_GLIBCXX_USE_CXX11_ABI=1',
274+
# This help forks when building Node.js on a 32-bit arch as
275+
# libuv is always compiled with _FILE_OFFSET_BITS=64
276+
'_FILE_OFFSET_BITS=64'
274277
],
275278

276279
# Forcibly disable -Werror. We support a wide range of compilers, it's

deps/corepack/CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
# Changelog
22

3+
## [0.32.0](https://github.com/nodejs/corepack/compare/v0.31.0...v0.32.0) (2025-02-28)
4+
5+
6+
### Features
7+
8+
* add limited support for `devEngines` ([#643](https://github.com/nodejs/corepack/issues/643)) ([b456268](https://github.com/nodejs/corepack/commit/b4562688513f23e37e37b0d69a0daff33ca84c8d))
9+
* add more informative error when fetching latest stable fails ([#644](https://github.com/nodejs/corepack/issues/644)) ([53b1fe7](https://github.com/nodejs/corepack/commit/53b1fe75c47c06bd72a8b8f8bb699a47c9ca32fb))
10+
* add support for `.corepack.env` ([#642](https://github.com/nodejs/corepack/issues/642)) ([9b95b46](https://github.com/nodejs/corepack/commit/9b95b46f05e50fe1c60f05309c210ba8fe4e23c5))
11+
* update package manager versions ([#617](https://github.com/nodejs/corepack/issues/617)) ([b83bb5e](https://github.com/nodejs/corepack/commit/b83bb5ec150980c998b9c7053dff307d912cb508))
12+
13+
14+
### Bug Fixes
15+
16+
* do not resolve fallback descriptor when `packageManager` is defined ([#632](https://github.com/nodejs/corepack/issues/632)) ([12e77e5](https://github.com/nodejs/corepack/commit/12e77e506946d42a0de9ce8e68d75af8454d6776))
17+
* **doc:** fix link to proxy library ([#636](https://github.com/nodejs/corepack/issues/636)) ([bae0839](https://github.com/nodejs/corepack/commit/bae08397943d4b99437389b4286546361091f4b3))
18+
* replace explicit with specify as verb ([#665](https://github.com/nodejs/corepack/issues/665)) ([351d86c](https://github.com/nodejs/corepack/commit/351d86c20226a8c18bfe212be27401f2908b1595))
19+
* **use:** do not throw on invalid `packageManager` ([#663](https://github.com/nodejs/corepack/issues/663)) ([4be72f6](https://github.com/nodejs/corepack/commit/4be72f6941afa0c9b2b7d26635016bb7b560df8a))
20+
321
## [0.31.0](https://github.com/nodejs/corepack/compare/v0.30.0...v0.31.0) (2025-01-27)
422

523

deps/corepack/README.md

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,25 @@ is distributed along with Node.js itself.
4141

4242
</details>
4343

44+
<details><summary>Update Corepack using npm</summary>
45+
46+
To install the latest version of Corepack, use:
47+
48+
```shell
49+
npm install -g corepack@latest
50+
```
51+
52+
If Corepack was installed on your system using a Node.js Windows Installer
53+
`.msi` package then you might need to remove it before attempting to install a
54+
different version of Corepack using npm. You can select the Modify option of the
55+
Node.js app settings to access the Windows Installer feature selection, and on
56+
the "corepack manager" feature of the Node.js `.msi` package by selecting
57+
"Entire feature will be unavailable". See
58+
[Repair apps and programs in Windows](https://support.microsoft.com/en-us/windows/repair-apps-and-programs-in-windows-e90eefe4-d0a2-7c1b-dd59-949a9030f317)
59+
for instructions on accessing the Windows apps page to modify settings.
60+
61+
</details>
62+
4463
<details><summary>Install Corepack from source</summary>
4564

4665
See [`CONTRIBUTING.md`](./CONTRIBUTING.md).
@@ -94,6 +113,35 @@ use in the archive).
94113
}
95114
```
96115

116+
#### `devEngines.packageManager`
117+
118+
When a `devEngines.packageManager` field is defined, and is an object containing
119+
a `"name"` field (can also optionally contain `version` and `onFail` fields),
120+
Corepack will use it to validate you're using a compatible package manager.
121+
122+
Depending on the value of `devEngines.packageManager.onFail`:
123+
124+
- if set to `ignore`, Corepack won't print any warning or error.
125+
- if unset or set to `error`, Corepack will throw an error in case of a mismatch.
126+
- if set to `warn` or some other value, Corepack will print a warning in case
127+
of mismatch.
128+
129+
If the top-level `packageManager` field is missing, Corepack will use the
130+
package manager defined in `devEngines.packageManager` – in which case you must
131+
provide a specific version in `devEngines.packageManager.version`, ideally with
132+
a hash, as explained in the previous section:
133+
134+
```json
135+
{
136+
"devEngines":{
137+
"packageManager": {
138+
"name": "yarn",
139+
"version": "3.2.3+sha224.953c8233f7a92884eee2de69a1b92d1f2ec1655e66d08071ba9a02fa"
140+
}
141+
}
142+
}
143+
```
144+
97145
## Known Good Releases
98146

99147
When running Corepack within projects that don't list a supported package
@@ -227,6 +275,7 @@ it.
227275

228276
Unlike `corepack use` this command doesn't take a package manager name nor a
229277
version range, as it will always select the latest available version from the
278+
range specified in `devEngines.packageManager.version`, or fallback to the
230279
same major line. Should you need to upgrade to a new major, use an explicit
231280
`corepack use {name}@latest` call (or simply `corepack use {name}`).
232281

@@ -248,6 +297,7 @@ same major line. Should you need to upgrade to a new major, use an explicit
248297
set to `1` to have the URL shown. By default, when Corepack is called
249298
explicitly (e.g. `corepack pnpm …`), it is set to `0`; when Corepack is called
250299
implicitly (e.g. `pnpm …`), it is set to `1`.
300+
The default value cannot be overridden in a `.corepack.env` file.
251301
When standard input is a TTY and no CI environment is detected, Corepack will
252302
ask for user input before starting the download.
253303

@@ -273,6 +323,14 @@ same major line. Should you need to upgrade to a new major, use an explicit
273323
project. This means that it will always use the system-wide package manager
274324
regardless of what is being specified in the project's `packageManager` field.
275325

326+
- `COREPACK_ENV_FILE` can be set to `0` to request Corepack to not attempt to
327+
load `.corepack.env`; it can be set to a path to specify a different env file.
328+
Only keys that start with `COREPACK_` and are not in the exception list
329+
(`COREPACK_ENABLE_DOWNLOAD_PROMPT` and `COREPACK_ENV_FILE` are ignored)
330+
will be taken into account.
331+
For Node.js 18.x users, this setting has no effect as that version doesn't
332+
support parsing of `.env` files.
333+
276334
- `COREPACK_HOME` can be set in order to define where Corepack should install
277335
the package managers. By default it is set to `%LOCALAPPDATA%\node\corepack`
278336
on Windows, and to `$HOME/.cache/node/corepack` everywhere else.
@@ -294,7 +352,7 @@ same major line. Should you need to upgrade to a new major, use an explicit
294352
empty password, explicitly set `COREPACK_NPM_PASSWORD` to an empty string.
295353

296354
- `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` are supported through
297-
[`node-proxy-agent`](https://github.com/TooTallNate/node-proxy-agent).
355+
[`proxy-from-env`](https://github.com/Rob--W/proxy-from-env).
298356

299357
- `COREPACK_INTEGRITY_KEYS` can be set to an empty string or `0` to
300358
instruct Corepack to skip integrity checks, or to a JSON string containing

0 commit comments

Comments
 (0)