Conversation
Does it mean that we might inadvertently introduce or remove Temporal in releases by touching release machines (i.e. after system updates)? |
A regular system update should not put either cargo or rustc on it if it is not already there (at least on a Linux distribution) but a system upgrade might. If consensus is to remove the autodetection (i.e. the default build will fail in environments where rust is not available) then enabling Temporal in Node.js by default will be blocked until all of the test and release infrastructure for Node.js 26 is updated. |
|
Can we specify |
It can be done but the job is generic for all release lines so would be a little untidy (basically a conditional based on the major version as otherwise |
|
The
notable-change
Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. Otherwise, the commit will be placed in the Other Notable Changes section. |
|
(Removing unnecessary labels I added earlier, given that this is already |
f5b44dc to
dd20a31
Compare
|
Looks like the Temporal gyp isn't happy being cross compiled? e.g. https://ci.nodejs.org/job/node-compile-windows/65959/nodes=win-vs2022_clang-arm64/console |
Not the only problem, even when the configuration passed, the compilation failed on x64 with I'll investigate this more on Monday. I was able to reproduce both failures on my machine. Potentially, I'll need to make some more changes in the CI too (maybe I didn't install everything needed, etc.). Will have some updates on this on Monday. |
|
@richardlau, here's my update - I have a fix in my branch. It should be 1 commit ahead of your branch. I've also run it through the CI to verify it compiles (test failure is unrelated flaky test). Regarding the fix, it adds some Windows-specific behavior, which was needed mostly for cross-compilation. x64 compilation was broken too, but that was mostly because of the way I installed Rust initially (switched to Rustup afterward). As a result, I'll also have to change my PR in the build repo. If you want, you can apply my patch on top of your branch, or we can open a PR to your branch (if someone else should review it as well), or pick any other approach to adding the fix to this PR. I'm fine with whatever as long as it gets Windows CI passing. |
|
@StefanStojanovic Thanks. I'll pull the commit into this branch since I will need to update this PR anyway for more edge build failures (neither of which are Windows specific):
|
d7a94df to
f53c479
Compare
I've added @StefanStojanovic 's commit to this PR, and made configure disable Temporal support if Haven't yet decided what to do about 2. above yet -- maybe the simplest would be to disable Temporal by default when shared ICU is being used for now and possibly look at enabling Temporal in that configuration later? |
That's not correct, I'm able to build |
f53c479 to
f9abeb3
Compare
Okay, Fair point. I've undone the most recent fixup and applied the patch from https://github.com/nodejs/node/pull/62508/files#diff-89a9a4423f9b83142d44bfb376f2c56ffff396ee1ef98c4930a61d5ed9732c7f as a separate commit in this PR (with @aduh95 as co-author). Ideally this would be solved upstream in V8 (maybe someone can help there?). |
|
hmm. While the patch to V8 fixed the |
Enabling Temporal support requires `cargo` and `rustc`, which are new build toolchain requirements. Add a `--v8-disable-temporal-support` option to `configure.py` to explicitly opt-out of Temporal support (i.e. no need for Rust). If the existing `--v8-enable-temporal-support` option is not explicitly passed to `configure.py`: - Attempt to detect `cargo` and `rustc`. - If neither `cargo` and `rustc` are detected, print a warning and disable Temporal support. - If both `cargo` and `rustc` are detected, enable Temporal support. If `--v8-enable-temporal-support` is passed to `configure.py`, then the build will error and stop if `cargo` and/or `rustc` are not detected. To avoid ambiguity, `configure.py` will error and stop if both `--v8-disable-temporal-support` and `--v8-enable-temporal-support` are used. Signed-off-by: Richard Lau <richard.lau@ibm.com>
f9abeb3 to
4fffe5e
Compare
|
I've decided to open a separate issue for the build failures when using This PR will focus on cargo/rust autodetection and enabling Temporal by default if neither This would allow us to have Temporal available for the binaries that go up on the website, and enable for the shared/no ICU builds separately. |
Commit Queue failed- Loading data for nodejs/node/pull/61806 ✔ Done loading data for nodejs/node/pull/61806 ----------------------------------- PR info ------------------------------------ Title build: enable Temporal by default (#61806) ⚠ Could not retrieve the email or name of the PR author's from user's GitHub profile! Branch richardlau:enable-temporal -> nodejs:main Labels semver-major, build, notable-change, author ready, needs-ci, commit-queue-rebase Commits 2 - build,win: fix Temporal build - build: enable Temporal by default Committers 1 - Richard Lau <richard.lau@ibm.com> PR-URL: https://github.com/nodejs/node/pull/61806 Fixes: https://github.com/nodejs/node/issues/57127 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/61806 Fixes: https://github.com/nodejs/node/issues/57127 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> -------------------------------------------------------------------------------- ℹ This PR was created on Fri, 13 Feb 2026 18:36:01 GMT ✔ Approvals: 9 ✔ - Matteo Collina (@mcollina) (TSC): https://github.com/nodejs/node/pull/61806#pullrequestreview-3799356614 ✔ - Colin Ihrig (@cjihrig): https://github.com/nodejs/node/pull/61806#pullrequestreview-3801982887 ✔ - Michaël Zasso (@targos) (TSC): https://github.com/nodejs/node/pull/61806#pullrequestreview-3801994015 ✔ - Chengzhong Wu (@legendecas) (TSC): https://github.com/nodejs/node/pull/61806#pullrequestreview-4093347278 ✔ - Anna Henningsen (@addaleax): https://github.com/nodejs/node/pull/61806#pullrequestreview-3831874154 ✔ - Juan José Arboleda (@juanarbol): https://github.com/nodejs/node/pull/61806#pullrequestreview-3845221881 ✔ - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/61806#pullrequestreview-3971773184 ✔ - Aviv Keller (@avivkeller): https://github.com/nodejs/node/pull/61806#pullrequestreview-3971843332 ✔ - Antoine du Hamel (@aduh95) (TSC): https://github.com/nodejs/node/pull/61806#pullrequestreview-4092102105 ✔ Last GitHub CI successful ℹ Last Full PR CI on 2026-04-10T17:16:30Z: https://ci.nodejs.org/job/node-test-pull-request/72610/ - Querying data for job/node-test-pull-request/72610/ ✔ Build data downloaded ✔ Last Jenkins CI successful -------------------------------------------------------------------------------- ✔ No git cherry-pick in progress ✔ No git am in progress ✔ No git rebase in progress -------------------------------------------------------------------------------- - Bringing origin/main up to date... From https://github.com/nodejs/node * branch main -> FETCH_HEAD ✔ origin/main is now up-to-date - Downloading patch for 61806 From https://github.com/nodejs/node * branch refs/pull/61806/merge -> FETCH_HEAD ✔ Fetched commits as f01905ac0140..4fffe5ebc3c4 -------------------------------------------------------------------------------- [main 58082e5a78] build,win: fix Temporal build Author: StefanStojanovic <stefan.stojanovic@janeasystems.com> Date: Mon Apr 6 21:29:57 2026 +0200 3 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 deps/crates/cargo_build.py [main c71e0ae5fe] build: enable Temporal by default Author: Richard Lau <richard.lau@ibm.com> Date: Fri Apr 10 17:05:24 2026 +0000 1 file changed, 61 insertions(+), 20 deletions(-) ✔ Patches applied There are 2 commits in the PR. Attempting autorebase. (node:359) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) Rebasing (2/4) Executing: git node land --amend --yes --------------------------------- New Message ---------------------------------- PR-URL: https://github.com/nodejs/node/pull/61806 Fixes: https://github.com/nodejs/node/issues/57127 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> -------------------------------------------------------------------------------- [detached HEAD 1a87984eb4] PR-URL: https://github.com/nodejs/node/pull/61806 Fixes: https://github.com/nodejs/node/issues/57127 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Chengzhong Wu <legendecas@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Aviv Keller <me@aviv.sh> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Author: StefanStojanovic <stefan.stojanovic@janeasystems.com> Date: Mon Apr 6 21:29:57 2026 +0200 3 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 deps/crates/cargo_build.py Rebasing (3/4) Rebasing (4/4) Executing: git node land --amend --yes --------------------------------- New Message ---------------------------------- build: enable Temporal by default
If To avoid ambiguity, Signed-off-by: Richard Lau <richard.lau@ibm.com>
|
Enabling Temporal support requires
cargoandrustc, which are new build toolchain requirements.Add a
--v8-disable-temporal-supportoption toconfigure.pyto explicitly opt-out of Temporal support (i.e. no need for Rust).If the existing
--v8-enable-temporal-supportoption is not explicitly passed toconfigure.py:cargoandrustc.cargoandrustcare detected, print a warning and disable Temporal support.cargoandrustcare detected, enable Temporal support.If
--v8-enable-temporal-supportis passed toconfigure.py, then the build will error and stop ifcargoand/orrustcare not detected.To avoid ambiguity,
configure.pywill error and stop if both--v8-disable-temporal-supportand--v8-enable-temporal-supportare used.Fixes: #57127
Blocked on either of the V8 updates (14.4 or 14.5) landing first.
Autodetecting this way allows us to roll out Rust onto the CI machines gradually (the aim is for Node.js 26).