Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
293 commits
Select commit Hold shift + click to select a range
d40236c
stream: ensure streamable protocols precede fast paths
jasnell Aug 30, 2026
500b567
stream: make Broadcast.from() only return the Broadcast
jasnell Aug 30, 2026
d96a809
stream: update ShareImpl to retain factory abort listener
jasnell Sep 17, 2026
d5b65c3
vfs: validate ZipProvider parent directories
trivikr Sep 22, 2026
3c9f878
stream: trim per-pipe and per-tee costs in webstreams
mcollina Sep 22, 2026
9fd0a10
doc: document iterable input for AbortSignal.any
haramj Sep 22, 2026
9656992
vfs: support recursive readdir in ZipProvider
pipobscure Sep 23, 2026
7c9b2df
crypto: use current FIPS state for availability
panva Sep 23, 2026
d7c720f
src: add a flag to keep the embedder's wasm streaming callback
codebytere Sep 23, 2026
6c7fc98
doc: clarify Worker execArgv vs Permission Model grants
yunshingng Sep 22, 2026
8e8c976
doc: add return type to Blocklist.isBlocklist
motokaneyuki Sep 23, 2026
aaa7a7a
test: deflake watch mode tests
panva Sep 23, 2026
953e467
test: update WPT for url to c48d58747e
nodejs-github-bot Sep 23, 2026
e0d0c5d
test: use heapdump test for SecureContext memory tracking
mertcanaltin Sep 23, 2026
c507c5a
deps: V8: backport 9fb4444bfc46
srl295 Aug 21, 2026
1f4a8fb
build: add `v8_enable_temporal_systemicu`
srl295 Sep 23, 2026
ee84a36
ffi: avoid memcpy() with a null pointer
christianaurichzm Sep 24, 2026
9b19114
doc: fix casing in `util.markPromiseAsHandled` section
aduh95 Sep 24, 2026
63469ca
tools: add resume-ci label handling
panva Sep 24, 2026
f2972bf
test: accept ENOTEMPTY from libc++ in test-fs-rm
codebytere Sep 24, 2026
d8109f9
meta: label permission model changes correctly
RafaelGSS Sep 24, 2026
62f92a5
test: enable trace_events tests with perfetto
legendecas Sep 24, 2026
6299b09
process: graduate process.ref/unref from experimental
jasnell Sep 24, 2026
b44b865
stream: make stream/iter toWritable apply backpressure
jasnell Aug 30, 2026
4e8df7c
stream: correct strict pending-write behavior & cancellation
jasnell Aug 30, 2026
55ef82a
stream: make classic reads wake on return/throw/abort
jasnell Aug 30, 2026
3a77852
stream,quic: correct stream/iter writer implementations
jasnell Aug 30, 2026
b692079
doc: fixup and cleanup stream/iter docs
jasnell Aug 30, 2026
dca736b
stream: cleanup promise uses in stream/iter
jasnell Aug 30, 2026
42255ab
test: avoid using promise wrapped timers
jasnell Aug 30, 2026
f7f1116
stream: fill out stream/iter test coverage
jasnell Sep 22, 2026
9066d33
build: port `make_temporal_zoneinfo_cpp` to GYP
aduh95 Sep 24, 2026
291d56e
perf_hooks: harden histogram CBOR import validation
jasnell Sep 18, 2026
e2ae016
perf_hooks: add histogram export format version 2
jasnell Sep 18, 2026
f1b9758
perf_hooks: add histogram.snapshot()
jasnell Sep 18, 2026
a6dfb3b
perf_hooks: report histogram memory to V8
jasnell Sep 18, 2026
1fef8f5
perf_hooks: add histogram.diff()
jasnell Sep 18, 2026
f7d3d11
buffer: fix odd UTF-16LE indexOf start
inoway46 Sep 25, 2026
db2665b
doc: add indexed `Array.prototype` properties to primordial exclusions
Renegade334 Sep 25, 2026
ab9a3f2
crypto: use internal random buffer bounds
panva Sep 22, 2026
78374c8
crypto: match algorithm names as ASCII
panva Sep 22, 2026
d4af11e
crypto: reject short AES-KW inputs
panva Sep 22, 2026
529bd18
crypto: isolate cipher job errors
panva Sep 22, 2026
6bfd392
crypto: convert getRandomValues views
panva Sep 22, 2026
2d84b7e
crypto: validate normalized hash names
panva Sep 22, 2026
4a72c1d
crypto: allow short AES-GCM IVs
panva Sep 22, 2026
a855a46
crypto: allow unbound SubtleCrypto.supports
panva Sep 22, 2026
1314d27
crypto: resolve supports overloads by type
panva Sep 22, 2026
ff86606
crypto: copy detached parameters as empty
panva Sep 22, 2026
e042d35
crypto: convert importKey data as a union
panva Sep 22, 2026
0370e02
crypto: copy parameters without array species
panva Sep 22, 2026
2e25ae4
crypto: check RSA JWK alg with SHA-3 hashes
panva Sep 22, 2026
2ef6046
crypto: reject duplicate unknown key usages
panva Sep 22, 2026
d54a2b2
crypto: handle PBKDF2 iteration limits
panva Sep 22, 2026
2f3e6df
crypto: copy derived bits without species
panva Sep 22, 2026
44a2965
crypto: minimize RSA public exponent metadata
panva Sep 22, 2026
fe09120
crypto: create key usage arrays without species
panva Sep 22, 2026
5e04680
crypto: derive Argon2 without worker threads
panva Sep 22, 2026
a1bea87
crypto: report actual RSA modulus lengths
panva Sep 22, 2026
7587062
crypto: split hybrid keys without species
panva Sep 22, 2026
7f58476
crypto: use the public CryptoKey prototype
panva Sep 22, 2026
a851dda
crypto: include EC public keys in PKCS8 exports
panva Sep 22, 2026
e4d746c
crypto: map JWK export failures to OperationError
panva Sep 22, 2026
359b07a
crypto: check EC coordinate conversion results
panva Sep 22, 2026
c6bbc1b
benchmark: cover Web Crypto conversion costs
panva Sep 23, 2026
ceeb371
crypto: verify empty KMAC outputs
panva Sep 23, 2026
0913452
tools: add lief to automated dependency updates
Renegade334 Sep 25, 2026
d84b455
zlib: reject reset while a zstd frame is incomplete
xia-chao Sep 25, 2026
9baea33
module: normalize package map paths
Dansatch Sep 25, 2026
7202aa5
url: create URLSearchParams collision map lazily
RomainLanz Sep 25, 2026
0f0892e
tls: initialize session and SNI before connecting
styfle Sep 25, 2026
995a67a
net: skip IPv6 regex when the string has no colon
anonrig Sep 25, 2026
c155248
test: ensure fsPromises.watch rejects on abort
hanityx Sep 25, 2026
2fd51fd
test: reduce expensive crypto test variants
panva Sep 25, 2026
354c2cc
net: speed up BlockList.check for strings
anonrig Sep 25, 2026
dbb0e6e
util,assert: expose util.isPartialDeepStrictEqual()
tlhunter Sep 25, 2026
a74a0ee
doc,src,test: fix typos in code comments
aguashui Sep 22, 2026
74835ee
src: ensure Socket(fd) cannot bypass allow-net permission
jasnell Sep 25, 2026
0f6cdce
ffi: allocate string argument storage lazily
soulee-dev Sep 25, 2026
583ee1c
sqlite: run generator return() on cursor refilter
trivikr Sep 22, 2026
7b1c74e
test: use spawnSync helpers in cpu-prof tests
DevJunz Sep 1, 2026
37b3db9
lib: fix stream loading bug in node:bench
jasnell Sep 18, 2026
6651596
src: reserve shared_array_buffers capacity in Message::Deserialize
agape1225 Sep 25, 2026
b901b97
ffi: use type errors for invalid signatures
HoonDongKang Sep 25, 2026
ab93a3d
http: preserve socket errors as response error causes
XadillaX Sep 16, 2026
81e4ac4
stream: support ArrayBufferView in Utf8Stream write() buffer mode
agape1225 Aug 14, 2026
51daf16
ffi: reject non-boolean copy arguments
christianaurichzm Sep 22, 2026
8b24247
fs: validate falsy openAsBlob type option
christianaurichzm Sep 25, 2026
de34ddc
src: throw on a malformed localStorage file
TrevorBurnham Sep 26, 2026
4906952
build: add GZIP_COMPRESSION Make variable
inoway46 Sep 25, 2026
605938e
tools: reduce source tarball compression in CI
inoway46 Sep 25, 2026
26102c2
stream: speed up flowing pipe of buffers
anonrig Sep 21, 2026
247c027
stream: skip write() checks in flowing pipe
anonrig Sep 21, 2026
37e9397
test: deflake debugger function name extraction
panva Sep 26, 2026
cee8eb9
test: deflake inspector async hook setup
panva Sep 24, 2026
fb3d90a
test: deflake test runner timeout coverage
panva Sep 24, 2026
1d68f23
deps: update googletest to 4267679b6887f349f17b01ccd70c9e3483689b25
nodejs-github-bot Sep 26, 2026
9819b0c
http: normalize CONNECT request paths
efekrskl Sep 26, 2026
2653b26
deps: V8: backport 786c1c2d88d4
eliau2005 Sep 26, 2026
2248869
build: add clang support for pgo on macOS/Linux
legendecas Sep 26, 2026
480ca7c
benchmark: fix shadowing that broke h=20 on incoming_headers benchmark
pimterry Sep 26, 2026
54e9330
zlib: reject reset after gzip/deflate emitted incomplete output
xia-chao Sep 26, 2026
6c927c0
zlib: preserve brotli params and dictionary on reset
xia-chao Sep 26, 2026
19732fc
worker: strip types in Web Worker module entries
osztenkurden Sep 26, 2026
dcc8665
stream: fix pipeline function tail deadlock
dayun6530 Sep 26, 2026
b896580
worker: remove messageerror listeners on exit
dayun6530 Sep 26, 2026
99a78b0
fs: fix crash on negative zero file descriptor
christianaurichzm Sep 26, 2026
19d8d19
test: add smoke tests for defer importing synthetic modules
MayaLekova Sep 26, 2026
0965b28
querystring: speed up default parse and unescape
anonrig Sep 26, 2026
f39916a
src: expose size and count in heap profile output
IlyasShabi Sep 26, 2026
215639d
events: fix addAbortListener for aborted signals
lazerg Sep 26, 2026
62187ab
stream: keep consumer state in fast mode
mcollina Sep 26, 2026
56e6a5c
worker: add Symbol.toStringTag to MessageChannel and MessagePort
lazerg Aug 25, 2026
78b502a
worker: add Symbol.toStringTag to BroadcastChannel
lazerg Aug 25, 2026
0607f14
tools: enable temporal by default in Nix integration
aduh95 Sep 26, 2026
8e79b1f
typings: wire up spawn_sync internal binding types
agape1225 Sep 27, 2026
702c744
sea: add test and update docs for import() with code cache
thisalihassan Sep 27, 2026
6ee32f8
build: support LIEF 0.17.x and 1.x
inoway46 Sep 27, 2026
17964bb
watch: detect files replaced via unlink and create
marcopiraccini Sep 27, 2026
e6abdf6
benchmark: remove duplicate ffi string length direct
HoonDongKang Sep 27, 2026
aaaca48
tools: check CI availability and workload
panva Sep 27, 2026
017ff85
test: split FFI call and callback coverage
panva Sep 27, 2026
61a87a2
test: deflake sliding window histogram test
jasnell Sep 25, 2026
4f84c4b
build, doc: move to redesign
avivkeller Aug 17, 2026
83c0e30
vfs: drop --vfs-mount, pin the load mount point
pipobscure Sep 23, 2026
afb61d6
vfs: make the reserved root readable through fs
pipobscure Sep 25, 2026
ee126e3
perf_hooks: allow RecordableHistogram to record 0
jasnell Sep 18, 2026
0bb9802
http: avoid toLowerCase on the server hot path
anonrig Sep 25, 2026
1d8f9a2
test: use Database in sqlite virtual table test
trivikr Sep 26, 2026
e06aa62
perf_hooks: fix truncation of monitorEventLoopDelay() resolution
jasnell Sep 27, 2026
9acdb59
build: toggle doc-kit verbosity based on V
bmuenzenmeyer Sep 27, 2026
80cd5d8
tools: bump the doc group in /tools/doc with 4 updates
dependabot[bot] Sep 27, 2026
232f178
buffer: add isLatin1
jasnell Sep 25, 2026
b7f6a66
buffer: add isLatin1
jasnell Sep 28, 2026
e241cb8
stream: keep webstreams nil requests in fast mode
mcollina Sep 28, 2026
d0a72f2
buffer: fix negative index for large buffers
Dansatch Sep 28, 2026
3c50781
test: deflake fast FFI buffer tests
panva Sep 28, 2026
886fd32
test: use common.PIPE in fs.cp socket tests
maksim-romanov Sep 28, 2026
caa7858
src: fix abort when two Environments share an IsolateData
codebytere Sep 13, 2026
697980b
inspector: fix connectToMainThread() abort without parent inspector
codebytere Sep 19, 2026
abccf93
src: let Environments on one isolate share a cleanup hook
codebytere Sep 20, 2026
12962d8
src: fix FreeEnvironment() breaking JS in sibling Environments
codebytere Sep 23, 2026
60d0aa0
src: add --process-timeout=N
jasnell Sep 25, 2026
41d6707
sqlite: rename DatabaseSync and StatementSync
araujogui Sep 26, 2026
52bbf8c
report: skip unresponsive workers on process timeout
trivikr Sep 27, 2026
6c924ee
deps: upgrade npm to 11.20.0
npm-cli-bot Sep 24, 2026
67ccff6
crypto: separate conversion from validation
panva Sep 22, 2026
32ba6d5
crypto: use backend cSHAKE and KMAC
panva Sep 23, 2026
f36efeb
module: avoid allocating a cache key string for every require()
MarshallOfSound Sep 28, 2026
fdf0572
deps: update timezone to 2026d
nodejs-github-bot Sep 29, 2026
5c34dd9
deps: update undici to 8.11.2
nodejs-github-bot Sep 29, 2026
f9da049
deps: update zlib to 1.3.2.1-motley-456ae73
nodejs-github-bot Sep 29, 2026
e998d26
http: add isValidHeaderName() and isValidHeaderValue()
jasnell Sep 27, 2026
12e5405
benchmark: add http header validator benchmark
jasnell Sep 27, 2026
9696e47
src: reduce InternalCallbackScope overhead
nigrosimone Sep 26, 2026
6918256
benchmark: add a node::MakeCallback benchmark
nigrosimone Sep 26, 2026
de797aa
test: check frame restore in CallbackScope
nigrosimone Sep 26, 2026
b10949c
tools: add `deps/LIEF` to the ignore list of `test-shared.yml`
aduh95 Sep 29, 2026
7a71549
deps: update lief to 1.0.0
nodejs-github-bot Sep 29, 2026
33caead
sqlite: throw on oversized string values
araujogui Sep 29, 2026
230cd0c
worker: fix postMessage overload resolution
panva Sep 27, 2026
05d533e
worker: convert importScripts arguments first
panva Sep 27, 2026
c2c5f4c
worker: preserve blob module URLs
panva Sep 27, 2026
ee51b04
worker: serialize messages after exit
panva Sep 27, 2026
6c23e21
worker: discard queued messages on termination
panva Sep 27, 2026
9b350d8
zlib: pledge input size in async zstdCompress()
Cherry Sep 27, 2026
168b764
benchmark: add zstdCompress benchmark
Cherry Sep 28, 2026
cd16dcb
sqlite: reject plans with unusable virtual table parameters
trivikr Sep 29, 2026
53cde9d
crypto: fix raw key export error for wrong key type
koreahghg Sep 29, 2026
1ff8d5c
test: use correct constructor in test-sqlite-virtual-table
Renegade334 Sep 30, 2026
343a5c2
ffi: fix use-after-free in PrepareFunction
trivikr Sep 30, 2026
5eea87c
src: fix builds without SSL and SQLite
panva Sep 30, 2026
25c08fc
src: remove `HAVE_QUIC` macro in favor of `OPENSSL_NO_QUIC`
aduh95 Sep 30, 2026
5345613
test: deflake inspector network fetch
panva Sep 26, 2026
fbdca3a
test: deflake debugger PID attachment and cleanup
panva Sep 26, 2026
7c34639
test: deflake inspector close connection test
panva Sep 26, 2026
a5ee59c
test: deflake http server mixed request timeouts
panva Sep 26, 2026
3f51c49
test: deflake http headers timeout keepalive
panva Sep 26, 2026
f23010d
test: deflake esm loader http imports
panva Sep 26, 2026
f59117e
test: deflake watch cwd with isolation none
panva Sep 26, 2026
a3ffd40
test: probe cluster workers with signal 0
panva Sep 26, 2026
f63ddfa
test: isolate styleText tests from the environment
panva Sep 26, 2026
286bffc
src: track handle cleanup per thread, not per IsolateData
codebytere Sep 23, 2026
6f610a8
inspector: throw ERR_INSPECTOR_NOT_AVAILABLE without an agent
codebytere Sep 22, 2026
1e9c10b
src: assert that an IsolateData outlives its Environments
codebytere Sep 22, 2026
aead8a9
test: cover Environments sharing an embedder-owned isolate
codebytere Sep 22, 2026
510dfd8
doc: update FreeEnvironment() notes for sibling Environments
codebytere Sep 22, 2026
e7121be
fs: stop recursive mkdir from retrying ENOENT forever
marcopiraccini Sep 30, 2026
9bdab1e
ffi: reject unsafe integers as length or offset
christianaurichzm Sep 30, 2026
4977e51
sqlite: use cached strings for property keys
kyungrae2002 Sep 30, 2026
a0e7141
child_process: build the default env block in one native pass
codebytere Sep 30, 2026
2c06236
tools: reduce bundle size of `benchmarkTools.nix` (#65388)
aduh95 Sep 30, 2026
7b25cb8
test: make histogram external memory test less overfitting
joyeecheung Sep 30, 2026
5f54bc7
tools: fix Nix diff tools when pushing more than 1 commit
aduh95 Sep 30, 2026
fe76deb
sqlite: restore connection state on reopen
araujogui Oct 1, 2026
c65a333
ffi: do not abort when a Worker stops in a callback
trivikr Oct 1, 2026
d573726
test_runner: do not crash on stdout that mimics a v8 frame
faizanu94 Oct 1, 2026
bee7e24
deps: upgrade openssl sources to openssl-3.5.9
nodejs-github-bot Sep 29, 2026
6b5ac2a
deps: update archs files for openssl-3.5.9
nodejs-github-bot Sep 29, 2026
2d3be6a
tools: update gyp-next to 0.22.3
nodejs-github-bot Oct 1, 2026
a952647
tools: keep OpenSSL update PRs in draft until arch configs committed
Renegade334 Oct 1, 2026
cd814e7
src: remove orphaned js_udp_wrap test binding
Renegade334 Oct 1, 2026
150c96e
deps: V8: cherry-pick c795f5948568
avivkeller Oct 2, 2026
11f8079
ffi: throw on allocation failure in toArrayBuffer()
trivikr Oct 2, 2026
fa7efaf
ffi: validate pointer ranges in optimized calls
trivikr Oct 2, 2026
afa02fb
process: use a class for nextTick resources
mcollina Oct 2, 2026
4387cb4
deps: update timezone to 2026e
nodejs-github-bot Oct 2, 2026
430262e
test: do not hardcode V8 serialization header
joyeecheung Oct 2, 2026
dc6ef03
module: centralize builtin exposure policies
sjungwon03 Oct 2, 2026
84db291
tools: bump brace-expansion from 5.0.9 to 5.0.12 in /tools/eslint
dependabot[bot] Oct 2, 2026
da32c79
fs: keep timestamps of files skipped by cpSync
christianaurichzm Oct 2, 2026
53fd8e7
ffi: remove permission checks from dlclose and dlsym
trivikr Oct 3, 2026
1047188
test: split process timeout report coverage
panva Oct 1, 2026
c19e2ce
test: deflake process timeout report cleanup
panva Oct 1, 2026
4706caf
test: mark worker init failure flaky on SmartOS
panva Oct 1, 2026
6c5806b
test: wait for ZIP source streams to close
panva Oct 3, 2026
9015b99
tools: bump brace-expansion in /tools/clang-format
dependabot[bot] Oct 3, 2026
9fa3109
crypto: improve random synchronous number generation performance
mertcanaltin Oct 3, 2026
7fb76f9
tools: add cache to `lint-js-and-md`
aduh95 Sep 30, 2026
83a1697
util: fix inspect indentation of detached DataView
Kjubikstronk Oct 3, 2026
11c3d71
benchmark: add implicit-framing case to http/set-header
mcollina Sep 30, 2026
14cc587
tools: avoid repeated subtree scans in must-call-assert
inoway46 Oct 3, 2026
edbff8c
src: fix --process-timeout message when exit waits
trivikr Oct 3, 2026
021f7d8
ffi: accept safe integer numbers for 64-bit arguments
HoonDongKang Oct 3, 2026
e3f861b
tools: wait for test processes instead of polling
mcollina Oct 3, 2026
f8d3011
http: cache parser callbacks
mcollina Sep 27, 2026
6948dd1
tools: fix nixpkgs updater script
aduh95 Sep 29, 2026
bb3d33e
zlib: fix abort with decodeStrings: false
Cherry Sep 29, 2026
6487d36
http: avoid dictionary-mode objects in responses
mcollina Sep 30, 2026
4251b8b
tools: share CI and benchmark build configuration
panva Oct 3, 2026
7702a50
http2: add new connectionWindowSize option
pimterry Sep 9, 2026
aff6017
util: make mime parsing faster
jasnell Oct 5, 2026
158f6f7
stream: share webstreams async iterator methods
mcollina Oct 5, 2026
bec52d9
build: fix vcbuild lint skipping lint-md-build
vedchaudhari Oct 5, 2026
593c964
tools: limit format-cpp checkout history
inoway46 Oct 5, 2026
a341ac4
build: fix vcbuild format-md install and exit
vedchaudhari Oct 5, 2026
0002037
build: update configure.py for z/OS
gabylb Oct 1, 2026
9f1db46
build: update common.gypi for z/OS
gabylb Oct 1, 2026
df96c92
tools: limit checkout for lint-cpp
inoway46 Oct 5, 2026
5837ef8
meta: bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
963804d
meta: bump github/codeql-action/init from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
39d721a
meta: bump github/codeql-action/autobuild from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
bec7c53
meta: bump github/codeql-action/analyze from 4.38.0 to 4.38.2
dependabot[bot] Oct 5, 2026
41e9ab9
watch: escape quotes and backslashes in NODE_OPTIONS
trivikr Oct 5, 2026
55af1dc
crypto: update root certificates to NSS 3.129
nodejs-github-bot Oct 6, 2026
8c556ab
deps: update histogram to 0.12.0
nodejs-github-bot Oct 6, 2026
ef1a602
test: update WPT for WebCryptoAPI to 3127c3a492
nodejs-github-bot Oct 6, 2026
53b3a05
test: update test426-fixtures to 9ea66b466fd37e8a4050033d23b3e1480973c3d
nodejs-github-bot Oct 6, 2026
6f6296f
doc: promote Alpine Linux to tier 2 support
sxa Sep 27, 2026
49072a0
2026-10-07, Version 26.11.0 (Current)
nodejs-github-bot Oct 5, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 2 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ updates:
semver-minor-days: 5
semver-patch-days: 5
exclude:
- '@node-core/doc-kit'
- '@doc-kit/*'
- '@node-core/*'
commit-message:
prefix: tools
open-pull-requests-limit: 10
Expand Down
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
31 changes: 22 additions & 9 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,11 +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 -- "${numbers[@]}"
env:
GH_TOKEN: ${{ github.token }}
PULL_REQUESTS: ${{ needs.get-prs-for-ci.outputs.numbers }}
MAX_WORKLOAD: ${{ vars.AUTO_START_CI_MAX_WORKLOAD || '15' }}
14 changes: 3 additions & 11 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,11 @@ jobs:
--pure --keep TAR_DIR --keep FLAKY_TESTS \
--keep SCCACHE_GHA_ENABLED --keep SCCACHE_GHA_RW_MODE \
--keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \
--arg useSeparateDerivationForV8 true \
--arg withPerfetto ${{ matrix.perfetto || false }} \
--arg loadJSBuiltinsDynamically false \
--arg ccache '(import <nixpkgs> {}).sccache' \
--arg devTools '[]' \
--arg benchmarkTools '[]' \
--run '
make build-ci -j4 V=1 && sccache --stop-server
'
' tools/nix/ci-shell.nix
mv out/Release/node base_node

- name: Checkout the merge commit
Expand All @@ -141,15 +137,11 @@ jobs:
nix-shell \
-I nixpkgs=./tools/nix/pkgs.nix \
--pure --keep SCCACHE_LOCAL_RW_MODE \
--arg useSeparateDerivationForV8 true \
--arg withPerfetto ${{ matrix.perfetto || false }} \
--arg loadJSBuiltinsDynamically false \
--arg ccache '(import <nixpkgs> {}).sccache' \
--arg devTools '[]' \
--arg benchmarkTools '[]' \
--run '
make build-ci -j4 V=1
'
' tools/nix/ci-shell.nix
env:
SCCACHE_LOCAL_RW_MODE: READ_ONLY

Expand Down Expand Up @@ -232,7 +224,7 @@ jobs:
nix-shell \
-I nixpkgs=./tools/nix/pkgs.nix \
--pure \
-E '(import <nixpkgs> {}).mkShell { buildInputs = import ./tools/nix/benchmarkTools.nix { withHttpBenchmarkDeps = false; }; }' \
-E '(import <nixpkgs> {}).mkShellNoCC { buildInputs = import ./tools/nix/benchmarkTools.nix { withHttpBenchmarkDeps = false; }; }' \
--run '
export LC_ALL=C.UTF-8
echo "> [!WARNING] "
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/build-shared.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,9 @@ jobs:
-I "nixpkgs=$TAR_DIR/tools/nix/pkgs.nix" \
--pure --keep TAR_DIR --keep FLAKY_TESTS \
--keep SCCACHE_GHA_ENABLED --keep ACTIONS_CACHE_SERVICE_V2 --keep ACTIONS_RESULTS_URL --keep ACTIONS_RUNTIME_TOKEN \
--arg loadJSBuiltinsDynamically false \
--arg ccache "${NIX_SCCACHE:-null}" \
--arg devTools '[]' \
--arg benchmarkTools '[]' \
--arg pkcs11 ${{ inputs.pkcs11-store-test }} \
${{ inputs.extra-nix-flags }} \
--run '
make -C "$TAR_DIR" run-ci -j4 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9 --skip-tests=$CI_SKIP_TESTS"
' "$TAR_DIR/shell.nix"
' "$TAR_DIR/tools/nix/ci-shell.nix"
7 changes: 6 additions & 1 deletion .github/workflows/build-tarball.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ env:
PYTHON_VERSION: '3.14'
FLAKY_TESTS: keep_retrying
CLANG_VERSION: '19'
NODE_VERSION: lts/*

permissions:
contents: read
Expand All @@ -84,12 +85,16 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
allow-prereleases: true
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
- name: Make tarball
run: |
export DISTTYPE=nightly
export DATESTRING=$(date "+%Y-%m-%d")
export COMMIT=$(git rev-parse --short=10 "$GITHUB_SHA")
./configure && make tar -j4 SKIP_XZ=1
./configure && make tar -j4 SKIP_XZ=1 GZIP_COMPRESSION=6
- name: Upload tarball artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
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}}
2 changes: 1 addition & 1 deletion .github/workflows/coverage-linux-without-intl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,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@0b35c9ecc4f0529d0eb674914510c22f85b196b4 # v7.1.0
with:
directory: ./coverage
2 changes: 1 addition & 1 deletion .github/workflows/coverage-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,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@0b35c9ecc4f0529d0eb674914510c22f85b196b4 # v7.1.0
with:
directory: ./coverage
2 changes: 1 addition & 1 deletion .github/workflows/coverage-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,6 @@ jobs:
- name: Clean tmp
run: npx rimraf ./coverage/tmp
- name: Upload
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
uses: codecov/codecov-action@0b35c9ecc4f0529d0eb674914510c22f85b196b4 # v7.1.0
with:
directory: ./coverage
31 changes: 27 additions & 4 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 @@ -54,7 +60,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 @@ -72,7 +79,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 @@ -93,13 +100,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 @@ -129,7 +152,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 }}

Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/nix-changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,16 @@ jobs:

- name: Compute requisites before change
run: |
git reset HEAD^ --hard
# TODO(aduh95): remove this once list-requisites.sh has reached `main`
[ -f tools/nix/list-requisites.sh ] || git checkout FETCH_HEAD -- tools/nix/list-requisites.sh
BASE_SHA="$(git rev-parse HEAD^)"
if [ -n "$PUSH_BEFORE_SHA" ] && [ "$PUSH_BEFORE_SHA" != "$BASE_SHA" ] \
&& [ "$PUSH_BEFORE_SHA" != "0000000000000000000000000000000000000000" ] \
&& git fetch --no-tags --depth=1 origin "$PUSH_BEFORE_SHA"; then
BASE_SHA="$PUSH_BEFORE_SHA"
fi
git reset "$BASE_SHA" --hard
./tools/nix/list-requisites.sh > requisites-${{ matrix.system }}-before.list
env:
PUSH_BEFORE_SHA: ${{ github.event_name == 'push' && github.event.before || '' }}

- name: Output diff
run: |
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
3 changes: 3 additions & 0 deletions .github/workflows/test-linux-perfetto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ jobs:
- name: Build
working-directory: node
run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --v8-enable-temporal-support --with-perfetto"
- name: Get trace_processor
working-directory: node
run: make tools/perfetto/trace_processor_shell
- name: Test
working-directory: node
run: make test-ci -j1 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9"
Expand Down
Loading
Loading