Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
9012fc6
fs: stop recursive mkdir from retrying ENOENT forever
junaidkhan80121 Oct 22, 2026
bd5809c
lib: add lint rule to enforce use of `kEmptyObject`
aduh95 Jun 10, 2026
59cb002
test_runner: add support for --test-coverage-include-all
avivkeller Jul 29, 2026
bda267f
test_runner: extend tag filter with boolean expression DSL
atlowChemi Aug 13, 2026
4e7af48
module: do not split a portable compile cache by uid
codebytere Aug 21, 2026
672edce
quic: apply multiple fixes to flow control signaling
jasnell Aug 15, 2026
e87f4b3
test: use common spawnSync helpers in more tests
greenheadHQ Aug 28, 2026
09bd62a
test: remove `console.log` call in `node_run_list`
aduh95 Aug 29, 2026
b40723c
node-api: enter env context for async callbacks
codebytere Aug 30, 2026
503e1be
tools: avoid workflow shell interpolation
panva Sep 13, 2026
35e9b53
test: update WPT for WebCryptoAPI to 55ce71bb9d
nodejs-github-bot Sep 7, 2026
dcc61cd
http: reduce per-request allocations in the server
mcollina Sep 19, 2026
31291c0
test: deflake long timer WPTs
marcopiraccini Sep 19, 2026
131cdc1
quic: cleanly tear down QUIC after worker.terminate()
pimterry Sep 19, 2026
16984dc
perf_hooks: fix truncation of uvMetricsInfo counters
jasnell Sep 17, 2026
e5652fd
doc: use Type for performanceNodeTiming.uvMetricsInfo
jasnell Sep 17, 2026
b9e8ef1
perf_hooks: add performanceNodeTiming.uvMetricsInfoBigInt
jasnell Sep 17, 2026
5caa780
stream: trim per-stream costs in webstreams
mcollina Sep 20, 2026
0086baa
meta: bump codecov/codecov-action from 7.0.0 to 7.1.0
dependabot[bot] Sep 20, 2026
933e5fe
perf_hooks: fix PerformanceObserver observer count leaks
jasnell Sep 17, 2026
60e9651
perf_hooks: track GC callback installation natively
jasnell Sep 17, 2026
ed6e0ca
perf_hooks: restore GC tracking after snapshot deserialization
jasnell Sep 17, 2026
26a67f6
https: handle invalid TLS options in proxied requests
christianaurichzm Sep 20, 2026
e91949b
lib: add primitive fast path to structuredClone
araujogui Sep 20, 2026
870c014
fs: close fd 0 on discarded FileHandle transfer
christianaurichzm Sep 21, 2026
c75d081
typings: wire up quic internal binding types
agape1225 Sep 21, 2026
679934a
doc: restore XadillaX to collaborators
XadillaX Sep 21, 2026
a338bd7
node-api: do not crash on module version mismatch
krassx Sep 21, 2026
c3af058
test: deflake test-benchmark-crypto
panva Sep 20, 2026
99725a8
test: deflake test-http2-debug
panva Sep 20, 2026
372c60d
test: update WPT for WebCryptoAPI to a6a0a0292a
nodejs-github-bot Sep 22, 2026
22097ef
typings: add mksnapshot internal binding types
leah-1ee Sep 22, 2026
ed8e4f4
watch: strip watch flags from NODE_OPTIONS in child process
marcopiraccini Sep 22, 2026
09f7277
typings: share AsyncWrap and HandleWrap types
leah-1ee Sep 22, 2026
4ba6b52
test: deflake pummel/test-timers
panva Sep 22, 2026
70788df
fs: close file streams with fd 0
greenheadHQ Sep 22, 2026
cd53f94
test: mark some tests flaky for now on riscv64
sxa Sep 4, 2026
9263f8e
src: free placeholder nodes for cppgc wrappers in MemoryTracker
codebytere Sep 22, 2026
433eb02
util: show SuppressedError's error/suppressed properties on inspect
agape1225 Sep 22, 2026
a2f1d39
test_runner: do not reuse a worker ID held by a running file
vserpokryl Sep 22, 2026
c72589c
stream: ensure nested async iterators are cancellation aware
jasnell Aug 30, 2026
c415463
stream: make broadcast waiters use SafeSet
jasnell Aug 30, 2026
260a7e3
stream: trim per-pipe and per-tee costs in webstreams
mcollina Sep 22, 2026
cbe02dd
doc: document iterable input for AbortSignal.any
haramj Sep 22, 2026
f580a84
src: add a flag to keep the embedder's wasm streaming callback
codebytere Sep 23, 2026
ef584fa
doc: clarify Worker execArgv vs Permission Model grants
yunshingng Sep 22, 2026
e0fcdc6
doc: add return type to Blocklist.isBlocklist
motokaneyuki Sep 23, 2026
d09171c
test: deflake watch mode tests
panva Sep 23, 2026
9b08726
test: update WPT for url to c48d58747e
nodejs-github-bot Sep 23, 2026
d4b2ba6
test: use heapdump test for SecureContext memory tracking
mertcanaltin Sep 23, 2026
0ab0a61
tools: add resume-ci label handling
panva Sep 24, 2026
a78c86c
test: accept ENOTEMPTY from libc++ in test-fs-rm
codebytere Sep 24, 2026
f9c7029
meta: label permission model changes correctly
RafaelGSS Sep 24, 2026
e13ba4f
process: graduate process.ref/unref from experimental
jasnell Sep 24, 2026
e0887dd
perf_hooks: harden histogram CBOR import validation
jasnell Sep 18, 2026
b020abb
perf_hooks: add histogram.snapshot()
jasnell Sep 18, 2026
08a745f
perf_hooks: add histogram.diff()
jasnell Sep 18, 2026
e6aba91
buffer: fix odd UTF-16LE indexOf start
inoway46 Sep 25, 2026
6da3ce3
doc: add indexed `Array.prototype` properties to primordial exclusions
Renegade334 Sep 25, 2026
295e806
crypto: match algorithm names as ASCII
panva Sep 22, 2026
f60e7c6
crypto: reject short AES-KW inputs
panva Sep 22, 2026
aa5fa20
crypto: isolate cipher job errors
panva Sep 22, 2026
10014dd
crypto: convert getRandomValues views
panva Sep 22, 2026
e360a4c
crypto: validate normalized hash names
panva Sep 22, 2026
a54fc10
crypto: allow short AES-GCM IVs
panva Sep 22, 2026
4cda1fc
crypto: allow unbound SubtleCrypto.supports
panva Sep 22, 2026
df85b12
crypto: resolve supports overloads by type
panva Sep 22, 2026
b0bd992
crypto: copy detached parameters as empty
panva Sep 22, 2026
00e04f3
crypto: convert importKey data as a union
panva Sep 22, 2026
0c6cf25
crypto: copy parameters without array species
panva Sep 22, 2026
d0b2e2c
crypto: check RSA JWK alg with SHA-3 hashes
panva Sep 22, 2026
9579558
crypto: reject duplicate unknown key usages
panva Sep 22, 2026
40caff7
crypto: handle PBKDF2 iteration limits
panva Sep 22, 2026
d676062
crypto: copy derived bits without species
panva Sep 22, 2026
efdc59f
crypto: minimize RSA public exponent metadata
panva Sep 22, 2026
34d6966
crypto: create key usage arrays without species
panva Sep 22, 2026
ebdaa95
crypto: derive Argon2 without worker threads
panva Sep 22, 2026
ee3721d
crypto: report actual RSA modulus lengths
panva Sep 22, 2026
b61a94a
crypto: split hybrid keys without species
panva Sep 22, 2026
3c36a9c
crypto: use the public CryptoKey prototype
panva Sep 22, 2026
2ac2db2
crypto: include EC public keys in PKCS8 exports
panva Sep 22, 2026
190de20
crypto: map JWK export failures to OperationError
panva Sep 22, 2026
e815589
crypto: check EC coordinate conversion results
panva Sep 22, 2026
b2ba5b7
benchmark: cover Web Crypto conversion costs
panva Sep 23, 2026
8d904d4
crypto: verify empty KMAC outputs
panva Sep 23, 2026
cd0126b
zlib: reject reset while a zstd frame is incomplete
xia-chao Sep 25, 2026
0514b1d
module: normalize package map paths
Dansatch Sep 25, 2026
5e0a0b1
url: create URLSearchParams collision map lazily
RomainLanz Sep 25, 2026
7094765
net: skip IPv6 regex when the string has no colon
anonrig Sep 25, 2026
6d01aec
test: ensure fsPromises.watch rejects on abort
hanityx Sep 25, 2026
8e87fba
net: speed up BlockList.check for strings
anonrig Sep 25, 2026
1a97ad5
util,assert: expose util.isPartialDeepStrictEqual()
tlhunter Sep 25, 2026
16eb02e
doc,src,test: fix typos in code comments
aguashui Sep 22, 2026
bf467d4
test: use spawnSync helpers in cpu-prof tests
DevJunz Sep 1, 2026
b74a817
src: reserve shared_array_buffers capacity in Message::Deserialize
agape1225 Sep 25, 2026
c52d345
http: preserve socket errors as response error causes
XadillaX Sep 16, 2026
33a0b94
stream: support ArrayBufferView in Utf8Stream write() buffer mode
agape1225 Aug 14, 2026
29d3e4a
build: add GZIP_COMPRESSION Make variable
inoway46 Sep 25, 2026
a19bf7a
test: deflake debugger function name extraction
panva Sep 26, 2026
4e0fa57
test: deflake inspector async hook setup
panva Sep 24, 2026
f7a1c4a
test: deflake test runner timeout coverage
panva Sep 24, 2026
db6ac9f
deps: update googletest to 4267679b6887f349f17b01ccd70c9e3483689b25
nodejs-github-bot Sep 26, 2026
01919a6
http: normalize CONNECT request paths
efekrskl Sep 26, 2026
1503c4b
build: add clang support for pgo on macOS/Linux
legendecas Sep 26, 2026
f61e83b
benchmark: fix shadowing that broke h=20 on incoming_headers benchmark
pimterry Sep 26, 2026
c55978e
zlib: reject reset after gzip/deflate emitted incomplete output
xia-chao Sep 26, 2026
87ae483
zlib: preserve brotli params and dictionary on reset
xia-chao Sep 26, 2026
90f36fb
stream: fix pipeline function tail deadlock
dayun6530 Sep 26, 2026
06ce26d
worker: remove messageerror listeners on exit
dayun6530 Sep 26, 2026
4e0cd18
fs: fix crash on negative zero file descriptor
christianaurichzm Sep 26, 2026
035725b
querystring: speed up default parse and unescape
anonrig Sep 26, 2026
f6f705e
worker: add Symbol.toStringTag to MessageChannel and MessagePort
lazerg Aug 25, 2026
701d7de
worker: add Symbol.toStringTag to BroadcastChannel
lazerg Aug 25, 2026
fb8125f
typings: wire up spawn_sync internal binding types
agape1225 Sep 27, 2026
3e1ced3
watch: detect files replaced via unlink and create
marcopiraccini Sep 27, 2026
9f98021
tools: check CI availability and workload
panva Sep 27, 2026
51759dd
http: avoid toLowerCase on the server hot path
anonrig Sep 25, 2026
edcf9b5
buffer: add isLatin1
jasnell Sep 28, 2026
cb44e48
stream: keep webstreams nil requests in fast mode
mcollina Sep 28, 2026
c53447a
buffer: fix negative index for large buffers
Dansatch Sep 28, 2026
6ee1f6d
test: use common.PIPE in fs.cp socket tests
maksim-romanov Sep 28, 2026
a9a15e0
deps: upgrade npm to 11.20.0
npm-cli-bot Sep 24, 2026
128d28c
module: avoid allocating a cache key string for every require()
MarshallOfSound Sep 28, 2026
f8d5387
deps: update zlib to 1.3.2.1-motley-456ae73
nodejs-github-bot Sep 29, 2026
b0dda97
http: add isValidHeaderName() and isValidHeaderValue()
jasnell Sep 27, 2026
3414a1e
benchmark: add http header validator benchmark
jasnell Sep 27, 2026
c06e38a
benchmark: add a node::MakeCallback benchmark
nigrosimone Sep 26, 2026
9d58d66
test: check frame restore in CallbackScope
nigrosimone Sep 26, 2026
fe23248
deps: update lief to 1.0.0
nodejs-github-bot Sep 29, 2026
1e5e9ef
benchmark: add zstdCompress benchmark
Cherry Sep 28, 2026
70850f5
crypto: fix raw key export error for wrong key type
koreahghg Sep 29, 2026
7a67004
src: fix builds without SSL and SQLite
panva Sep 30, 2026
0814dc8
src: remove `HAVE_QUIC` macro in favor of `OPENSSL_NO_QUIC`
aduh95 Sep 30, 2026
b5d513c
test: deflake inspector network fetch
panva Sep 26, 2026
97ec977
test: deflake debugger PID attachment and cleanup
panva Sep 26, 2026
2a63e46
test: deflake inspector close connection test
panva Sep 26, 2026
3b82a25
test: deflake http server mixed request timeouts
panva Sep 26, 2026
e1580c5
test: deflake http headers timeout keepalive
panva Sep 26, 2026
1c40413
test: deflake esm loader http imports
panva Sep 26, 2026
770fea3
test: deflake watch cwd with isolation none
panva Sep 26, 2026
445c44c
test: probe cluster workers with signal 0
panva Sep 26, 2026
9cbfbcc
test: isolate styleText tests from the environment
panva Sep 26, 2026
adc2c7a
src: assert that an IsolateData outlives its Environments
codebytere Sep 22, 2026
31df6e9
doc: update FreeEnvironment() notes for sibling Environments
codebytere Sep 22, 2026
717207a
fs: stop recursive mkdir from retrying ENOENT forever
marcopiraccini Sep 30, 2026
db5d16a
child_process: build the default env block in one native pass
codebytere Sep 30, 2026
e979505
test_runner: do not crash on stdout that mimics a v8 frame
faizanu94 Oct 1, 2026
8857230
tools: update gyp-next to 0.22.3
nodejs-github-bot Oct 1, 2026
506dd25
tools: keep OpenSSL update PRs in draft until arch configs committed
Renegade334 Oct 1, 2026
6645d29
process: use a class for nextTick resources
mcollina Oct 2, 2026
c648e79
test: do not hardcode V8 serialization header
joyeecheung Oct 2, 2026
95d35b9
tools: bump brace-expansion from 5.0.9 to 5.0.12 in /tools/eslint
dependabot[bot] Oct 2, 2026
39e1456
tools: bump brace-expansion in /tools/clang-format
dependabot[bot] Oct 3, 2026
faa502e
tools: add cache to `lint-js-and-md`
aduh95 Sep 30, 2026
8e84a29
util: fix inspect indentation of detached DataView
Kjubikstronk Oct 3, 2026
56f7a22
benchmark: add implicit-framing case to http/set-header
mcollina Sep 30, 2026
f8173e5
tools: avoid repeated subtree scans in must-call-assert
inoway46 Oct 3, 2026
b552df8
tools: wait for test processes instead of polling
mcollina Oct 3, 2026
86d2b7f
http: cache parser callbacks
mcollina Sep 27, 2026
d084008
zlib: fix abort with decodeStrings: false
Cherry Sep 29, 2026
9f68a35
http: avoid dictionary-mode objects in responses
mcollina Sep 30, 2026
77bdf6c
util: make mime parsing faster
jasnell Oct 5, 2026
d0c705d
build: fix vcbuild lint skipping lint-md-build
vedchaudhari Oct 5, 2026
4617f79
tools: limit format-cpp checkout history
inoway46 Oct 5, 2026
38d4954
build: fix vcbuild format-md install and exit
vedchaudhari Oct 5, 2026
352c4e6
tools: limit checkout for lint-cpp
inoway46 Oct 5, 2026
0b4471e
meta: bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
ae181cf
meta: bump github/codeql-action/init from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
f27f50b
meta: bump github/codeql-action/autobuild from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
b7c8040
meta: bump github/codeql-action/analyze from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
a2ddfc9
watch: escape quotes and backslashes in NODE_OPTIONS
trivikr Oct 5, 2026
6152c2f
deps: update histogram to 0.12.0
nodejs-github-bot Oct 6, 2026
93bb480
test: update WPT for WebCryptoAPI to 3127c3a492
nodejs-github-bot Oct 6, 2026
b9feae7
test: update test426-fixtures to 9ea66b466fd37e8a4050033d23b3e1480973c3d
nodejs-github-bot Oct 6, 2026
38d09ed
build: do not include shared gtest in `node` link path
aduh95 Oct 11, 2026
70035dd
test: run instantiateStreaming-bad-imports WPT
panva Sep 26, 2026
e4ad026
meta: bump codecov/codecov-action from 7.1.0 to 7.1.1
dependabot[bot] Oct 3, 2026
70f7ecd
tools: bump the eslint group in /tools/eslint with 5 updates
dependabot[bot] Oct 3, 2026
3c21460
test: remove duplicated cases in permission fs-read fixture
RafaelGSS Oct 3, 2026
8046eba
doc: add missing return types in cluster.md
Cayan Oct 4, 2026
24880f4
crypto: remove select Web Crypto warnings
panva Oct 4, 2026
f93b226
stream: port remaining SonicBoom tests for Utf8Stream
mcollina Oct 5, 2026
9e60804
test_runner: add mock call assertions to t.assert
araujogui Oct 6, 2026
aecf034
watch: strip underscore aliases of watch flags
trivikr Oct 6, 2026
83b29c1
quic: destroy stream on invalid promise body
christianaurichzm Oct 6, 2026
a1b2784
doc: run license-builder
github-actions[bot] Oct 7, 2026
0c8092e
tools: copy hdr_histogram_internal.h in update-histogram.sh
fcostaoliveira Oct 7, 2026
8b4c055
doc: clarify node binary misuse after compromise
RafaelGSS Oct 7, 2026
f5e51ec
crypto: skip secret key mutex allocation
panva Sep 30, 2026
fe89edc
crypto: remove RSA-OAEP key locking
panva Sep 30, 2026
ee54a95
crypto: remove verify setup key locking
panva Sep 30, 2026
1cc277b
crypto: isolate provider EC PKCS8 encoding
panva Oct 1, 2026
a9608f0
doc: clarify revert PR label policy
aduh95 Oct 7, 2026
91779c9
test_runner: report load errors with --test-isolation=none
lazerg Oct 8, 2026
478194f
doc: fix request.reusedSocket timeout example
efekrskl Sep 25, 2026
424e6c9
doc: document keepAliveTimeoutBuffer server option
efekrskl Sep 25, 2026
7974f94
doc: clarify http Agent keepSocketAlive behavior
efekrskl Oct 8, 2026
c57c394
child_process: propagate config-file permission flags to children
RafaelGSS Oct 8, 2026
fc74b37
benchmark: fix url-searchparams-sort to sort a fresh list
RafaelGSS Oct 5, 2026
1dbce2c
sqlite: validate aggregate() name and options
araujogui Oct 9, 2026
10787f5
test: tolerate async block count updates in test-fs-stat-bigint
RafaelGSS Oct 10, 2026
5139272
process: mark process.finalization as release candidate
mcollina Oct 1, 2026
c27b3ad
stream: fix Utf8Stream flush handling
jasnell Oct 3, 2026
39381a9
benchmark: add util.parseArgs benchmark
RafaelGSS Oct 10, 2026
859db74
http2: speed up response getHeaders
rozzilla Oct 10, 2026
8ff733d
benchmark: fix buffer option in buffer read/write benchmarks
RafaelGSS Oct 10, 2026
9cd7cfb
test_runner: rerun failing todo tests in suites
barakor Oct 10, 2026
60d0517
benchmark: fix input passed to subtle.digest in webcrypto-digest
RafaelGSS Oct 10, 2026
ce12d2c
stream: keep share buffer when all consumers detach
jasnell Oct 3, 2026
dda1509
stream: bound pre-batched async values in from()
jasnell Oct 3, 2026
78b412a
stream: fix fromSync() async input error messages
jasnell Oct 3, 2026
e1c9f09
deps: update simdjson to 5.0.3
lemire Oct 9, 2026
d901c61
build: support Python 3.15
MikeMcC399 Oct 11, 2026
15b6523
module: fix require of imports with package map
lazerg Oct 11, 2026
c334c6c
lib: fix AbortSignal.any() nested composite leak
DariusHQ Oct 12, 2026
352d07b
meta: bump nodejs/node-pr-labeler to dfe5eb3
soulee-dev Oct 12, 2026
2681f27
build: run QUIC CI for V8 changes
inoway46 Oct 12, 2026
dd049bc
http: reduce raw header name allocations
rozzilla Oct 12, 2026
4ae00b1
deps: update sqlite to 3.54.0
nodejs-github-bot Oct 12, 2026
fae672c
deps: update acorn to 8.19.0
nodejs-github-bot Oct 12, 2026
22f286b
querystring: fix value decoding after encoded keys
vedchaudhari Oct 13, 2026
830b87c
stream: skip idle webstreams start and watchers
mcollina Sep 30, 2026
45e2567
deps: update googletest to 988ea2c1798de7779f656df2281dd36d6039a17a
nodejs-github-bot Oct 13, 2026
9a8dad1
doc: list futimes among fd APIs disabled by the permission model
RafaelGSS Oct 13, 2026
bcb20cc
src: release uv_fs_t in permission WildcardIfDir
RafaelGSS Oct 13, 2026
70a874c
tools: restore Python 3.14 for daily WPT
panva Oct 13, 2026
e4106f4
permission: keep explicit fs grants when dropping a covering directory
RafaelGSS Oct 13, 2026
a83a23b
src: fix the fs permission tree node on wildcard nodes
jasnell Sep 19, 2026
6ec9311
Merge branch 'v24.x-staging' into backport-66340-to-v24.x
junaidkhan80121 Oct 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .github/label-pr-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ subSystemLabels:
/^src\/uv\./: c++, libuv
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
/^src\/node_os/: c++, os
/^src\/permission\//: c++, permission
/^src\/(?:node_main|signal_)/: c++, process
/^src\/timer[_s]/: c++, timers
/^src\/node_root_certs/: c++, tls
Expand Down Expand Up @@ -102,6 +103,7 @@ subSystemLabels:
/^lib\/test.js$/: test_runner
/^lib\/v8.js$/: v8 module
/^lib\/internal\/url\.js$/: whatwg-url
/^lib\/internal\/process\/permission\.js$/: permission
/^lib\/internal\/modules\/esm/: esm
/^lib\/internal\/modules/: module
/^lib\/internal\/source_map/: source maps
Expand All @@ -116,6 +118,13 @@ subSystemLabels:

exlusiveLabels:
# More specific tests
/^test\/(?:parallel|sequential)\/test-(?:[^/]+-)?permission(?:-|\.)/: test, permission
/^test\/ffi\/test-ffi-permissions?(?:-|\.)/: test, permission
/^test\/addons\/no-addons\/permission\.js$/: test, addons, permission
/^test\/es-module\/test-[^/]*-permission(?:-|\.)/: test, esm, permission
/^test\/module-hooks\/test-[^/]*-permission(?:-|\.)/: test, module, loaders, permission
/^test\/fixtures\/permission\//: test, permission
/^test\/fixtures\/rc\/permission-namespace\.json$/: test, permission
/^test\/addons\//: test, addons
/^test\/debugger/: test, debugger
/^test\/doctool\//: test, doc, tools
Expand Down Expand Up @@ -150,6 +159,7 @@ exlusiveLabels:
# test_runner documentation
/^doc\/api\/test.md$/: doc, test_runner
# Automatically tag JS subsystem-specific API doc changes
/^doc\/api\/permissions\.md$/: doc, permission
/^doc\/api\/(\w+)\.md$/: doc, $1
# Add deprecations label to PRs that affect doc/api/deprecations.md
/^doc\/api\/deprecations.md$/: doc, deprecations
Expand All @@ -162,6 +172,7 @@ exlusiveLabels:
/^doc\//: doc

# More specific benchmarks
/^benchmark\/fs\/readfile-permission-enabled\.js$/: benchmark, fs, permission
/^benchmark\/buffers\//: benchmark, buffer
/^benchmark\/es\//: benchmark, v8 engine
/^benchmark\/_http/: benchmark, http
Expand Down Expand Up @@ -198,6 +209,7 @@ allJsSubSystems:
- os
- path
- perf_hooks
- permission
- process
- punycode
- querystring
Expand Down
35 changes: 25 additions & 10 deletions .github/workflows/auto-start-ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# This action uses the following secrets:
# JENKINS_USER: GitHub user whose Jenkins token is defined below
# JENKINS_TOKEN: Jenkins token, to be used to start CI
# JENKINS_TOKEN: Jenkins token, to be used to start or resume CI
# Optional repository variables:
# AUTO_START_CI_BATCH_SIZE: maximum PRs to process per run (default: 5)
# AUTO_START_CI_MAX_WORKLOAD: pause at this many running or queued PR jobs (default: 15)
name: Auto Start CI

on:
Expand Down Expand Up @@ -30,16 +33,25 @@ jobs:
steps:
- name: Get Pull Requests
id: get_prs_for_ci
run: >
echo "numbers=$(gh pr list \
# Explicit bash enables pipefail so jq cannot hide a failed gh query.
shell: bash
run: |
if ! [[ "$BATCH_SIZE" =~ ^[1-9][0-9]*$ ]]; then
echo '::error::AUTO_START_CI_BATCH_SIZE must be a strictly positive integer'
exit 1
fi
# Filter before selecting the batch; UNKNOWN mergeability is retried later.
numbers=$(gh pr list \
--repo "$GITHUB_REPOSITORY" \
--label 'request-ci' \
--json 'number' \
--search 'review:approved' \
-t '{{ range . }}{{ .number }} {{ end }}' \
--limit 5)" >> "$GITHUB_OUTPUT"
--json 'number,mergeable' \
--search 'review:approved label:request-ci,resume-ci' \
--limit 100 \
| jq --argjson limit "$BATCH_SIZE" \
'[.[] | select(.mergeable == "MERGEABLE") | .number] | .[:$limit] | map(tostring) | join(" ")' -r)
echo "numbers=$numbers" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ github.token }}
BATCH_SIZE: ${{ vars.AUTO_START_CI_BATCH_SIZE || '5' }}
start-ci:
permissions:
checks: read
Expand Down Expand Up @@ -70,9 +82,12 @@ jobs:
GH_TOKEN: ${{ github.token }}
JENKINS_TOKEN: ${{ secrets.JENKINS_TOKEN }}

