diff --git a/AGENTS.md b/AGENTS.md index 6c87df23fb..48c266056c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -73,7 +73,13 @@ Bump `upstream-base.txt`, run `prepare.sh`, resolve conflicts in `out/`, regenerate. Expect a handful of small conflicts. **A clean `git am` is not proof of correctness** — an upstream restructure can leave a platform guard (`#if TARGET_OS_OSX`) enclosing the wrong span, which only the compile -catches. → [docs/UPGRADING.md](./docs/UPGRADING.md) +catches. Two things bite every time: `prepare.sh`'s `--depth 1` clone has no +pre-image blobs, so a patch on an upstream-modified file dies with `sha1 +information is lacking or useless` until you `git -C out fetch --depth 1 +origin tag `; and `prepare.sh` can't resume, so after a conflict +you apply the rest of the series *and* redo the `mobile-src` overlay by hand. +New upstream tests need `.status` triage before the PR, not after — the full +device suite gates the merge. → [docs/UPGRADING.md](./docs/UPGRADING.md) ## Gotchas diff --git a/docs/TESTING.md b/docs/TESTING.md index 14b23fb1bc..a257c6a875 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -410,9 +410,16 @@ A test that runs with `--permission` but without `--allow-fs-write` cannot be scored when it calls `process.exit()`: the harness writes its verdict to a file from a `process.on('exit')` hook, and the permission model — correctly — denies that write, so no verdict lands and the run reports FAIL whatever the test did. -This is not fixable from inside the sandbox doing the denying. The 22 affected +This is not fixable from inside the sandbox doing the denying. The affected cases are skipped, with that reason recorded next to them in `parallel.status`. +The flags header is not the whole story: a test that starts with +`--allow-fs-write` and then calls `process.permission.drop('fs.write')` (or +`drop('fs')`) has the same problem from that point on, and the exit hook runs +after it. Read the `drop()` calls, not just the `// Flags:` line. Every +upstream release adds a few of these — → [UPGRADING.md](./UPGRADING.md#new-upstream-tests) +for the triage to run when the base moves. + ### The NAPI addon gate After the curated subset, each device workflow builds the **crc-native** N-API diff --git a/docs/UPGRADING.md b/docs/UPGRADING.md index 168565b8b3..a92c539688 100644 --- a/docs/UPGRADING.md +++ b/docs/UPGRADING.md @@ -10,7 +10,7 @@ occasionally, one that only the compile catches (see the warning below). ## Re-base the series ```sh -$EDITOR upstream-base.txt # bump the tag, e.g. v24.19.0 +$EDITOR upstream-base.txt # bump the tag, e.g. v24.20.0 scripts/prepare.sh # clone new base + apply series ``` @@ -43,21 +43,142 @@ everything it needs to. Also: - check `.github/workflows/` in `out/` for **new upstream workflows** the - removal patch doesn't cover yet — delete-and-own them in the upstream-CI - removal patch (`ci-remove-upstream-only-workflows-and-config.patch`); a + removal patch doesn't cover yet — `git rm` them in `out/` *and* add each + path to `patches/files.map` against the upstream-CI removal patch + (`ci-remove-upstream-only-workflows-and-config.patch`), or + `regenerate-patches.py` rejects the deletion as owned by no patch. A `verify-patches` job asserts the materialized tree carries zero workflow files, so a missed one fails loudly. +- add `.status` entries for the tests upstream just added — see [new upstream + tests](#new-upstream-tests) below. +- watch for upstream **splitting a build target**. gyp resolves the new + dependency on Android, but the iOS framework links a hand-maintained list of + archives — `outputs_common` in `mobile-src/tools/ios_framework_prepare.sh` + plus four entries in the `NodeMobile.xcodeproj` pbxproj — so a new + `static_library` shows up as undefined symbols at `Ld`, long after every + compile has passed. v24.19.0 split `libnode_base` out of `libnode`; + v24.20.0 split `libncrypto_engine` out of `libncrypto`. If an iOS leg + fails with `Undefined symbols` naming a class you did not touch, check + `deps/*/*.gyp` for a target that did not exist at the old base. Note the + pbxproj is `.gitignore`d inside the tree, so staging it needs `git add -f`. + +### `sha1 information is lacking or useless` + +A patch that stops with -Then regenerate and commit: +``` +error: sha1 information is lacking or useless (README.md). +error: could not build fake ancestor +``` + +has not conflicted. `--3way` needs the *pre-image* blob the patch header +records, and `prepare.sh` clones `--depth 1`, so `out/` holds only the new +tag's blobs — for any file upstream touched since the old base, git has +nothing to merge against. Fetch the base you are moving off to supply them: + +```sh +git -C out fetch --depth 1 origin tag v24.19.0 +``` + +Retry the patch and it either applies or fails as an ordinary content +conflict you can resolve. Do this before editing anything by hand: with the +old blobs present, `git am --3way` absorbs most upstream drift on its own. + +### Finishing the series by hand + +`prepare.sh` refuses to run when `out/` exists, so it cannot be re-run to +resume. Once you have resolved the conflict, land it and apply the rest of +`patches/series` yourself with the same invocation the script uses: + +```sh +git -C out am --continue +git -C out am --3way --keep-cr --whitespace=nowarn patches/.patch +``` + +Then redo step 3, the `mobile-src/` overlay, which never ran. It is not +optional — without that commit `out/` is upstream plus patches, and +`regenerate-patches.py` reads every fork-only file as deleted: + +```sh +( cd mobile-src && git ls-files -z --cached --others --exclude-standard . ) > /tmp/manifest +( cd mobile-src && tar cf - --null -T /tmp/manifest ) | ( cd out && tar xf - ) +git -C out add -f --pathspec-from-file=/tmp/manifest --pathspec-file-nul +git -C out commit -m "mobile: fork-only files (mobile-src overlay)" +``` + +### Regenerate and commit ```sh -git -C out add -A && git -C out commit -m "resolve v24.19.0 conflicts" # any shape +git -C out add -A && git -C out commit -m "resolve v24.20.0 conflicts" # any shape scripts/regenerate-patches.py out # re-emits patches/ + syncs mobile-src/ # update expected-tree.txt to the hash the script prints -git add -A && git commit -m "upgrade: rebase patch series onto v24.19.0" +git add -A && git commit -m "upgrade: rebase patch series onto v24.20.0" +``` + +Reconstruction from a clean clone is what CI checks, so check it here too: +`rm -rf /tmp/verify && scripts/prepare.sh /tmp/verify` must print `OK` on the +hash you just committed. + +## New upstream tests + +Edit `test/*/*.status` in `out/`, before the regenerate step above. + +The full suite is a deny-list, so every test a release adds runs on device +the moment the base moves — and the suite gates the merge. Work out what +needs skipping *before* pushing rather than reading it off a red run: + +```sh +git -C out diff --name-status v24.19.0 v24.20.0 -- test/parallel test/sequential | grep '^A' ``` -Open the PR. CI re-runs the reconstruction against a fresh upstream clone, +A minor release can add hundreds. Most need nothing. Triage by cause: + +- **Spawns a child node process** — cannot pass on Android, where + `process.execPath` is `app_process64`, so the child SIGABRTs (its stderr + comes back as `Error changing dalvik-cache ownership`). Skip. Grepping for + `child_process` is **not** enough, and this is where triage actually goes + wrong: a test can spawn through `common.spawnPromisified` destructured off + `require('../common')`, which never names `child_process`, or through + `node:test`'s `run({ isolation: 'process' })`, which spawns inside the + runner. Grep for `process.execPath`, `spawnPromisified` and `isolation` + too, and read the test titles — `'…forwarded from child processes'` is the + giveaway that greps miss. +- **Runs under `--permission` with no `--allow-fs-write`** at exit — read the + `// Flags:` header, and watch for a test that starts with the permission + and calls `process.permission.drop('fs.write')` (or `'fs'`) partway + through. The verdict write is denied either way. Skip. +- **Self-skipping** — a test that ends at `common.skip()` scores PASS, so it + needs no entry. This is why v24.20.0's ~250 new QUIC tests are absent from + `parallel.status`: the mobile build doesn't pass `--experimental-quic`, so + `hasQuic` is false and each one skips itself. +- **Already covered by a glob** — check before adding. `test-cli-*`, + `test-eslint-*` and `test-child-process-*` are skipped wholesale on both + platforms; `test-debugger-probe-*` is a glob on Android but an itemized + list on iOS, so a new member of that family needs an iOS entry only. +- **Everything else** — leave it to run. The suite is the measurement. + +A child-process spawner fails the Android suite outright, and on the iOS +*simulator* it is **flaky rather than passing**: `posix_spawn` is permitted +there, so it often works and sometimes does not — the same test failed the +Android suite, passed one iOS run, then failed the next. Skip these on both +platforms. A green iOS shard is not evidence the test is sound; it cannot +work on a real device either way, which is why `parallel.status` already +carries a block saying this class is "not coverage worth keeping". + +`// Flags:` headers *are* honoured on device (the proxy forwards the whole +argv `test.py` hands it), so a new flag-gated feature needs no special +handling. + +Put entries in the cause-named section that matches, on both platforms unless +the cause is platform-specific, in the block's existing sort order. Leave the +blocks headed *"measured on a full device sweep"* alone: those record what a +run actually observed, and an inferred entry filed there makes the heading a +lie. Say in the PR that the new entries are inferred and the suite is what +confirms them. + +## Open the PR + +CI re-runs the reconstruction against a fresh upstream clone, validates each patch individually, and — once merged — builds the full matrix. The version bump and release are a separate step (below), so an upgrade can land and be exercised before anyone decides to ship it. @@ -66,9 +187,7 @@ Because the PR moves `upstream-base.txt`, it also runs the **full device suite** on both platforms and cannot merge until that is green (the curated gate is an allow-list, so it cannot see tests upstream just added — they would otherwise surface on the nightly or at release). Expect the PR to take -substantially longer than a normal one, and expect new upstream tests to need -`.status` entries: anything that spawns a child node process cannot pass on -either platform. → [TESTING.md](./TESTING.md) +substantially longer than a normal one. → [TESTING.md](./TESTING.md) Merging the bump also moves this fork's `upstream-base` branch to the new tag, via the `upstream-base` job. That branch is load-bearing rather than diff --git a/expected-tree.txt b/expected-tree.txt index 5d0f480764..63ea072c63 100644 --- a/expected-tree.txt +++ b/expected-tree.txt @@ -14,4 +14,4 @@ # run prepare.sh (or regenerate-patches.py, which prints the hash) and # update the value below in the same commit. If you forget, CI fails and # prints the hash it got. -8dad26f6016a4ef21917fceb8d033696b0c9f2b7 +fbc10b7d21282ad5b4654f335263bcd40026eb48 diff --git a/mobile-src/tools/ios-framework/NodeMobile.xcodeproj/project.pbxproj b/mobile-src/tools/ios-framework/NodeMobile.xcodeproj/project.pbxproj index 333a453b73..ffffa6cc98 100644 --- a/mobile-src/tools/ios-framework/NodeMobile.xcodeproj/project.pbxproj +++ b/mobile-src/tools/ios-framework/NodeMobile.xcodeproj/project.pbxproj @@ -19,6 +19,7 @@ A36728F02E53580A004DF2FB /* libllhttp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 33300EAC240437620019E302 /* libllhttp.a */; }; A36728F12E53580A004DF2FB /* libnbytes.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A36728C02E530EF7004DF2FB /* libnbytes.a */; }; A36728F22E53580A004DF2FB /* libncrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A36728C12E530EF7004DF2FB /* libncrypto.a */; }; + B1CE0A012E53580A004DF2FB /* libncrypto_engine.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B1CE0A022E530EF7004DF2FB /* libncrypto_engine.a */; }; A36728F32E53580A004DF2FB /* libnghttp2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 334822141F6AFBD200CF403E /* libnghttp2.a */; }; A36728F42E53580A004DF2FB /* libnode.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3376C91D1EC3922F0007AD59 /* libnode.a */; }; A36728F42E53580A004E02FB /* libnode_base.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A36728F42E53580A004E12FB /* libnode_base.a */; }; @@ -77,6 +78,7 @@ A36728BF2E530EF7004DF2FB /* libabseil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libabseil.a; path = bin/libabseil.a; sourceTree = ""; }; A36728C02E530EF7004DF2FB /* libnbytes.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libnbytes.a; path = bin/libnbytes.a; sourceTree = ""; }; A36728C12E530EF7004DF2FB /* libncrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libncrypto.a; path = bin/libncrypto.a; sourceTree = ""; }; + B1CE0A022E530EF7004DF2FB /* libncrypto_engine.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libncrypto_engine.a; path = bin/libncrypto_engine.a; sourceTree = ""; }; A36728C32E530EF7004DF2FB /* libzlib_data_chunk_simd.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzlib_data_chunk_simd.a; path = bin/libzlib_data_chunk_simd.a; sourceTree = ""; }; A36728C62E5355E5004DF2FB /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.5.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; A3F2E7582E716AA30001C23B /* libsqlite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsqlite.a; path = bin/libsqlite.a; sourceTree = ""; }; @@ -127,6 +129,7 @@ A36728FB2E53580A004DF2FB /* libv8_compiler.a in Frameworks */, D9A7619D1F7C63A8006AFE86 /* CoreFoundation.framework in Frameworks */, A36728F22E53580A004DF2FB /* libncrypto.a in Frameworks */, + B1CE0A012E53580A004DF2FB /* libncrypto_engine.a in Frameworks */, A36729032E53580A004DF2FB /* libzlib.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -161,6 +164,7 @@ A36728BD2E530EF7004DF2FB /* libhighway.a */, A36728C02E530EF7004DF2FB /* libnbytes.a */, A36728C12E530EF7004DF2FB /* libncrypto.a */, + B1CE0A022E530EF7004DF2FB /* libncrypto_engine.a */, A36728BA2E530EF7004DF2FB /* libsimdjson.a */, DEADBEEF000000000000D001 /* libicui18n.a */, DEADBEEF000000000000D003 /* libicuucx.a */, diff --git a/mobile-src/tools/ios_framework_prepare.sh b/mobile-src/tools/ios_framework_prepare.sh index 4e3e546ff7..ef081b370f 100755 --- a/mobile-src/tools/ios_framework_prepare.sh +++ b/mobile-src/tools/ios_framework_prepare.sh @@ -66,6 +66,9 @@ declare -a outputs_common=( "libmerve.a" "libnbytes.a" "libncrypto.a" + # v24.20.0 split EnginePointer out of ncrypto into its own target; libnode_base + # references it, so the framework link needs the archive too. + "libncrypto_engine.a" "libnghttp2.a" "libnode.a" # node's own objects; upstream v24.19.0 split them out of libnode into the diff --git a/patches/build-Android-iOS-dest-os-and-toolchain-configure.py.patch b/patches/build-Android-iOS-dest-os-and-toolchain-configure.py.patch index c8735bf1d0..e5bbee1afb 100644 --- a/patches/build-Android-iOS-dest-os-and-toolchain-configure.py.patch +++ b/patches/build-Android-iOS-dest-os-and-toolchain-configure.py.patch @@ -137,7 +137,7 @@ index 5cea0393f4..dfec53e67e 100644 - os.system("./configure --dest-cpu=" + DEST_CPU + " --dest-os=android --openssl-no-asm --cross-compiling") + os.system("./configure --dest-cpu=" + DEST_CPU + " --dest-os=android --openssl-no-asm --with-intl=" + intl + extra_flags + " --cross-compiling --shared") diff --git a/configure.py b/configure.py -index a9910d038f..09a7e45d57 100755 +index 7fd64a9620..40642c1af4 100755 --- a/configure.py +++ b/configure.py @@ -1146,6 +1146,11 @@ parser.add_argument('-C', @@ -152,7 +152,7 @@ index a9910d038f..09a7e45d57 100755 parser.add_argument('--clang-cl', action='store', dest='clang_cl', -@@ -1626,6 +1631,9 @@ def configure_node_cctest_sources(o): +@@ -1655,6 +1660,9 @@ def configure_node_cctest_sources(o): SearchFiles('test/cctest', 'h') def configure_node(o): diff --git a/patches/build-mobile-platform-settings-in-common.gypi.patch b/patches/build-mobile-platform-settings-in-common.gypi.patch index 256aecff52..a3db68104d 100644 --- a/patches/build-mobile-platform-settings-in-common.gypi.patch +++ b/patches/build-mobile-platform-settings-in-common.gypi.patch @@ -23,10 +23,10 @@ Co-authored-by: João Matos 1 file changed, 118 insertions(+), 7 deletions(-) diff --git a/common.gypi b/common.gypi -index a2cd172f10..1d39345051 100644 +index 83e0691d4a..dc33231a0d 100644 --- a/common.gypi +++ b/common.gypi -@@ -111,7 +111,7 @@ +@@ -112,7 +112,7 @@ 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/obj.target/tools/v8_gypfiles/libv8_snapshot.a', }], @@ -35,7 +35,7 @@ index a2cd172f10..1d39345051 100644 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a', }], -@@ -222,6 +222,23 @@ +@@ -223,6 +223,23 @@ }], ], }], @@ -59,7 +59,7 @@ index a2cd172f10..1d39345051 100644 ['OS=="solaris"', { # pull in V8's postmortem metadata 'ldflags': [ '-Wl,-z,allextract' ] -@@ -230,7 +247,7 @@ +@@ -231,7 +248,7 @@ # increase performance, number from experimentation 'cflags': [ '-qINLINE=::150:100000' ] }], @@ -68,7 +68,7 @@ index a2cd172f10..1d39345051 100644 # -fno-omit-frame-pointer is necessary for the --perf_basic_prof # flag to work correctly. perf(1) gets confused about JS stack # frames otherwise, even with --call-graph dwarf. -@@ -449,7 +466,7 @@ +@@ -450,7 +467,7 @@ [ 'target_arch=="arm64"', { 'msvs_configuration_platform': 'arm64', }], @@ -77,7 +77,7 @@ index a2cd172f10..1d39345051 100644 'cflags+': [ '-fno-omit-frame-pointer', '-fsanitize=address', -@@ -477,7 +494,7 @@ +@@ -478,7 +495,7 @@ }], ], }], @@ -86,7 +86,7 @@ index a2cd172f10..1d39345051 100644 'cflags+': [ '-fno-omit-frame-pointer', '-fsanitize=undefined', -@@ -486,7 +503,7 @@ +@@ -487,7 +504,7 @@ 'cflags!': [ '-fno-omit-frame-pointer' ], 'ldflags': [ '-fsanitize=undefined' ], }], @@ -95,7 +95,7 @@ index a2cd172f10..1d39345051 100644 'xcode_settings': { 'OTHER_CFLAGS+': [ '-fno-omit-frame-pointer', -@@ -594,11 +611,13 @@ +@@ -595,11 +612,13 @@ }], ['_toolset=="host"', { 'conditions': [ @@ -111,7 +111,7 @@ index a2cd172f10..1d39345051 100644 'cflags': [ '-m64' ], 'ldflags': [ '-m64' ], }], -@@ -758,6 +777,98 @@ +@@ -759,6 +778,98 @@ }], ], }], diff --git a/patches/build-mobile-targets-in-node.gyp-node.gypi.patch b/patches/build-mobile-targets-in-node.gyp-node.gypi.patch index 9ee3965025..9f382a5963 100644 --- a/patches/build-mobile-targets-in-node.gyp-node.gypi.patch +++ b/patches/build-mobile-targets-in-node.gyp-node.gypi.patch @@ -21,7 +21,7 @@ Co-authored-by: Julia Samól 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/node.gyp b/node.gyp -index bd66c9b498..06589d8cc3 100644 +index c58f4812e2..d8b6eb51f5 100644 --- a/node.gyp +++ b/node.gyp @@ -68,6 +68,11 @@ @@ -36,7 +36,7 @@ index bd66c9b498..06589d8cc3 100644 '<@(node_builtin_shareable_builtins)', ], 'node_sources': [ -@@ -922,7 +927,8 @@ +@@ -923,7 +928,8 @@ '<@(node_quic_sources)', ], }], @@ -46,7 +46,7 @@ index bd66c9b498..06589d8cc3 100644 'target_arch=="x64" and ' 'node_target_type=="executable"', { 'defines': [ 'NODE_ENABLE_LARGE_CODE_PAGES=1' ], -@@ -1399,8 +1405,9 @@ +@@ -1405,8 +1411,9 @@ ['OS=="solaris"', { 'ldflags': [ '-I<(SHARED_INTERMEDIATE_DIR)' ] }], @@ -58,7 +58,7 @@ index bd66c9b498..06589d8cc3 100644 'type': 'none', }], [ 'node_shared=="true"', { -@@ -1566,7 +1573,8 @@ +@@ -1627,7 +1634,8 @@ [ 'node_shared_libuv=="false"', { 'dependencies': [ 'deps/uv/uv.gyp:libuv#host' ], }], diff --git a/patches/build-v8-mobile-host-target-settings-in-v8-gypfiles.patch b/patches/build-v8-mobile-host-target-settings-in-v8-gypfiles.patch index be6a934538..92c0c6032b 100644 --- a/patches/build-v8-mobile-host-target-settings-in-v8-gypfiles.patch +++ b/patches/build-v8-mobile-host-target-settings-in-v8-gypfiles.patch @@ -46,7 +46,7 @@ index e614c39a6b..711428f898 100644 'configurations': { 'Debug': { diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp -index 95194aca28..217a787878 100644 +index f90a29d102..b814fee544 100644 --- a/tools/v8_gypfiles/v8.gyp +++ b/tools/v8_gypfiles/v8.gyp @@ -868,6 +868,15 @@ diff --git a/patches/ci-remove-upstream-only-workflows-and-config.patch b/patches/ci-remove-upstream-only-workflows-and-config.patch index 8e899b86b6..e9ef98a33e 100644 --- a/patches/ci-remove-upstream-only-workflows-and-config.patch +++ b/patches/ci-remove-upstream-only-workflows-and-config.patch @@ -24,27 +24,27 @@ is read only from the default branch and is left untouched. .github/SUPPORT.md | 27 -- .github/label-pr-config.yml | 224 ------------ .github/workflows/auto-start-ci.yml | 74 ---- - .github/workflows/build-tarball.yml | 102 ------ + .github/workflows/build-tarball.yml | 96 ------ .github/workflows/close-stalled.yml | 36 -- .github/workflows/codeql.yml | 42 --- .github/workflows/comment-labeled.yml | 57 ---- .../commit-lint-problem-matcher.json | 13 - .github/workflows/commit-lint.yml | 35 -- .github/workflows/commit-queue.yml | 99 ------ - .../workflows/coverage-linux-without-intl.yml | 86 ----- - .github/workflows/coverage-linux.yml | 86 ----- - .github/workflows/coverage-windows.yml | 100 ------ + .../workflows/coverage-linux-without-intl.yml | 84 ----- + .github/workflows/coverage-linux.yml | 84 ----- + .github/workflows/coverage-windows.yml | 98 ------ .github/workflows/create-release-proposal.yml | 81 ----- - .github/workflows/daily-wpt-fyi.yml | 179 ---------- - .github/workflows/daily.yml | 32 -- - .github/workflows/doc.yml | 43 --- + .github/workflows/daily-wpt-fyi.yml | 177 ---------- + .github/workflows/daily.yml | 30 -- + .github/workflows/doc.yml | 41 --- .../workflows/find-inactive-collaborators.yml | 50 --- .github/workflows/find-inactive-tsc.yml | 62 ---- .github/workflows/label-flaky-test-issue.yml | 53 --- .github/workflows/label-pr.yml | 18 - .github/workflows/license-builder.yml | 38 --- .github/workflows/lint-release-proposal.yml | 119 ------- - .github/workflows/linters.yml | 262 -------------- + .github/workflows/linters.yml | 250 -------------- .github/workflows/major-release.yml | 49 --- .github/workflows/notify-on-push.yml | 61 ---- .github/workflows/notify-on-review-wanted.yml | 45 --- @@ -52,16 +52,17 @@ is read only from the default branch and is left untouched. .../remark-lint-problem-matcher.json | 22 -- .github/workflows/scorecard.yml | 81 ----- .github/workflows/stale.yml | 51 --- - .github/workflows/stress-test.yml | 116 ------- - .github/workflows/test-internet.yml | 66 ---- - .github/workflows/test-linux.yml | 87 ----- - .github/workflows/test-macos.yml | 104 ------ + .github/workflows/stress-test.yml | 114 ------- + .github/workflows/test-internet.yml | 64 ---- + .github/workflows/test-linux-quic.yml | 69 ---- + .github/workflows/test-linux.yml | 85 ----- + .github/workflows/test-macos.yml | 102 ------ .github/workflows/timezone-update.yml | 74 ---- .github/workflows/tools.yml | 321 ------------------ .github/workflows/update-openssl.yml | 61 ---- .github/workflows/update-v8.yml | 57 ---- - .github/workflows/update-wpt.yml | 87 ----- - 41 files changed, 3247 deletions(-) + .github/workflows/update-wpt.yml | 95 ------ + 42 files changed, 3286 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/SUPPORT.md delete mode 100644 .github/label-pr-config.yml @@ -96,6 +97,7 @@ is read only from the default branch and is left untouched. delete mode 100644 .github/workflows/stale.yml delete mode 100644 .github/workflows/stress-test.yml delete mode 100644 .github/workflows/test-internet.yml + delete mode 100644 .github/workflows/test-linux-quic.yml delete mode 100644 .github/workflows/test-linux.yml delete mode 100644 .github/workflows/test-macos.yml delete mode 100644 .github/workflows/timezone-update.yml @@ -469,10 +471,10 @@ index 34488eeed6..0000000000 - GH_REPO: ${{ github.repository }} diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml deleted file mode 100644 -index 9d2cca4782..0000000000 +index 0f17013755..0000000000 --- a/.github/workflows/build-tarball.yml +++ /dev/null -@@ -1,102 +0,0 @@ +@@ -1,96 +0,0 @@ -name: Build from tarball - -on: @@ -516,15 +518,13 @@ index 9d2cca4782..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Make tarball - run: | - export DISTTYPE=nightly @@ -534,9 +534,8 @@ index 9d2cca4782..0000000000 - - name: Upload tarball artifact - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: -- name: tarballs - path: '*.tar.gz' -- compression-level: 0 +- archive: false - test-tarball-linux: - needs: build-tarball - runs-on: ubuntu-24.04-arm @@ -546,26 +545,23 @@ index 9d2cca4782..0000000000 - SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} - SCCACHE_IDLE_TIMEOUT: '0' - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - sparse-checkout: .github/actions/install-clang - sparse-checkout-cone-mode: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - - name: Download tarball - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 - with: -- name: tarballs - path: tarballs - - name: Extract tarball - run: | @@ -577,7 +573,7 @@ index 9d2cca4782..0000000000 - run: make -C "$TAR_DIR" test-ci -j1 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" diff --git a/.github/workflows/close-stalled.yml b/.github/workflows/close-stalled.yml deleted file mode 100644 -index 56c0f2542b..0000000000 +index 3c7ab04339..0000000000 --- a/.github/workflows/close-stalled.yml +++ /dev/null @@ -1,36 +0,0 @@ @@ -603,7 +599,7 @@ index 56c0f2542b..0000000000 - if: github.repository == 'nodejs/node' - runs-on: ubuntu-slim - steps: -- - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 +- - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - days-before-close: 30 @@ -619,7 +615,7 @@ index 56c0f2542b..0000000000 - days-before-stale: -1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 -index c869c23cac..0000000000 +index 23084c68ac..0000000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,42 +0,0 @@ @@ -649,20 +645,20 @@ index c869c23cac..0000000000 - - steps: - - name: Checkout repository -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL -- uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 +- uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 - with: - languages: ${{ matrix.language }} - config-file: ./.github/codeql-config.yml - - - name: Autobuild -- uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 +- uses: github/codeql-action/autobuild@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 - - - name: Perform CodeQL Analysis -- uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 +- uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 - with: - category: /language:${{matrix.language}} diff --git a/.github/workflows/comment-labeled.yml b/.github/workflows/comment-labeled.yml @@ -749,7 +745,7 @@ index 72dd13b9e0..0000000000 -} diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml deleted file mode 100644 -index 93ca3425be..0000000000 +index 896340ba3a..0000000000 --- a/.github/workflows/commit-lint.yml +++ /dev/null @@ -1,35 +0,0 @@ @@ -775,7 +771,7 @@ index 93ca3425be..0000000000 - run: | - echo "plusOne=$((${{ github.event.pull_request.commits }} + 1))" >> $GITHUB_OUTPUT - echo "minusOne=$((${{ github.event.pull_request.commits }} - 1))" >> $GITHUB_OUTPUT -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: ${{ steps.nb-of-commits.outputs.plusOne }} - persist-credentials: false @@ -790,7 +786,7 @@ index 93ca3425be..0000000000 - git rev-parse HEAD~${{ steps.nb-of-commits.outputs.minusOne }} | xargs npx -q core-validate-commit --no-validate-metadata --tap diff --git a/.github/workflows/commit-queue.yml b/.github/workflows/commit-queue.yml deleted file mode 100644 -index 8b5f37807b..0000000000 +index 7af7122687..0000000000 --- a/.github/workflows/commit-queue.yml +++ /dev/null @@ -1,99 +0,0 @@ @@ -855,7 +851,7 @@ index 8b5f37807b..0000000000 - if: needs.get_mergeable_prs.outputs.numbers != '' - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - # A personal token is required because pushing with GITHUB_TOKEN will - # prevent commits from running CI after they land. It needs @@ -895,10 +891,10 @@ index 8b5f37807b..0000000000 - GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml deleted file mode 100644 -index 69fdc02c65..0000000000 +index a76d4d47e5..0000000000 --- a/.github/workflows/coverage-linux-without-intl.yml +++ /dev/null -@@ -1,86 +0,0 @@ +@@ -1,84 +0,0 @@ -name: Coverage Linux (without intl) - -on: @@ -950,20 +946,18 @@ index 69fdc02c65..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-24.04 - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - - name: Install gcovr - run: pip install gcovr==7.2 - - name: Configure @@ -987,10 +981,10 @@ index 69fdc02c65..0000000000 - directory: ./coverage diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml deleted file mode 100644 -index f4b7ed4296..0000000000 +index 65f52f5b36..0000000000 --- a/.github/workflows/coverage-linux.yml +++ /dev/null -@@ -1,86 +0,0 @@ +@@ -1,84 +0,0 @@ -name: Coverage Linux - -on: @@ -1042,20 +1036,18 @@ index f4b7ed4296..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-24.04-arm - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - - name: Install gcovr - run: pip install gcovr==7.2 - - name: Configure @@ -1079,10 +1071,10 @@ index f4b7ed4296..0000000000 - directory: ./coverage diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml deleted file mode 100644 -index 7d5afebad4..0000000000 +index cbb5a776cb..0000000000 --- a/.github/workflows/coverage-windows.yml +++ /dev/null -@@ -1,100 +0,0 @@ +@@ -1,98 +0,0 @@ -name: Coverage Windows - -on: @@ -1154,17 +1146,15 @@ index 7d5afebad4..0000000000 - if: github.event.pull_request.draft == false - runs-on: windows-2025 - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Install deps - run: choco install nasm -- - name: Environment Information -- run: npx envinfo - - name: Build - run: ./vcbuild.bat clang-cl - # TODO(bcoe): investigate tests that fail with coverage enabled @@ -1185,7 +1175,7 @@ index 7d5afebad4..0000000000 - directory: ./coverage diff --git a/.github/workflows/create-release-proposal.yml b/.github/workflows/create-release-proposal.yml deleted file mode 100644 -index ae4c4240a2..0000000000 +index 883bb48b0d..0000000000 --- a/.github/workflows/create-release-proposal.yml +++ /dev/null @@ -1,81 +0,0 @@ @@ -1224,7 +1214,7 @@ index ae4c4240a2..0000000000 - RELEASE_LINE: ${{ inputs.release-line }} - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - ref: ${{ env.STAGING_BRANCH }} - persist-credentials: false @@ -1272,10 +1262,10 @@ index ae4c4240a2..0000000000 - BOT_TOKEN: ${{ secrets.GH_USER_TOKEN }} diff --git a/.github/workflows/daily-wpt-fyi.yml b/.github/workflows/daily-wpt-fyi.yml deleted file mode 100644 -index 2470ce6913..0000000000 +index 0895f1353e..0000000000 --- a/.github/workflows/daily-wpt-fyi.yml +++ /dev/null -@@ -1,179 +0,0 @@ +@@ -1,177 +0,0 @@ -# This workflow runs every night and tests various releases of Node.js -# (latest nightly, current, and two latest LTS release lines) against the -# `epochs/daily` branch of WPT. @@ -1317,11 +1307,9 @@ index 2470ce6913..0000000000 - runs-on: ubuntu-24.04-arm - steps: - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - # install a version and checkout - - name: Get latest nightly @@ -1341,7 +1329,7 @@ index 2470ce6913..0000000000 - SHORT_SHA=$(node -p 'process.version.split(/-nightly\d{8}/)[1]') - echo "NIGHTLY_REF=$(gh api /repos/nodejs/node/commits/$SHORT_SHA --jq '.sha')" >> $GITHUB_ENV - - name: Checkout ${{ steps.setup-node.outputs.node-version }} -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - ref: ${{ env.NIGHTLY_REF || steps.setup-node.outputs.node-version }} @@ -1357,7 +1345,7 @@ index 2470ce6913..0000000000 - run: rm -rf wpt - working-directory: test/fixtures - - name: Checkout epochs/daily WPT -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - repository: web-platform-tests/wpt - persist-credentials: false @@ -1388,7 +1376,7 @@ index 2470ce6913..0000000000 - # version-specific checkout above overwrites .github/actions/ - - name: Checkout undici WPT actions - if: ${{ env.WPT_REPORT != '' }} -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - sparse-checkout: | - .github/actions/undici-wpt-current @@ -1457,10 +1445,10 @@ index 2470ce6913..0000000000 - done diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml deleted file mode 100644 -index 23ffe66fb2..0000000000 +index 6c4b2ec9a4..0000000000 --- a/.github/workflows/daily.yml +++ /dev/null -@@ -1,32 +0,0 @@ +@@ -1,30 +0,0 @@ -name: Node.js daily job - -on: @@ -1479,15 +1467,13 @@ index 23ffe66fb2..0000000000 - if: github.repository == 'nodejs/node' || github.event_name == 'workflow_dispatch' - runs-on: ubuntu-24.04-arm - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: ${{ env.NODE_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Build lto - run: | - sudo apt-get update && sudo apt-get install ninja-build -y @@ -1495,10 +1481,10 @@ index 23ffe66fb2..0000000000 - ninja -C out/Release diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml deleted file mode 100644 -index baf07c2b68..0000000000 +index 6e5dfe7326..0000000000 --- a/.github/workflows/doc.yml +++ /dev/null -@@ -1,43 +0,0 @@ +@@ -1,41 +0,0 @@ -name: Test and upload documentation to artifacts - -on: @@ -1525,15 +1511,13 @@ index baf07c2b68..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: ${{ env.NODE_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Build - run: NODE=$(command -v node) make doc-only - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -1544,7 +1528,7 @@ index baf07c2b68..0000000000 - run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions --measure-flakiness 9" diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml deleted file mode 100644 -index 35a0f4b1f5..0000000000 +index e6e0c7f54f..0000000000 --- a/.github/workflows/find-inactive-collaborators.yml +++ /dev/null @@ -1,50 +0,0 @@ @@ -1569,7 +1553,7 @@ index 35a0f4b1f5..0000000000 - runs-on: ubuntu-slim - - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: false @@ -1600,7 +1584,7 @@ index 35a0f4b1f5..0000000000 - title: 'meta: move one or more collaborators to emeritus' diff --git a/.github/workflows/find-inactive-tsc.yml b/.github/workflows/find-inactive-tsc.yml deleted file mode 100644 -index 8deeaccf5d..0000000000 +index c1804b78d3..0000000000 --- a/.github/workflows/find-inactive-tsc.yml +++ /dev/null @@ -1,62 +0,0 @@ @@ -1626,13 +1610,13 @@ index 8deeaccf5d..0000000000 - - steps: - - name: Checkout the repo -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: false - - - name: Clone nodejs/TSC repository -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - path: .tmp @@ -1751,7 +1735,7 @@ index 03aa1fa9a8..0000000000 - configuration-path: .github/label-pr-config.yml diff --git a/.github/workflows/license-builder.yml b/.github/workflows/license-builder.yml deleted file mode 100644 -index 36d303f9e1..0000000000 +index a95ee13c45..0000000000 --- a/.github/workflows/license-builder.yml +++ /dev/null @@ -1,38 +0,0 @@ @@ -1774,7 +1758,7 @@ index 36d303f9e1..0000000000 - if: github.repository == 'nodejs/node' - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - run: ./tools/license-builder.sh # Run the license builder tool @@ -1795,7 +1779,7 @@ index 36d303f9e1..0000000000 - labels: meta diff --git a/.github/workflows/lint-release-proposal.yml b/.github/workflows/lint-release-proposal.yml deleted file mode 100644 -index 93c67df521..0000000000 +index e8ffab1784..0000000000 --- a/.github/workflows/lint-release-proposal.yml +++ /dev/null @@ -1,119 +0,0 @@ @@ -1824,7 +1808,7 @@ index 93c67df521..0000000000 - contents: read - pull-requests: read - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - fetch-depth: 2 @@ -1920,10 +1904,10 @@ index 93c67df521..0000000000 - GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml deleted file mode 100644 -index fae3018e7a..0000000000 +index 9a9177e01c..0000000000 --- a/.github/workflows/linters.yml +++ /dev/null -@@ -1,262 +0,0 @@ +@@ -1,250 +0,0 @@ -name: Linters - -on: @@ -1951,37 +1935,33 @@ index fae3018e7a..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: ${{ env.NODE_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Lint addon docs - run: NODE=$(command -v node) make lint-addon-docs - lint-cpp: - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Lint C/C++ files - run: make lint-cpp - format-cpp: - if: ${{ github.event.pull_request && github.event.pull_request.draft == false && github.base_ref == github.event.repository.default_branch }} - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 0 - persist-credentials: false @@ -1990,11 +1970,9 @@ index fae3018e7a..0000000000 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Format C/C++ files - run: | - make format-cpp-build @@ -2019,15 +1997,13 @@ index fae3018e7a..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 - with: - node-version: ${{ env.NODE_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Lint JavaScript files - run: | - set +e @@ -2068,7 +2044,7 @@ index fae3018e7a..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - sparse-checkout: | @@ -2082,11 +2058,9 @@ index fae3018e7a..0000000000 - *.py - sparse-checkout-cone-mode: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Lint Python - run: | - make lint-py-build @@ -2095,7 +2069,7 @@ index fae3018e7a..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - sparse-checkout: | @@ -2105,11 +2079,9 @@ index fae3018e7a..0000000000 - *.yaml - sparse-checkout-cone-mode: false - - name: Use Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} -- - name: Environment Information -- run: npx envinfo - - name: Lint YAML - run: | - make lint-yaml-build || true @@ -2119,7 +2091,7 @@ index fae3018e7a..0000000000 - if: github.event.pull_request.draft == false - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - sparse-checkout: | @@ -2135,7 +2107,7 @@ index fae3018e7a..0000000000 - # cannot use ubuntu-24.04-arm here because the docker image is x86 only - runs-on: ubuntu-latest - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - uses: mszostok/codeowners-validator@7f3f5e28c6d7b8dfae5731e54ce2272ca384592f @@ -2145,7 +2117,7 @@ index fae3018e7a..0000000000 - if: ${{ github.event.pull_request }} - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - fetch-depth: 2 - persist-credentials: false @@ -2160,7 +2132,7 @@ index fae3018e7a..0000000000 - lint-readme: - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - sparse-checkout: | @@ -2428,7 +2400,7 @@ index cfb281310a..0000000000 -} diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml deleted file mode 100644 -index a6a5b03022..0000000000 +index f84c91e1a3..0000000000 --- a/.github/workflows/scorecard.yml +++ /dev/null @@ -1,81 +0,0 @@ @@ -2470,17 +2442,17 @@ index a6a5b03022..0000000000 - - steps: - - name: Harden Runner -- uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 +- uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 - with: - egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs - - - name: Checkout code -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - - name: Run analysis -- uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 +- uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 - with: - results_file: results.sarif - results_format: sarif @@ -2510,12 +2482,12 @@ index a6a5b03022..0000000000 - - # Upload the results to GitHub's code scanning dashboard. - - name: Upload to code-scanning -- uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 +- uses: github/codeql-action/upload-sarif@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 - with: - sarif_file: results.sarif diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 -index d4be0ceaa3..0000000000 +index eb5921edb9..0000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,51 +0,0 @@ @@ -2530,13 +2502,13 @@ index d4be0ceaa3..0000000000 -env: - CLOSE_MESSAGE: > - This {0} has been automatically closed after 30 days of inactivity -- following its stale status (no activity for a total of 240 days). +- following its stale status (no activity for a total of 120 days). - - If this is still relevant, feel free to reopen it or leave a comment - with additional details so we can continue the discussion. - - WARN_MESSAGE: > -- This {0} has been marked as stale due to 210 days of inactivity. +- This {0} has been marked as stale due to 90 days of inactivity. - - It will be automatically closed in 30 days if no further activity occurs. - If this is still relevant, please leave a comment or update it to keep it open. @@ -2554,10 +2526,10 @@ index d4be0ceaa3..0000000000 - if: github.repository == 'nodejs/node' - runs-on: ubuntu-slim - steps: -- - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 +- - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} -- days-before-stale: 210 +- days-before-stale: 90 - days-before-close: 30 - stale-issue-label: stale - exempt-issue-labels: never-stale, confirmed-bug @@ -2572,10 +2544,10 @@ index d4be0ceaa3..0000000000 - remove-stale-when-updated: true diff --git a/.github/workflows/stress-test.yml b/.github/workflows/stress-test.yml deleted file mode 100644 -index e3846cf4d3..0000000000 +index eca8c6aa5a..0000000000 --- a/.github/workflows/stress-test.yml +++ /dev/null -@@ -1,116 +0,0 @@ +@@ -1,114 +0,0 @@ -name: Stress Test (rebase tested branch on main for cache reuse) - -on: @@ -2632,7 +2604,7 @@ index e3846cf4d3..0000000000 - SCCACHE_GHA_ENABLED: 'true' - SCCACHE_IDLE_TIMEOUT: '0' - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - path: node @@ -2645,7 +2617,7 @@ index e3846cf4d3..0000000000 - if: runner.os == 'macOS' - run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - allow-prereleases: true @@ -2654,11 +2626,9 @@ index e3846cf4d3..0000000000 - rustup override set "$RUSTC_VERSION" - rustup --version - - name: Set up sccache -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo@7.21.0 - # This is needed due to https://github.com/nodejs/build/issues/3878 - - name: Cleanup - if: runner.os == 'macOS' @@ -2694,10 +2664,10 @@ index e3846cf4d3..0000000000 - "$TEST_PATH" diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml deleted file mode 100644 -index 7f8f4cc302..0000000000 +index bbc9fc9436..0000000000 --- a/.github/workflows/test-internet.yml +++ /dev/null -@@ -1,66 +0,0 @@ +@@ -1,64 +0,0 @@ -name: Test internet - -on: @@ -2746,30 +2716,103 @@ index 7f8f4cc302..0000000000 - if: (github.event_name == 'schedule' && github.repository == 'nodejs/node') || (github.event.pull_request && github.event.pull_request.draft == false) - runs-on: ubuntu-24.04-arm - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - - name: Build - run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn" - - name: Test Internet - run: make test-internet -j4 V=1; +diff --git a/.github/workflows/test-linux-quic.yml b/.github/workflows/test-linux-quic.yml +deleted file mode 100644 +index 64c2e7d7ea..0000000000 +--- a/.github/workflows/test-linux-quic.yml ++++ /dev/null +@@ -1,69 +0,0 @@ +-name: Test Linux (with QUIC) +- +-on: +- workflow_dispatch: +- pull_request: +- paths: +- - .github/workflows/test-linux-quic.yml +- - configure.py +- - node.gyp +- - node.gypi +- - deps/ngtcp2/** +- - deps/nghttp3/** +- - deps/openssl/** +- - src/quic/** +- - src/node_bob* +- - lib/quic.js +- - lib/http3.js +- - lib/internal/quic/** +- - lib/stream/iter.js +- - lib/internal/streams/iter/** +- - test/cctest/test_quic_* +- - test/common/quic* +- - test/common/quic/** +- - test/parallel/*quic* +- - test/parallel/test-stream-iter-* +- types: [opened, synchronize, reopened, ready_for_review] +- +-concurrency: +- group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} +- cancel-in-progress: true +- +-env: +- PYTHON_VERSION: '3.14' +- 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++ +- SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} +- SCCACHE_IDLE_TIMEOUT: '0' +- +-permissions: +- contents: read +- +-jobs: +- test-quic: +- if: github.event.pull_request.draft == false +- runs-on: ubuntu-24.04-arm +- steps: +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 +- with: +- persist-credentials: false +- path: node +- - name: Set up Python ${{ env.PYTHON_VERSION }} +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 +- with: +- python-version: ${{ env.PYTHON_VERSION }} +- - name: Set up sccache +- if: github.base_ref == 'main' || github.ref_name == 'main' +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 +- with: +- version: v0.16.0 +- - name: Build +- working-directory: node +- run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn --experimental-quic" +- - name: Test +- working-directory: node +- run: make test-ci -j1 V=1 TEST_CI_ARGS="-p actions --measure-flakiness 9" +- - name: Ensure running tests did not cause any change in the tree +- working-directory: node +- run: git add -A && git diff --name-only --exit-code --staged diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml deleted file mode 100644 -index 40ac519c7e..0000000000 +index 887db1dab8..0000000000 --- a/.github/workflows/test-linux.yml +++ /dev/null -@@ -1,87 +0,0 @@ +@@ -1,85 +0,0 @@ -name: Test Linux - -on: @@ -2826,21 +2869,19 @@ index 40ac519c7e..0000000000 - matrix: - os: [ubuntu-24.04, ubuntu-24.04-arm] - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - path: node - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - - name: Build - working-directory: node - run: make build-ci -j4 V=1 CONFIG_FLAGS="--error-on-warn" @@ -2859,10 +2900,10 @@ index 40ac519c7e..0000000000 - DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…` diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml deleted file mode 100644 -index 352282a9bb..0000000000 +index 7db72c8568..0000000000 --- a/.github/workflows/test-macos.yml +++ /dev/null -@@ -1,104 +0,0 @@ +@@ -1,102 +0,0 @@ -name: Test macOS - -on: @@ -2915,23 +2956,21 @@ index 352282a9bb..0000000000 - SCCACHE_GHA_ENABLED: ${{ github.base_ref == 'main' || github.ref_name == 'main' }} - SCCACHE_IDLE_TIMEOUT: '0' - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - path: node - - name: Set up Python ${{ env.PYTHON_VERSION }} -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Set up Xcode ${{ env.XCODE_VERSION }} - run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app - - name: Set up sccache - if: github.base_ref == 'main' || github.ref_name == 'main' -- uses: Mozilla-Actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 # v0.0.10 +- uses: Mozilla-Actions/sccache-action@fc920bf0ec8de6ee65d409111f7ec508035751ba # v0.0.11 - with: - version: v0.16.0 -- - name: Environment Information -- run: npx envinfo - # The `npm ci` for this step fails a lot as part of the Test step. Run it - # now so that we don't have to wait 2 hours for the Build step to pass - # first before that failure happens. (And if there's something about @@ -2969,7 +3008,7 @@ index 352282a9bb..0000000000 - DIR: dir%20with $unusual"chars?'åß∂ƒ©∆¬…` diff --git a/.github/workflows/timezone-update.yml b/.github/workflows/timezone-update.yml deleted file mode 100644 -index 02299e66b3..0000000000 +index 94961f8ae6..0000000000 --- a/.github/workflows/timezone-update.yml +++ /dev/null @@ -1,74 +0,0 @@ @@ -2996,12 +3035,12 @@ index 02299e66b3..0000000000 - - steps: - - name: Checkout nodejs/node -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - - name: Checkout unicode-org/icu-data -- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - path: icu-data - persist-credentials: false @@ -3049,7 +3088,7 @@ index 02299e66b3..0000000000 - update-pull-request-title-and-body: true diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml deleted file mode 100644 -index aa99096658..0000000000 +index 900cf3ae00..0000000000 --- a/.github/workflows/tools.yml +++ /dev/null @@ -1,321 +0,0 @@ @@ -3341,7 +3380,7 @@ index aa99096658..0000000000 - tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true - rm temp-output - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - if: github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id - with: - persist-credentials: false @@ -3349,7 +3388,7 @@ index aa99096658..0000000000 - if: | - (matrix.id == 'icu' || matrix.id == 'inspector_protocol') && - (github.event_name == 'schedule' || inputs.id == 'all' || inputs.id == matrix.id) -- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 +- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - run: ${{ matrix.run }} @@ -3376,7 +3415,7 @@ index aa99096658..0000000000 - author: Node.js GitHub Bot diff --git a/.github/workflows/update-openssl.yml b/.github/workflows/update-openssl.yml deleted file mode 100644 -index d87f6b3a4b..0000000000 +index 49f0006526..0000000000 --- a/.github/workflows/update-openssl.yml +++ /dev/null @@ -1,61 +0,0 @@ @@ -3397,7 +3436,7 @@ index d87f6b3a4b..0000000000 - # Cannot use ubuntu-slim here because the update script requires Docker - runs-on: ubuntu-latest - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Check and download new OpenSSL version @@ -3443,7 +3482,7 @@ index d87f6b3a4b..0000000000 - path: deps/openssl diff --git a/.github/workflows/update-v8.yml b/.github/workflows/update-v8.yml deleted file mode 100644 -index e2794cc772..0000000000 +index e365cf7701..0000000000 --- a/.github/workflows/update-v8.yml +++ /dev/null @@ -1,57 +0,0 @@ @@ -3465,7 +3504,7 @@ index e2794cc772..0000000000 - if: github.repository == 'nodejs/node' - runs-on: ubuntu-slim - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - - name: Cache node modules and update-v8 @@ -3506,10 +3545,10 @@ index e2794cc772..0000000000 - labels: dependencies, v8 engine diff --git a/.github/workflows/update-wpt.yml b/.github/workflows/update-wpt.yml deleted file mode 100644 -index 05b1503f3c..0000000000 +index 4f752cc189..0000000000 --- a/.github/workflows/update-wpt.yml +++ /dev/null -@@ -1,87 +0,0 @@ +@@ -1,95 +0,0 @@ -name: WPT update - -on: @@ -3539,7 +3578,7 @@ index 05b1503f3c..0000000000 - subsystem: ${{ fromJSON(github.event.inputs.subsystems || '["url", "urlpattern", "WebCryptoAPI"]') }} - - steps: -- - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 +- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - persist-credentials: false - @@ -3564,6 +3603,14 @@ index 05b1503f3c..0000000000 - - name: Update WPT for subsystem ${{ matrix.subsystem }} - run: | - git node wpt "$SUBSYSTEM" +- # TODO: Remove this workaround after @node-core/utils stops +- # regenerating test/fixtures/wpt/README.md for every subsystem +- # update. +- # git node wpt currently rewrites test/fixtures/wpt/README.md with a +- # generated summary for every subsystem update. versions.json is the +- # authoritative metadata, and keeping the README stable avoids +- # conflicts between concurrent WPT update PRs. +- git restore test/fixtures/wpt/README.md - env: - SUBSYSTEM: ${{ matrix.subsystem }} - diff --git a/patches/doc-build-mobile-notes-and-ignores.patch b/patches/doc-build-mobile-notes-and-ignores.patch index ca817ef224..c81cb3eff1 100644 --- a/patches/doc-build-mobile-notes-and-ignores.patch +++ b/patches/doc-build-mobile-notes-and-ignores.patch @@ -12,8 +12,8 @@ git operations in a built tree never sweep them up. Co-authored-by: Andre Staltz --- .gitignore | 5 + - README.md | 915 ++--------------------------------------------------- - 2 files changed, 32 insertions(+), 888 deletions(-) + README.md | 917 ++--------------------------------------------------- + 2 files changed, 32 insertions(+), 890 deletions(-) diff --git a/.gitignore b/.gitignore index 74eb99c815..ce1c201ce9 100644 @@ -39,10 +39,10 @@ index 74eb99c815..ce1c201ce9 100644 /deps/openssl/openssl.props /deps/openssl/openssl.targets diff --git a/README.md b/README.md -index dc175eadf5..1d3ab7e321 100644 +index a6cf7d6683..1d3ab7e321 100644 --- a/README.md +++ b/README.md -@@ -1,910 +1,49 @@ +@@ -1,912 +1,49 @@ -# Node.js +# Node.js for Mobile Apps @@ -390,8 +390,6 @@ index dc175eadf5..1d3ab7e321 100644 - **Dario Piotrowicz** <> (he/him) -* [deokjinkim](https://github.com/deokjinkim) - - **Deokjin Kim** <> (he/him) --* [edsadr](https://github.com/edsadr) - -- **Adrian Estrada** <> (he/him) -* [ErickWendel](https://github.com/ErickWendel) - - **Erick Wendel** <> (he/him) -* [Ethan-Arrowood](https://github.com/Ethan-Arrowood) - @@ -464,6 +462,8 @@ index dc175eadf5..1d3ab7e321 100644 - **Matteo Collina** <> (he/him) - [Support me](https://github.com/sponsors/mcollina) -* [meixg](https://github.com/meixg) - - **Xuguang Mei** <> (he/him) +-* [MikeMcC399](https://github.com/MikeMcC399) - +- **Mike McCready** <<66998419+MikeMcC399@users.noreply.github.com>> (he/him) -* [MoLow](https://github.com/MoLow) - - **Moshe Atlow** <> (he/him) -* [MrJithil](https://github.com/MrJithil) - @@ -584,6 +584,8 @@ index dc175eadf5..1d3ab7e321 100644 - **Xu Meng** <> (he/him) -* [dnlup](https://github.com/dnlup) - - **dnlup** <> +-* [edsadr](https://github.com/edsadr) - +- **Adrian Estrada** <> (he/him) -* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - - **Robert Jefe Lindstaedt** <> -* [estliberitas](https://github.com/estliberitas) - diff --git a/patches/files.map b/patches/files.map index d1ea87a89f..ba39cb8dd0 100644 --- a/patches/files.map +++ b/patches/files.map @@ -103,6 +103,7 @@ ci-remove-upstream-only-workflows-and-config.patch .github/workflows/scorecard.y ci-remove-upstream-only-workflows-and-config.patch .github/workflows/stale.yml ci-remove-upstream-only-workflows-and-config.patch .github/workflows/stress-test.yml ci-remove-upstream-only-workflows-and-config.patch .github/workflows/test-internet.yml +ci-remove-upstream-only-workflows-and-config.patch .github/workflows/test-linux-quic.yml ci-remove-upstream-only-workflows-and-config.patch .github/workflows/test-linux.yml ci-remove-upstream-only-workflows-and-config.patch .github/workflows/test-macos.yml ci-remove-upstream-only-workflows-and-config.patch .github/workflows/timezone-update.yml diff --git a/patches/lib-install-a-WebAssembly-polyfill-when-the-engine-h.patch b/patches/lib-install-a-WebAssembly-polyfill-when-the-engine-h.patch index fae0e117c9..5b2edbbe4f 100644 --- a/patches/lib-install-a-WebAssembly-polyfill-when-the-engine-h.patch +++ b/patches/lib-install-a-WebAssembly-polyfill-when-the-engine-h.patch @@ -15,7 +15,7 @@ jitless/frozen-intrinsics host gates in smoke-host. 2 files changed, 113 insertions(+) diff --git a/LICENSE b/LICENSE -index 2842efa128..58e2bea8b3 100644 +index 9cc3315dd3..b876545603 100644 --- a/LICENSE +++ b/LICENSE @@ -2944,3 +2944,26 @@ The externally maintained libraries used by Node.js are: @@ -46,7 +46,7 @@ index 2842efa128..58e2bea8b3 100644 + SOFTWARE. + """ diff --git a/lib/internal/process/pre_execution.js b/lib/internal/process/pre_execution.js -index 2716c2ae81..17c283aa7a 100644 +index a7ff17a646..45cc4326a6 100644 --- a/lib/internal/process/pre_execution.js +++ b/lib/internal/process/pre_execution.js @@ -9,6 +9,7 @@ const { @@ -65,7 +65,7 @@ index 2716c2ae81..17c283aa7a 100644 setupTraceCategoryState(); setupInspectorHooks(); setupNetworkInspection(); -@@ -363,6 +365,94 @@ function setupEventsource() { +@@ -364,6 +366,94 @@ function setupEventsource() { } } diff --git a/patches/src-crypto-mobile-adjustment-in-crypto_context.cc.patch b/patches/src-crypto-mobile-adjustment-in-crypto_context.cc.patch index 03aa640474..8e63ea4cfe 100644 --- a/patches/src-crypto-mobile-adjustment-in-crypto_context.cc.patch +++ b/patches/src-crypto-mobile-adjustment-in-crypto_context.cc.patch @@ -19,10 +19,10 @@ Co-authored-by: Julia Samól 1 file changed, 17 insertions(+) diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc -index a26577b36a..33543d3d60 100644 +index 05fc2a00b3..b61f7d9eca 100644 --- a/src/crypto/crypto_context.cc +++ b/src/crypto/crypto_context.cc -@@ -312,6 +312,9 @@ bool isSelfIssued(X509* cert) { +@@ -335,6 +335,9 @@ bool isSelfIssued(X509* cert) { #ifdef __APPLE__ TrustStatus IsTrustDictionaryTrustedForPolicy(CFDictionaryRef trust_dict, bool is_self_issued) { @@ -32,7 +32,7 @@ index a26577b36a..33543d3d60 100644 // Trust settings may be scoped to a single application // skip as this is not supported if (CFDictionaryContainsKey(trust_dict, kSecTrustSettingsApplication)) { -@@ -403,6 +406,10 @@ TrustStatus IsTrustDictionaryTrustedForPolicy(CFDictionaryRef trust_dict, +@@ -426,6 +429,10 @@ TrustStatus IsTrustDictionaryTrustedForPolicy(CFDictionaryRef trust_dict, return (trust_settings_result == kSecTrustSettingsResultTrustAsRoot) ? TrustStatus::TRUSTED : TrustStatus::UNSPECIFIED; @@ -43,7 +43,7 @@ index a26577b36a..33543d3d60 100644 } TrustStatus IsTrustSettingsTrustedForPolicy(CFArrayRef trust_settings, -@@ -474,6 +481,8 @@ bool IsCertificateTrustedForPolicy(X509* cert, SecCertificateRef ref) { +@@ -497,6 +504,8 @@ bool IsCertificateTrustedForPolicy(X509* cert, SecCertificateRef ref) { bool trust_evaluated = false; bool is_self_issued = isSelfIssued(cert); @@ -52,7 +52,7 @@ index a26577b36a..33543d3d60 100644 // Evaluate user trust domain, then admin. User settings can override // admin (and both override the system domain, but we don't check that). for (const auto& trust_domain : -@@ -512,6 +521,14 @@ bool IsCertificateTrustedForPolicy(X509* cert, SecCertificateRef ref) { +@@ -535,6 +544,14 @@ bool IsCertificateTrustedForPolicy(X509* cert, SecCertificateRef ref) { CFRelease(trust_settings); } } diff --git a/patches/src-guard-POSIX-credential-APIs-on-Android.patch b/patches/src-guard-POSIX-credential-APIs-on-Android.patch index 552ec7f20e..605348c271 100644 --- a/patches/src-guard-POSIX-credential-APIs-on-Android.patch +++ b/patches/src-guard-POSIX-credential-APIs-on-Android.patch @@ -17,7 +17,7 @@ Co-authored-by: Andre Staltz 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/src/node_credentials.cc b/src/node_credentials.cc -index 0c7978a484..7e716c4da5 100644 +index d1f7c6e2a8..9c538b3015 100644 --- a/src/node_credentials.cc +++ b/src/node_credentials.cc @@ -45,7 +45,7 @@ bool linux_at_secure() { diff --git a/patches/src-mobile-platform-guards-in-node.cc-node_internals.patch b/patches/src-mobile-platform-guards-in-node.cc-node_internals.patch index a5c44a06b7..a1c786d936 100644 --- a/patches/src-mobile-platform-guards-in-node.cc-node_internals.patch +++ b/patches/src-mobile-platform-guards-in-node.cc-node_internals.patch @@ -8,17 +8,27 @@ for process-level facilities mobile OSes forbid or lack (tty tcsetattr teardown on iOS; NODE_IMPLEMENTS_POSIX_CREDENTIALS turned on for Android API >= 21, which upstream leaves off). +Also drops --experimental-wasm-jspi from the V8 argument list on iOS, +which upstream appends unconditionally as of v24.20.0. iOS builds V8 in +lite mode, so V8_ENABLE_WEBASSEMBLY is off and the whole +--experimental-wasm-* flag family does not exist; V8 leaves the flag +unconsumed and node turns that into "bad option" and exits before +running any JS. The guard is on the platform rather than on +V8_ENABLE_WEBASSEMBLY because node's own targets never receive that +define -- it is set only on V8's, and testing it here would silently +drop the flag on Android too, where WebAssembly is enabled. + Co-authored-by: Jaime Bernardo --- - src/node.cc | 3 +++ + src/node.cc | 9 +++++++++ src/node_internals.h | 2 +- - 2 files changed, 4 insertions(+), 1 deletion(-) + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/node.cc b/src/node.cc -index 078497db7e..1184a00c8c 100644 +index f03a4447e5..967abd834d 100644 --- a/src/node.cc +++ b/src/node.cc -@@ -693,6 +693,8 @@ void ResetStdio() { +@@ -698,6 +698,8 @@ void ResetStdio() { CHECK_NE(err, -1); } @@ -27,7 +37,7 @@ index 078497db7e..1184a00c8c 100644 if (s.isatty) { sigset_t sa; int err; -@@ -714,6 +716,7 @@ void ResetStdio() { +@@ -719,6 +721,7 @@ void ResetStdio() { // - if the process group is orphaned, e.g. because the user logged out, // tcsetattr fails with EIO } @@ -35,6 +45,20 @@ index 078497db7e..1184a00c8c 100644 } #endif // __POSIX__ } +@@ -787,7 +790,13 @@ static ExitCode ProcessGlobalArgsInternal(std::vector* args, + } + + // WebAssembly JS Promise Integration ++ // nodejs-mobile patch: iOS builds V8 in lite mode, which compiles out ++ // WebAssembly and every --experimental-wasm-* flag with it. V8 leaves the ++ // unrecognized flag in v8_args and node then fails with "bad option" before ++ // running any JS, so the flag must not be added there. ++#if !(defined(__APPLE__) && TARGET_OS_IPHONE) + v8_args.emplace_back("--experimental-wasm-jspi"); ++#endif // !(defined(__APPLE__) && TARGET_OS_IPHONE) + + #ifdef __POSIX__ + // Block SIGPROF signals when sleeping in epoll_wait/kevent/etc. Avoids the diff --git a/src/node_internals.h b/src/node_internals.h index 8e930a6fec..b279bf9999 100644 --- a/src/node_internals.h diff --git a/patches/test-mobile-test-harness.patch b/patches/test-mobile-test-harness.patch index ef7e0bfb0b..8f3a42165d 100644 --- a/patches/test-mobile-test-harness.patch +++ b/patches/test-mobile-test-harness.patch @@ -24,10 +24,10 @@ Co-authored-by: Andre Staltz diff --git a/test/common/index.js b/test/common/index.js old mode 100755 new mode 100644 -index 6cfebae8f4..b9a9213da1 +index 9d15b57bf6..70d5fefae0 --- a/test/common/index.js +++ b/test/common/index.js -@@ -159,6 +159,8 @@ const isFreeBSD = process.platform === 'freebsd'; +@@ -161,6 +161,8 @@ const isFreeBSD = process.platform === 'freebsd'; const isOpenBSD = process.platform === 'openbsd'; const isLinux = process.platform === 'linux'; const isMacOS = process.platform === 'darwin'; @@ -36,7 +36,7 @@ index 6cfebae8f4..b9a9213da1 const isASan = process.config.variables.asan === 1; const isRiscv64 = process.arch === 'riscv64'; const isDebug = process.features.debug; -@@ -945,8 +947,10 @@ const common = { +@@ -976,8 +978,10 @@ const common = { invalidArgTypeHelper, isAlive, isASan, diff --git a/patches/test-skip-adapt-parallel-and-sequential-tests-for-mo.patch b/patches/test-skip-adapt-parallel-and-sequential-tests-for-mo.patch index 5979292868..44dc293e36 100644 --- a/patches/test-skip-adapt-parallel-and-sequential-tests-for-mo.patch +++ b/patches/test-skip-adapt-parallel-and-sequential-tests-for-mo.patch @@ -16,7 +16,7 @@ series itself. Co-authored-by: Jaime Bernardo Co-authored-by: Andre Staltz --- - test/parallel/parallel.status | 1398 +++++++++++++++++ + test/parallel/parallel.status | 1444 +++++++++++++++++ test/parallel/test-dgram-bind-fd.js | 2 +- test/parallel/test-dgram-membership.js | 10 +- .../parallel/test-dgram-socket-buffer-size.js | 2 +- @@ -51,13 +51,13 @@ Co-authored-by: Andre Staltz test/sequential/sequential.status | 129 ++ test/sequential/test-async-wrap-getasyncid.js | 15 +- test/sequential/test-fs-watch.js | 4 + - 35 files changed, 1708 insertions(+), 46 deletions(-) + 35 files changed, 1754 insertions(+), 46 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status -index cf7f8d42e8..d1f28be02e 100644 +index e4c82da4d6..d951785ba4 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status -@@ -158,6 +158,1404 @@ test-tls-set-default-ca-certificates-append-fetch: SKIP +@@ -162,6 +162,1450 @@ test-tls-set-default-ca-certificates-append-fetch: SKIP test-tls-set-default-ca-certificates-reset-fetch: SKIP test-inspector-invalid-protocol: SKIP @@ -191,7 +191,11 @@ index cf7f8d42e8..d1f28be02e 100644 +test-openssl-ca-options: SKIP +test-os-homedir-no-envvar: SKIP +test-os-userinfo-handles-getter-errors: SKIP ++test-package-map-cli: SKIP +test-pending-deprecation: SKIP ++test-permission-audit-fs-does-not-deny: SKIP ++test-permission-drop-fs-granted-path: SKIP ++test-permission-drop-fs-specific-path: SKIP +test-permission-fs-write-trace-events: SKIP +test-pipe-head: SKIP +test-pipe-unref: SKIP @@ -211,6 +215,7 @@ index cf7f8d42e8..d1f28be02e 100644 +test-process-env: SKIP +test-process-exec-argv: SKIP +test-process-execpath: SKIP ++test-process-exit-after-fetch-throw: SKIP +test-process-exit-code: SKIP +test-process-external-stdio-close: SKIP +test-process-external-stdio-close-spawn: SKIP @@ -250,13 +255,16 @@ index cf7f8d42e8..d1f28be02e 100644 +test-repl-unsafe-array-iteration: SKIP +test-repl-unsupported-option: SKIP +test-require-invalid-main-no-exports: SKIP ++test-require-package-map: SKIP +test-require-symlink: SKIP +test-runner-cli: SKIP +test-runner-coverage: SKIP ++test-runner-entry-file: SKIP +test-runner-exit-code: SKIP +test-runner-extraneous-async-activity: SKIP +test-runner-import-no-scheme: SKIP +test-runner-inspect: SKIP ++test-runner-log: SKIP +test-runner-misc: SKIP +test-runner-output: SKIP +test-runner-reporters: SKIP @@ -307,11 +315,14 @@ index cf7f8d42e8..d1f28be02e 100644 +test-stdout-close-unref: SKIP +test-stdout-stderr-reading: SKIP +test-stdout-to-file: SKIP ++test-stream-iter-disabled: SKIP ++test-stream-iter-readable-interop-disabled: SKIP +test-stream-pipeline-process: SKIP +test-sync-io-option: SKIP +test-throw-error-with-getter-throw-traced: SKIP +test-throw-undefined-or-null-traced: SKIP +test-tick-processor-arguments: SKIP ++test-timers-async-store-leak: SKIP +test-timers-immediate-promisified: SKIP +test-timers-interval-promisified: SKIP +test-timers-timeout-promisified: SKIP @@ -624,6 +635,15 @@ index cf7f8d42e8..d1f28be02e 100644 +test-permission-child-process-inherit-flags: SKIP +test-permission-child-process-inherit-flags-substring: SKIP +test-permission-config-file: SKIP ++test-permission-diagnostics-channel: SKIP ++test-permission-drop-addons: SKIP ++test-permission-drop-child-process: SKIP ++test-permission-drop-diagnostics-channel: SKIP ++test-permission-drop-errors: SKIP ++test-permission-drop-fs-all: SKIP ++test-permission-drop-fs-scope: SKIP ++test-permission-drop-fs-write: SKIP ++test-permission-drop-worker: SKIP +test-permission-fs-absolute-path: SKIP +test-permission-fs-read: SKIP +test-permission-fs-read-entrypoint: SKIP @@ -720,6 +740,11 @@ index cf7f8d42e8..d1f28be02e 100644 +test-debugger-low-level: SKIP +test-debugger-object-type-remote-object: SKIP +test-debugger-preserve-breaks: SKIP ++test-debugger-probe-cond: SKIP ++test-debugger-probe-cond-invalid: SKIP ++test-debugger-probe-cond-max-hit: SKIP ++test-debugger-probe-cond-shared: SKIP ++test-debugger-probe-cond-throws: SKIP +test-debugger-profile: SKIP +test-debugger-profile-command: SKIP +test-debugger-random-port: SKIP @@ -814,7 +839,11 @@ index cf7f8d42e8..d1f28be02e 100644 +test-openssl-ca-options: SKIP +test-os-homedir-no-envvar: SKIP +test-os-userinfo-handles-getter-errors: SKIP ++test-package-map-cli: SKIP +test-pending-deprecation: SKIP ++test-permission-audit-fs-does-not-deny: SKIP ++test-permission-drop-fs-granted-path: SKIP ++test-permission-drop-fs-specific-path: SKIP +test-pipe-head: SKIP +test-pipe-unref: SKIP +test-policy-crypto-default-encoding: SKIP @@ -833,6 +862,7 @@ index cf7f8d42e8..d1f28be02e 100644 +test-process-env: SKIP +test-process-exec-argv: SKIP +test-process-execpath: SKIP ++test-process-exit-after-fetch-throw: SKIP +test-process-exit-code: SKIP +test-process-external-stdio-close: SKIP +test-process-external-stdio-close-spawn: SKIP @@ -872,13 +902,16 @@ index cf7f8d42e8..d1f28be02e 100644 +test-repl-unsafe-array-iteration: SKIP +test-repl-unsupported-option: SKIP +test-require-invalid-main-no-exports: SKIP ++test-require-package-map: SKIP +test-require-symlink: SKIP +test-runner-cli: SKIP +test-runner-coverage: SKIP ++test-runner-entry-file: SKIP +test-runner-exit-code: SKIP +test-runner-extraneous-async-activity: SKIP +test-runner-import-no-scheme: SKIP +test-runner-inspect: SKIP ++test-runner-log: SKIP +test-runner-misc: SKIP +test-runner-output: SKIP +test-runner-reporters: SKIP @@ -926,11 +959,14 @@ index cf7f8d42e8..d1f28be02e 100644 +test-stdout-close-unref: SKIP +test-stdout-stderr-reading: SKIP +test-stdout-to-file: SKIP ++test-stream-iter-disabled: SKIP ++test-stream-iter-readable-interop-disabled: SKIP +test-stream-pipeline-process: SKIP +test-sync-io-option: SKIP +test-throw-error-with-getter-throw-traced: SKIP +test-throw-undefined-or-null-traced: SKIP +test-tick-processor-arguments: SKIP ++test-timers-async-store-leak: SKIP +test-timers-immediate-promisified: SKIP +test-timers-interval-promisified: SKIP +test-timers-timeout-promisified: SKIP @@ -1043,6 +1079,7 @@ index cf7f8d42e8..d1f28be02e 100644 +# +test-fetch-disabled: SKIP +test-vm-codegen: SKIP ++test-wasm: SKIP +test-wasm-simple: SKIP +test-wasm-web-api: SKIP +test-worker-message-port-wasm-module: SKIP @@ -1157,6 +1194,15 @@ index cf7f8d42e8..d1f28be02e 100644 +# sandbox it is being denied by. See docs/TESTING.md, "How a test PASSes". +# +test-permission-allow-child-process-cli: SKIP ++test-permission-diagnostics-channel: SKIP ++test-permission-drop-addons: SKIP ++test-permission-drop-child-process: SKIP ++test-permission-drop-diagnostics-channel: SKIP ++test-permission-drop-errors: SKIP ++test-permission-drop-fs-all: SKIP ++test-permission-drop-fs-scope: SKIP ++test-permission-drop-fs-write: SKIP ++test-permission-drop-worker: SKIP +test-permission-fs-write: SKIP +test-permission-fs-windows-path: SKIP +# @@ -1476,7 +1522,7 @@ index daf7f8064b..76c2ce82dd 100644 assert.strictEqual(recvBufferSize, expectedBufferSize); assert.strictEqual(sendBufferSize, expectedBufferSize); diff --git a/test/parallel/test-dgram-membership.js b/test/parallel/test-dgram-membership.js -index ebfdaa9cb6..8414b251c8 100644 +index 052deb92d6..19e9b0e81e 100644 --- a/test/parallel/test-dgram-membership.js +++ b/test/parallel/test-dgram-membership.js @@ -108,7 +108,10 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); @@ -2108,10 +2154,10 @@ index e1595350cd..f5d84f7480 100644 + */ }); diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status -index 627e61911d..7a4e74ce4a 100644 +index 01a021130c..059f682010 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status -@@ -43,6 +43,135 @@ test-perf-hooks: SKIP +@@ -39,6 +39,135 @@ test-perf-hooks: SKIP # https://github.com/nodejs/node/issues/39683 test-tls-psk-client: PASS, FLAKY diff --git a/upstream-base.txt b/upstream-base.txt index 8d882eb23f..ae6aab07a6 100644 --- a/upstream-base.txt +++ b/upstream-base.txt @@ -1,4 +1,4 @@ # The upstream nodejs/node release the patch series applies to. # First non-comment line is the tag (or SHA); update it as part of every # upstream bump (see README.md). -v24.19.0 +v24.20.0