Skip to content

chore: bump node to v24.16.0 (42-x-y)#51747

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

chore: bump node to v24.16.0 (42-x-y)#51747
jkleinsc merged 15 commits into
42-x-yfrom
roller/node/42-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:01
@electron-roller electron-roller Bot added backport-check-skip Skip trop's backport validity checking semver/minor backwards-compatible functionality labels May 22, 2026
@jkleinsc jkleinsc force-pushed the roller/node/42-x-y branch from 78dee0f to 7d0185e Compare June 2, 2026 20:52
@jkleinsc jkleinsc requested a review from a team as a code owner June 2, 2026 20:52
@jkleinsc jkleinsc added target/41-x-y PR should also be added to the "41-x-y" branch. and removed target/41-x-y PR should also be added to the "41-x-y" branch. labels Jun 2, 2026
@jkleinsc jkleinsc force-pushed the roller/node/42-x-y branch 3 times, most recently from b93c254 to e96bcd1 Compare June 4, 2026 18:43
@jkleinsc jkleinsc added the target/41-x-y PR should also be added to the "41-x-y" branch. label Jun 4, 2026
electron-roller Bot and others added 15 commits June 4, 2026 16:13
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)
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)
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)
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>
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)
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)
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)
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)
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)
Ref: libuv/libuv#3308

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Adapts api_remove_deprecated_getisolate.patch for the inspector NetworkAgent:
adapt the GetIsolate removal to the NetworkAgent member helpers, qualify the
v8 Maybe helpers in network_agent, and drop duplicate inspector helper
definitions.

Ref: nodejs/node#62162

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
test-vm-global-contextual-store was added upstream in nodejs/node#62571. It
asserts that an undeclared strict-mode contextual store (`"use strict"; z = 42`)
throws a ReferenceError. Chromium's V8 removed
v8::PropertyCallbackInfo<T>::This(), so Electron's contextify setter cannot
distinguish a contextual store from an explicit `globalThis.x = v` store; it
keeps the original behavior (writing to the sandbox) so explicit global stores
in vm modules keep working (test-vm-module-referrer-realm). Guard the
strict-mode ReferenceError assertion in the new test under Electron.

Ref: nodejs/node#62571
Ref: nodejs/node#60616
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jkleinsc jkleinsc force-pushed the roller/node/42-x-y branch from daea9c7 to 7685959 Compare June 4, 2026 20:39
@jkleinsc jkleinsc added target/41-x-y PR should also be added to the "41-x-y" branch. and removed target/41-x-y PR should also be added to the "41-x-y" branch. labels Jun 4, 2026

@ckerr ckerr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved but with reservations, see #51865 (review)

@jkleinsc jkleinsc merged commit dd211e7 into 42-x-y Jun 8, 2026
74 checks passed
@jkleinsc jkleinsc deleted the roller/node/42-x-y branch June 8, 2026 17:10
@release-clerk

release-clerk Bot commented Jun 8, 2026

Copy link
Copy Markdown

Release Notes Persisted

Updated Node.js to v24.16.0.

@trop

trop Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

I was unable to backport this PR to "41-x-y" cleanly;
you will need to perform this backport manually.

@trop trop Bot added needs-manual-bp/41-x-y and removed target/41-x-y PR should also be added to the "41-x-y" branch. labels Jun 8, 2026
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 needs-manual-bp/41-x-y semver/minor backwards-compatible functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants