Skip to content

chore: bump node to v24.16.0 (41-x-y)#51746

Merged
jkleinsc merged 15 commits into
41-x-yfrom
roller/node/41-x-y
Jun 9, 2026
Merged

chore: bump node to v24.16.0 (41-x-y)#51746
jkleinsc merged 15 commits into
41-x-yfrom
roller/node/41-x-y

Conversation

@electron-roller

Copy link
Copy Markdown
Contributor

Updating Node.js to v24.16.0.

See all changes in v24.15.0..v24.16.0

Notes: Updated Node.js to v24.16.0.

@electron-roller electron-roller Bot requested a review from a team as a code owner May 22, 2026 13:00
@electron-roller electron-roller Bot added backport-check-skip Skip trop's backport validity checking semver/minor backwards-compatible functionality labels May 22, 2026
electron-roller Bot and others added 15 commits June 5, 2026 15:26
Node.js restored fs patchability in the ESM loader upstream, making
the fix_lazyload_fs_in_esm_loaders_to_apply_asar_patches.patch
obsolete (the patch's exact change is now in lib/internal/modules/
esm/{load,resolve,translators}.js).

Ref: nodejs/node#62835

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 72638db)
(cherry picked from commit 0409547)
Upstream removed the experimental_fetch field from EnvironmentOptions,
but Electron's patch still registers --experimental-fetch as a CLI
option bound to that field. Re-add the member so the option compiles.

Ref: nodejs/node#62759

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 6fd9370)
(cherry picked from commit 46b28d2)
libuv 1.52.1 typed uv_cpu_info_t.model as const char*, but uv__free
takes void*. Electron builds with -Werror,-Wincompatible-pointer-types-
discards-qualifiers, so add a cast. The memory is allocated via strdup
so the cast is safe.

Ref: nodejs/node#61829

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 90d1009)
(cherry picked from commit 07827c6)
Cast int nBuf to size_t when comparing with sizeof(aCopy) so the
bundled sqlite3 amalgamation compiles under -Werror,-Wsign-compare.

Ref: nodejs/node#62699

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 379d109)
third_party/electron_node lives under Chromium's src/, whose package.json
("type": "module") is always an ancestor of the Node.js test tree. Upstream
assumes no package.json sits above the tests, so that ancestor changes how
test files and fixtures resolve their module type: it disables module-syntax
detection (breaking test-compile-cache-typescript-esm) and emits
MODULE_TYPELESS_PACKAGE_JSON warnings that break tests asserting clean stderr
(test-esm-detect-ambiguous, test-esm-import-meta-main-eval,
test-output-coverage-with-mock).

Move src/package.json aside for the duration of the run so the environment
matches upstream exactly, then restore it. The original is kept in a sibling
backup file so an interrupted/killed run self-heals on the next invocation
rather than leaving src/package.json missing.

Ref: Unable to locate reference

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 29abd0c)
(cherry picked from commit 3190c99)
The test copies the Electron binary into a standalone .app bundle and
code-signs it; under parallel suite runs this races with dyld resolving
the Electron Framework rpath and intermittently aborts (SIGABRT). It
passes reliably when run alone. Mark it flaky so flakes don't fail CI.

Ref: Unable to locate reference

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 3853529)
(cherry picked from commit 2dfc1ae)
setDefaultCACertificates() round-trips the default CA set through
BoringSSL's X509_STORE, which dedups a duplicate-subject root (DigiCert
Global Root CA) that OpenSSL keeps. The set therefore loses one cert on
re-add (149 -> 148), so the test's assertEqualCerts round-trip check
fails under Electron's BoringSSL. The sibling -recovery test is disabled
for the same reason.

Ref: nodejs/node#58822

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 3dbc596)
(cherry picked from commit 44f4094)
test-run-watch-repeatedly, test-run-watch-run-duration and
test-run-watch-without-file race under parallel suite load: the watcher
fires an extra re-run before the assertion, so the expected single-run
output ("tests 1") arrives with accumulated subtests. All three pass in
isolation.

Ref: nodejs/node#44898

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 0f9c327)
(cherry picked from commit 792e1e5)
Combine the Windows libuv cpu_info const-cast update into the existing
chore_cast_const_away_when_freeing_uv_cpu_info_t_model.patch and keep
a single patch-management commit for the final exported patch series.

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit c590614)
(cherry picked from commit 0506b64)
Ref: libuv/libuv#3308

Co-Authored-By: Claude <noreply@anthropic.com>
(cherry picked from commit 31b7fb0)
…ctor

Upstream refactored the inspector network agent helpers into
NetworkAgent:: methods, shifting where context->GetIsolate() appeared
and reorganizing node_contextify's PropertyDefinerCallback. Re-applied
the deprecated context->GetIsolate() -> v8::Isolate::GetCurrent()
replacements to the new structure.

Ref: nodejs/node#62162

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The cherry-pick of the cast-const fix (343078bf01) erroneously added
four entries to patches/node/.patches that reference patch files which
were never part of the 41-x-y branch (externalpointertypetag, thinlto
symbol preservation, v8 code cache, and startup snapshot generation).
The missing files caused `e sync` to abort while reading patches.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This new upstream test asserts that a strict-mode store to an undeclared
global in a vm context throws ReferenceError. Chromium's V8 contextify
global-proxy interceptor instead creates the property, so the assertion
is fundamentally incompatible with Electron's V8 and cannot be guarded
to pass.

Ref: nodejs/node#62571

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jkleinsc jkleinsc force-pushed the roller/node/41-x-y branch from cc24e4d to 5885a21 Compare June 5, 2026 19:40
@jkleinsc jkleinsc requested a review from a team as a code owner June 5, 2026 19:40
@jkleinsc jkleinsc merged commit 3736195 into 41-x-y Jun 9, 2026
140 of 143 checks passed
@jkleinsc jkleinsc deleted the roller/node/41-x-y branch June 9, 2026 20:33
@release-clerk

release-clerk Bot commented Jun 9, 2026

Copy link
Copy Markdown

Release Notes Persisted

Updated Node.js to v24.16.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-check-skip Skip trop's backport validity checking semver/minor backwards-compatible functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants