Skip to content

Commit ee9e068

Browse files
authored
Merge branch 'main' into v8-wasm-compile-options
2 parents 29540f2 + 3a30bca commit ee9e068

1,231 files changed

Lines changed: 37705 additions & 15959 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/label-pr-config.yml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ subSystemLabels:
1515
/^src\/uv\./: c++, libuv
1616
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
1717
/^src\/node_os/: c++, os
18+
/^src\/permission\//: c++, permission
1819
/^src\/(?:node_main|signal_)/: c++, process
1920
/^src\/timer[_s]/: c++, timers
2021
/^src\/node_root_certs/: c++, tls
@@ -102,6 +103,7 @@ subSystemLabels:
102103
/^lib\/test.js$/: test_runner
103104
/^lib\/v8.js$/: v8 module
104105
/^lib\/internal\/url\.js$/: whatwg-url
106+
/^lib\/internal\/process\/permission\.js$/: permission
105107
/^lib\/internal\/modules\/esm/: esm
106108
/^lib\/internal\/modules/: module
107109
/^lib\/internal\/source_map/: source maps
@@ -116,6 +118,13 @@ subSystemLabels:
116118

117119
exlusiveLabels:
118120
# More specific tests
121+
/^test\/(?:parallel|sequential)\/test-(?:[^/]+-)?permission(?:-|\.)/: test, permission
122+
/^test\/ffi\/test-ffi-permissions?(?:-|\.)/: test, permission
123+
/^test\/addons\/no-addons\/permission\.js$/: test, addons, permission
124+
/^test\/es-module\/test-[^/]*-permission(?:-|\.)/: test, esm, permission
125+
/^test\/module-hooks\/test-[^/]*-permission(?:-|\.)/: test, module, loaders, permission
126+
/^test\/fixtures\/permission\//: test, permission
127+
/^test\/fixtures\/rc\/permission-namespace\.json$/: test, permission
119128
/^test\/addons\//: test, addons
120129
/^test\/debugger/: test, debugger
121130
/^test\/doctool\//: test, doc, tools
@@ -150,6 +159,7 @@ exlusiveLabels:
150159
# test_runner documentation
151160
/^doc\/api\/test.md$/: doc, test_runner
152161
# Automatically tag JS subsystem-specific API doc changes
162+
/^doc\/api\/permissions\.md$/: doc, permission
153163
/^doc\/api\/(\w+)\.md$/: doc, $1
154164
# Add deprecations label to PRs that affect doc/api/deprecations.md
155165
/^doc\/api\/deprecations.md$/: doc, deprecations
@@ -162,6 +172,7 @@ exlusiveLabels:
162172
/^doc\//: doc
163173

164174
# More specific benchmarks
175+
/^benchmark\/fs\/readfile-permission-enabled\.js$/: benchmark, fs, permission
165176
/^benchmark\/buffers\//: benchmark, buffer
166177
/^benchmark\/es\//: benchmark, v8 engine
167178
/^benchmark\/_http/: benchmark, http
@@ -198,6 +209,7 @@ allJsSubSystems:
198209
- os
199210
- path
200211
- perf_hooks
212+
- permission
201213
- process
202214
- punycode
203215
- querystring

‎.github/workflows/auto-start-ci.yml‎

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# This action uses the following secrets:
22
# JENKINS_USER: GitHub user whose Jenkins token is defined below
3-
# JENKINS_TOKEN: Jenkins token, to be used to start CI
3+
# JENKINS_TOKEN: Jenkins token, to be used to start or resume CI
4+
# Optional repository variables:
5+
# AUTO_START_CI_BATCH_SIZE: maximum PRs to process per run (default: 5)
6+
# AUTO_START_CI_MAX_WORKLOAD: pause at this many running or queued PR jobs (default: 15)
47
name: Auto Start CI
58