- name: Start the CI
- name: Start or resume the CI
run: |
read -r -a numbers <<< "$PULL_REQUESTS"
curl -fsSL "https://github.com/${GITHUB_REPOSITORY}/raw/${GITHUB_SHA}/tools/actions/start-ci.sh" \
| sh -s -- ${{ needs.get-prs-for-ci.outputs.numbers }}
| sh -s -- "${numbers[@]}"
env:
GH_TOKEN: ${{ github.token }}
PULL_REQUESTS: ${{ needs.get-prs-for-ci.outputs.numbers }}
MAX_WORKLOAD: ${{ vars.AUTO_START_CI_MAX_WORKLOAD || '15' }}
2 changes: 1 addition & 1 deletion .github/workflows/build-tarball.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying

permissions:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql-config.yml

- name: Autobuild
uses: github/codeql-action/autobuild@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/autobuild@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
category: /language:${{matrix.language}}
4 changes: 3 additions & 1 deletion .github/workflows/commit-queue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ jobs:
git config --local user.email "github-bot@iojs.org"
git config --local user.name "Node.js GitHub Bot"
ncu-config set token "$GH_TOKEN"
./tools/actions/commit-queue.sh ${{ steps.get_mergeable_prs.outputs.numbers }}
read -r -a numbers <<< "$PULL_REQUESTS"
./tools/actions/commit-queue.sh "${numbers[@]}"
env:
GH_TOKEN: ${{ secrets.GH_USER_TOKEN }}
PULL_REQUESTS: ${{ steps.get_mergeable_prs.outputs.numbers }}
4 changes: 2 additions & 2 deletions .github/workflows/coverage-linux-without-intl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++
Expand Down Expand Up @@ -79,6 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
with:
directory: ./coverage
4 changes: 2 additions & 2 deletions .github/workflows/coverage-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++
Expand Down Expand Up @@ -79,6 +79,6 @@ jobs:
- name: Clean tmp
run: rm -rf coverage/tmp && rm -rf out
- name: Upload
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
with:
directory: ./coverage
4 changes: 2 additions & 2 deletions .github/workflows/coverage-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying

