Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

build: enable Temporal by default#61806

Open
richardlau wants to merge 1 commit intonodejs:mainfrom
richardlau:enable-temporal
Open

build: enable Temporal by default#61806
richardlau wants to merge 1 commit intonodejs:mainfrom
richardlau:enable-temporal

Conversation

Copy link
Member

richardlau commented Feb 13, 2026

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.

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).

beeequeue, JakobJingleheimer, michael-small, H4ad, milksense, janglad, yslpn, efekrskl, bricss, firatciftci, and 21 more reacted with hooray emoji bricss, LinusU, addaleax, jsejcksn, miguelmarcondesf, juanarbol, huynhducduy, CleytonGoncalves, and arturgawlik reacted with rocket emoji
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.
richardlau added the blocked PRs that are blocked by other issues or PRs. label Feb 13, 2026
nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. labels Feb 13, 2026
richardlau added the semver-major PRs that contain breaking changes and should be released in the next major version. label Feb 13, 2026
Copy link
Member

targos commented Feb 13, 2026

  • If neither cargo and rustc are detected, print a warning and disable Temporal support.
  • If both cargo and rustc are detected, enable Temporal support.

Does it mean that we might inadvertently introduce or remove Temporal in releases by touching release machines (i.e. after system updates)?

Copy link
Member Author

richardlau commented Feb 13, 2026

  • If neither cargo and rustc are detected, print a warning and disable Temporal support.
  • If both cargo and rustc are detected, enable Temporal support.

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.

Copy link
Member

legendecas commented Feb 13, 2026 *
edited
Loading

Can we specify --v8-enable-temporal-support on release machine on platforms that we are determined to enable the support? So configure.py will error out if somehow the rustc/cargo is missing.

Copy link
Member Author

richardlau commented Feb 13, 2026

Can we specify --v8-enable-temporal-support on release machine on platforms that we are determined to enable the support? So configure.py will error out if somehow the rustc/cargo is missing.

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 configure will fail on earlier release lines with --v8-enable-temporal-support).

mcollina approved these changes Feb 13, 2026
Copy link
Member

mcollina left a comment

Choose a reason for hiding this comment

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

lgtm

varanauskas reacted with hooray emoji
legendecas mentioned this pull request Feb 13, 2026
cjihrig approved these changes Feb 14, 2026
targos approved these changes Feb 14, 2026
legendecas approved these changes Feb 14, 2026
legendecas added dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. dont-land-on-v24.x PRs that should not land on the v24.x-staging branch and should not be released in v24.x. dont-land-on-v25.x PRs that should not land on the v25.x-staging branch and should not be released in v25.x. labels Feb 14, 2026
addaleax approved these changes Feb 20, 2026
mcollina added the notable-change PRs with changes that should be highlighted in changelogs. label Feb 20, 2026
Copy link
Contributor

github-actions bot commented Feb 20, 2026

The notable-change PRs with changes that should be highlighted in changelogs. label has been added by @mcollina.

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.

filecage mentioned this pull request Feb 23, 2026
juanarbol approved these changes Feb 24, 2026
legendecas removed dont-land-on-v20.x PRs that should not land on the v20.x-staging branch and should not be released in v20.x. dont-land-on-v22.x PRs that should not land on the v22.x-staging branch and should not be released in v22.x. dont-land-on-v24.x PRs that should not land on the v24.x-staging branch and should not be released in v24.x. dont-land-on-v25.x PRs that should not land on the v25.x-staging branch and should not be released in v25.x. labels Mar 11, 2026
Copy link
Member

legendecas commented Mar 11, 2026

(Removing unnecessary labels I added earlier, given that this is already semver-major)

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

Reviewers

mcollina mcollina approved these changes

addaleax addaleax approved these changes

targos targos approved these changes

cjihrig cjihrig approved these changes

legendecas legendecas approved these changes

juanarbol juanarbol approved these changes

Assignees

No one assigned

Labels

blocked PRs that are blocked by other issues or PRs. build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. notable-change PRs with changes that should be highlighted in changelogs. semver-major PRs that contain breaking changes and should be released in the next major version.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Let's enable Temporal by default

8 participants