69
on:
@@ -30,16 +33,25 @@ jobs:
3033
steps:
3134
- name: Get Pull Requests
3235
id: get_prs_for_ci
33-
run: >
34-
echo "numbers=$(gh pr list \
36+
# Explicit bash enables pipefail so jq cannot hide a failed gh query.
37+
shell: bash
38+
run: |
39+
if ! [[ "$BATCH_SIZE" =~ ^[1-9][0-9]*$ ]]; then
40+
echo '::error::AUTO_START_CI_BATCH_SIZE must be a strictly positive integer'
41+
exit 1
42+
fi
43+
# Filter before selecting the batch; UNKNOWN mergeability is retried later.
44+
numbers=$(gh pr list \
3545
--repo "$GITHUB_REPOSITORY" \
36-
--label 'request-ci' \
37-
--json 'number' \
38-
--search 'review:approved' \
39-
-t '{{ range . }}{{ .number }} {{ end }}' \
40-
--limit 5)" >> "$GITHUB_OUTPUT"
46+
--json 'number,mergeable' \
47+
--search 'review:approved label:request-ci,resume-ci' \
48+
--limit 100 \
49+
| jq --argjson limit "$BATCH_SIZE" \
50+
'[.[] | select(.mergeable == "MERGEABLE") | .number] | .[:$limit] | map(tostring) | join(" ")' -r)
51+
echo "numbers=$numbers" >> "$GITHUB_OUTPUT"
4152
env:
4253
GH_TOKEN: ${{ github.token }}
54+
BATCH_SIZE: ${{ vars.AUTO_START_CI_BATCH_SIZE || '5' }}
4355
start-ci:
4456
permissions:
4557
checks: read
@@ -70,11 +82,12 @@ jobs:
7082
GH_TOKEN: ${{ github.token }}
7183
JENKINS_TOKEN: ${{ secrets.JENKINS_TOKEN }}
7284

73-
- name: Start the CI
85+
- name: Start or resume the CI
7486
run: |
7587
read -r -a numbers <<< "$PULL_REQUESTS"
7688
curl -fsSL "https://github.com/${GITHUB_REPOSITORY}/raw/${GITHUB_SHA}/tools/actions/start-ci.sh" \
7789
| sh -s -- "${numbers[@]}"
7890
env:
7991
GH_TOKEN: ${{ github.token }}
8092
PULL_REQUESTS: ${{ needs.get-prs-for-ci.outputs.numbers }}
93+
MAX_WORKLOAD: ${{ vars.AUTO_START_CI_MAX_WORKLOAD || '15' }}

‎.github/workflows/build-tarball.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ jobs:
9494
export DISTTYPE=nightly
9595
export DATESTRING=$(date "+%Y-%m-%d")
9696
export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA")
97-
./configure && make tar -j4 SKIP_XZ=1
97+
./configure && make tar -j4 SKIP_XZ=1 GZIP_COMPRESSION=6
9898
- name: Upload tarball artifact
9999
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
100100
with:

‎.github/workflows/test-linux-perfetto.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ jobs:
6262
- name: Build
6363
working-directory: node
6464
run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --v8-enable-temporal-support --with-perfetto"
65+
- name: Get trace_processor
66+
working-directory: node
67+
run: make tools/perfetto/trace_processor_shell
6568
- name: Test
6669
working-directory: node
6770
run: make test-ci -j1 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9"

‎.github/workflows/test-shared.yml‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ jobs:
133133
run: |
134134
export DATESTRING=$(date "+%Y-%m-%d")
135135
export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA")
136-
./configure && make tar -j4 SKIP_XZ=1 SKIP_SHARED_DEPS=1
136+
./configure && make tar -j4 SKIP_XZ=1 SKIP_SHARED_DEPS=1 GZIP_COMPRESSION=6
137137
env:
138138
DISTTYPE: nightly
139139