permissions:
Expand Down Expand Up @@ -93,6 +93,6 @@ jobs:
- name: Clean tmp
run: npx rimraf ./coverage/tmp
- name: Upload
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
with:
directory: ./coverage
8 changes: 6 additions & 2 deletions .github/workflows/daily-wpt-fyi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- cron: 30 0 * * *

env:
# WPT's pywebsocket3 still uses CGIHTTPRequestHandler, removed in Python 3.15.
PYTHON_VERSION: '3.14'

permissions:
Expand Down Expand Up @@ -139,7 +140,9 @@ jobs:
- name: Clone report for upload
if: ${{ env.WPT_REPORT != '' }}
working-directory: out/wpt
run: cp wptreport.json wptreport-${{ steps.setup-node.outputs.node-version }}.json
run: cp wptreport.json "wptreport-$NODE_VERSION.json"
env:
NODE_VERSION: ${{ steps.setup-node.outputs.node-version }}
- name: Upload GitHub Actions artifact
if: ${{ env.WPT_REPORT != '' }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
Expand All @@ -150,12 +153,13 @@ jobs:
- name: Upload WPT Report to wpt.fyi API
if: ${{ env.WPT_REPORT != '' }}
env:
NODE_VERSION: ${{ steps.setup-node.outputs.node-version }}
WPT_FYI_USERNAME: ${{ vars.WPT_FYI_USERNAME }}
WPT_FYI_PASSWORD: ${{ secrets.WPT_FYI_PASSWORD }}
working-directory: out/wpt
run: |
gzip wptreport.json
echo "## Node.js ${{ steps.setup-node.outputs.node-version }}" >> $GITHUB_STEP_SUMMARY
echo "## Node.js $NODE_VERSION" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "WPT Revision: [\`${WPT_REVISION:0:7}\`](https://github.com/web-platform-tests/wpt/commits/$WPT_REVISION)" >> $GITHUB_STEP_SUMMARY
for WPT_FYI_ENDPOINT in "https://wpt.fyi/api/results/upload" "https://staging.wpt.fyi/api/results/upload"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-slim

steps:
- uses: nodejs/node-pr-labeler@d4cf1b8b9f23189c37917000e5e17e796c770a6b # v1
- uses: nodejs/node-pr-labeler@dfe5eb3b099a487644e32567a482744620876ab3 # v1
with:
repo-token: ${{ secrets.GH_USER_TOKEN }}
configuration-path: .github/label-pr-config.yml
2 changes: 1 addition & 1 deletion .github/workflows/lint-release-proposal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
NODE_VERSION: lts/*

permissions:
Expand Down
33 changes: 28 additions & 5 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
NODE_VERSION: lts/*

permissions:
Expand All @@ -41,6 +41,12 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Skip large vendored trees that lint-cpp does not use.
sparse-checkout: |
/*
!/deps/openssl/
!/deps/v8/
sparse-checkout-cone-mode: false
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
Expand All @@ -53,7 +59,8 @@ jobs:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
# The first parent of the PR merge commit is the base branch commit.
fetch-depth: 2
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand All @@ -70,7 +77,7 @@ jobs:
# because it is irrelevant. We already check if the formatter produced
# a diff in the next line.
# Refs: https://github.com/nodejs/node/pull/42764
CLANG_FORMAT_START="$(git merge-base HEAD refs/remotes/origin/$GITHUB_BASE_REF)" \
CLANG_FORMAT_START=HEAD^ \
make format-cpp || true
git --no-pager diff --exit-code && EXIT_CODE="$?" || EXIT_CODE="$?"
if [ "$EXIT_CODE" != "0" ]
Expand All @@ -91,13 +98,29 @@ jobs:
with:
persist-credentials: false
- name: Use Node.js ${{ env.NODE_VERSION }}
id: setup-node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: |
tools/doc/package-lock.json
tools/eslint/package-lock.json
tools/lint-md/package-lock.json
- name: Cache ESLint results
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
env:
# ESLint only invalidates its cache on config changes, so the key also
# covers the custom rules and the files they read.
cache-prefix: eslint-${{ runner.os }}-${{ steps.setup-node.outputs.node-version }}-${{ hashFiles('eslint.config.mjs', '*/eslint.config_partial.mjs', 'tools/eslint/*', 'tools/eslint-rules/**', 'doc/api/errors.md', 'doc/api/deprecations.md') }}
with:
path: .eslintcache
key: ${{ env.cache-prefix }}-${{ github.sha }}
restore-keys: ${{ env.cache-prefix }}-
- name: Lint JavaScript files
run: |
set +e
NODE=$(command -v node) make lint-js
NODE=$(command -v node) make lint-js ESLINT_CACHE_FLAGS='--cache --cache-strategy content'
EXIT_CODE="$?"
if [ "$EXIT_CODE" != "0" ]; then
echo
Expand Down Expand Up @@ -127,7 +150,7 @@ jobs:
- name: Lint markdown files
run: |
echo "::add-matcher::.github/workflows/remark-lint-problem-matcher.json"
NODE=$(command -v node) make lint-md
NODE=$(command -v node) make lint-md ESLINT_CACHE_FLAGS='--cache --cache-strategy content'
env:
NODE_RELEASED_VERSIONS: ${{ steps.get-released-versions.outputs.NODE_RELEASED_VERSIONS }}
lint-py:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,6 @@ jobs:

# Upload the results to GitHub's code scanning dashboard.
- name: Upload to code-scanning
uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
sarif_file: results.sarif
2 changes: 1 addition & 1 deletion .github/workflows/stress-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
type: string

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
XCODE_VERSION: '16.4'
CLANG_VERSION: '19'
RUSTC_VERSION: '1.82'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-internet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/test-linux-quic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
- configure.py
- node.gyp
- node.gypi
- deps/v8/**
- deps/ngtcp2/**
- deps/nghttp3/**
- deps/openssl/**
Expand All @@ -30,7 +31,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
FLAKY_TESTS: keep_retrying
CC: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang
CXX: ${{ (github.base_ref == 'main' || github.ref_name == 'main') && 'sccache' || '' }} clang++
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ concurrency:
cancel-in-progress: true

env:
PYTHON_VERSION: '3.14'
PYTHON_VERSION: '3.15'
XCODE_VERSION: '16.1'
FLAKY_TESTS: keep_retrying

Expand Down
Loading