@@ -168,7 +168,16 @@ jobs:
168168
extra-nix-flags: |
169169
--arg useSeparateDerivationForV8 true \
170170
${{ matrix.perfetto && '--arg withPerfetto true \' || '\' }}
171-
${{ endsWith(matrix.system, '-darwin') && '--arg withAmaro false --arg withLief false --arg withSQLite false --arg withFFI false --arg extraConfigFlags ''["--without-inspector" "--without-node-options"]'' \' || '\' }}
171+
${{ endsWith(matrix.system, '-darwin') && '\
172+
--arg withAmaro false \
173+
--arg withFFI false \
174+
--arg withLief false \
175+
--arg withSQLite false \
176+
--arg withTemporal false \
177+
--arg extraConfigFlags ''[
178+
"--without-inspector"
179+
"--without-node-options"
180+
]'' \' || '\' }}
172181
secrets:
173182
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
174183

‎.github/workflows/tools.yml‎

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ on:
2828
- inspector_protocol
2929
- libffi
3030
- libuv
31+
- lief
3132
- llhttp
3233
- nbytes
3334
- nixpkgs-unstable
@@ -149,6 +150,7 @@ jobs:
149150
- id: icu
150151
subsystem: deps
151152
label: dependencies, test, icu
153+
requires-python: true
152154
run: |
153155
./tools/dep_updaters/update-icu.sh > temp-output
154156
cat temp-output
@@ -157,6 +159,7 @@ jobs:
157159
- id: inspector_protocol
158160
subsystem: deps
159161
label: dependencies, inspector
162+
requires-python: true
160163
run: |
161164
./tools/dep_updaters/update-inspector-protocol.sh > temp-output
162165
cat temp-output
@@ -178,6 +181,15 @@ jobs:
178181
cat temp-output
179182
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
180183
rm temp-output
184+
- id: lief
185+
subsystem: deps
186+
label: dependencies, dont-land-on-v22.x
187+
requires-python: true
188+
run: |
189+
./tools/dep_updaters/update-lief.sh > temp-output
190+
cat temp-output
191+
tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true
192+
rm temp-output
181193
- id: llhttp
182194
subsystem: deps
183195
label: dependencies
@@ -312,9 +324,7 @@ jobs:
312324
with:
313325
persist-credentials: false
314326
- name: Set up Python ${{ env.PYTHON_VERSION }}
315-
if: |
316-
(matrix.id == 'icu' || matrix.id == 'inspector_protocol') &&
317-
(github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id)
327+
if: matrix.requires-python && (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id)
318328
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
319329
with:
320330
python-version: ${{ env.PYTHON_VERSION }}

‎.gitignore‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ _UpgradeReport_Files/
103103
tools/*/*.i
104104
tools/*/*.i.tmp
105105

106+
# === Rules for pgo artifacts ===
107+
*.profdata
108+
*.profraw
109+
*.gcda
110+
106111
# === Rules for release artifacts ===
107112
/*.tar.*
108113
/*.pkg
@@ -116,6 +121,9 @@ tools/*/*.i.tmp
116121
/tools/eslint/node_modules
117122
/tools/lint-md/node_modules
118123

124+
# === Rules for tools/perfetto ===
125+
/tools/perfetto/trace_processor_shell
126+
119127
# === Rules for test artifacts ===
120128
/*.tap
121129
/*.xml

‎BUILDING.md‎

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -104,25 +104,25 @@ Node.js does not support a platform version if a vendor has expired support
104104
for it. In other words, Node.js does not support running on End-of-Life (EoL)
105105
platforms. This is true regardless of entries in the table below.
106106

107-
| Operating System | Architectures | Versions | Support Type | Notes |
108-
| ---------------- | ---------------- | --------------------------------- | ------------ | ---------------------------------------------------------- |
109-
| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
110-
| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 |
111-
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
112-
| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
113-
| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Experimental | Downgraded as of Node.js 24 |
114-
| GNU/Linux | ppc64le >=power9 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 |
115-
| GNU/Linux | s390x >=z14 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 |
116-
| GNU/Linux | loong64 | kernel >= 5.19, glibc >= 2.36 | Experimental | |
117-
| GNU/Linux | riscv64 | kernel >= 5.19, glibc >= 2.36 | Experimental | GCC >= 14 or Clang >= 19 for native builds[^5] |
118-
| Windows | x64 | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] |
119-
| Windows | arm64 | >= Windows 10 | Tier 2 | |
120-
| macOS | x64 | >= 13.5 | Tier 2 | Until early 2028[^8]. For notes about compilation see [^4] |
121-
| macOS | arm64 | >= 13.5 | Tier 1 | |
122-
| SmartOS | x64 | >= 18 | Tier 2 | |
123-
| AIX | ppc64be >=power9 | >= 7.2 TL04 | Tier 2 | |
124-
| FreeBSD | x64 | >= 13.2 | Experimental | |
125-
| OpenHarmony | arm64 | >= 5.0 | Experimental | |
107+
| Operating System | Architectures | Versions | Support Type | Notes |
108+
| ---------------- | ---------------- | --------------------------------- | ------------ | ---------------------------------------------- |
109+
| GNU/Linux | x64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
110+
| GNU/Linux | x64 | kernel >= 6.12, musl >= 1.2.5 | Tier 2 | e.g. Alpine 3.22 |
111+
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
112+
| GNU/Linux | arm64 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 1 | e.g. Ubuntu 20.04, Debian 10, RHEL 8 |
113+
| GNU/Linux | armv7 | kernel >= 4.18[^1], glibc >= 2.28 | Experimental | Downgraded as of Node.js 24 |
114+
| GNU/Linux | ppc64le >=power9 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. Ubuntu 20.04, RHEL 8 |
115+
| GNU/Linux | s390x >=z14 | kernel >= 4.18[^1], glibc >= 2.28 | Tier 2 | e.g. RHEL 8 |
116+
| GNU/Linux | loong64 | kernel >= 5.19, glibc >= 2.36 | Experimental | |
117+
| GNU/Linux | riscv64 | kernel >= 5.19, glibc >= 2.36 | Experimental | GCC >= 14 or Clang >= 19 for native builds[^5] |
118+
| Windows | x64 | >= Windows 10/Server 2016 | Tier 1 | [^2],[^3] |
119+
| Windows | arm64 | >= Windows 10 | Tier 2 | |
120+
| macOS | x64 | >= 13.5 | Experimental | For notes about compilation see [^4] |
121+
| macOS | arm64 | >= 13.5 | Tier 1 | |
122+
| SmartOS | x64 | >= 18 | Tier 2 | |
123+
| AIX | ppc64be >=power9 | >= 7.2 TL04 | Tier 2 | |
124+
| FreeBSD | x64 | >= 13.2 | Experimental | |
125+
| OpenHarmony | arm64 | >= 5.0 | Experimental | |
126126

127127
<!--lint disable final-definition-->
128128

@@ -154,14 +154,6 @@ platforms. This is true regardless of entries in the table below.
154154
Cross-compilation from x64 is unaffected (the code is behind
155155
`V8_HOST_ARCH_RISCV64`).
156156

157-
[^8]: Our macOS testing infrastructure provider has announced end of support for
158-
Intel-based architecture for early 2028 at which time that platform will move to
159-
experimental status as the Node.js project will no longer be able to test changes on any
160-
Intel-based macOS version. When this change occurs the project intends to continue
161-
creating universal binaries for versions of Node.js which are still in support which will
162-
be compatible with both Apple Silicon-based and Intel-based macOS versions but
163-
they will be untested.
164-
165157
<!--lint enable final-definition-->
166158

167159
### Supported toolchains

‎CHANGELOG.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ release.
4141
</tr>
4242
<tr>
4343
<td valign="top">
44-
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.9.0">26.9.0</a></b><br/>
44+
<b><a href="doc/changelogs/CHANGELOG_V26.md#26.10.0">26.10.0</a></b><br/>
45+
<a href="doc/changelogs/CHANGELOG_V26.md#26.9.0">26.9.0</a><br/>
4546
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.2">26.8.2</a><br/>
4647
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.1">26.8.1</a><br/>
4748
<a href="doc/changelogs/CHANGELOG_V26.md#26.8.0">26.8.0</a><br/>
@@ -88,7 +89,8 @@ release.
8889
<a href="doc/changelogs/CHANGELOG_V24.md#24.0.0">24.0.0</a><br/>
8990
</td>
9091
<td valign="top">
91-
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.23.2">22.23.2</a></b><br/>
92+
<b><a href="doc/changelogs/CHANGELOG_V22.md#22.23.3">22.23.3</a></b><br/>
93+
<a href="doc/changelogs/CHANGELOG_V22.md#22.23.2">22.23.2</a><br/>
9294
<a href="doc/changelogs/CHANGELOG_V22.md#22.23.1">22.23.1</a><br/>
9395
<a href="doc/changelogs/CHANGELOG_V22.md#22.23.0">22.23.0</a><br/>
9496
<a href="doc/changelogs/CHANGELOG_V22.md#22.22.3">22.22.3</a><br/>

0 commit comments

Comments
 (0)