Skip to content

Conversation

@legendecas
Copy link
Member

@legendecas legendecas commented Nov 13, 2025

Checked in temporal_rs and build it as a static library with ./configure --v8-enable-temporal-support. The dependencies of temporal_rs are locked with Cargo.lock. Temporal is enabled at runtime with cli flag --harmony-temporal.

This does not use V8's default temporal_rs checkout from https://chromium.googlesource.com/chromium/src/third_party/rust/ as it contains all the crates that chromium uses, but V8 may not use them.

For follow-ups, the temporal_capi needs to respect Node's ICU and toolchain settings. Additionally, we may want to force cargo to work in offline mode.

Refs: #58730
Refs: #60693

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Nov 13, 2025

Review requested:

  • @nodejs/security-wg
  • @nodejs/build

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. dependencies Pull requests that update a dependency file. needs-ci PRs that need a full CI run. labels Nov 13, 2025
@marco-ippolito
Copy link
Member

I dont know if its a good idea,
might be a terrible idea, I'm not a rust expert, but I know technically we could vendor the rust dependencies with https://doc.rust-lang.org/cargo/commands/cargo-vendor.html
so we keep dont have to download them from the internet?

@richardlau
Copy link
Member

Yeah, I think ultimately (not necessarily to start with if it is opt-in but definitely before it becomes enabled by default) we need a way to be able to build temporal offline (e.g. from the Node.js source tarball).

@legendecas
Copy link
Member Author

I agree. It's in the roadmap as the OP mentioned.

@legendecas legendecas added the v8 engine Issues and PRs related to the V8 dependency. label Nov 13, 2025
@legendecas
Copy link
Member Author

Blocked on #60701 to get the v8.gyp change landed first.

@legendecas legendecas added commit-queue-rebase Add this label to allow the Commit Queue to land a PR in several commits. tools Issues and PRs related to the tools directory. 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. blocked PRs that are blocked by other issues or PRs. labels Nov 13, 2025
@legendecas legendecas force-pushed the temporal branch 3 times, most recently from 5b1ac50 to d70962d Compare November 13, 2025 22:12
@joyeecheung
Copy link
Member

Just curious, have you checked the binary size difference?

@legendecas legendecas removed the blocked PRs that are blocked by other issues or PRs. label Nov 20, 2025
@legendecas
Copy link
Member Author

legendecas commented Nov 20, 2025

Just curious, have you checked the binary size difference?

For release builds on macOS locally, the size difference between with temporal_rs and without is 129 MB vs 125 MB, that is about 4MB increase.

@marco-ippolito @richardlau @joyeecheung @nodejs/build please take a look again, thanks!

Copy link
Member

@marco-ippolito marco-ippolito left a comment

Choose a reason for hiding this comment

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

LGTM

@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Nov 20, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Nov 20, 2025
@aduh95
Copy link
Contributor

aduh95 commented Nov 20, 2025

8eaa243 could also include the following diff:

diff --git a/.github/workflows/test-shared.yml b/.github/workflows/test-shared.yml
index 7558b1633eb..23a8e09f4f1 100644
--- a/.github/workflows/test-shared.yml
+++ b/.github/workflows/test-shared.yml
@@ -22,2 +22,3 @@ on:
       - deps/sqlite/**
+      - deps/temporal/**
       - deps/uv/**
@@ -53,2 +54,3 @@ on:
       - deps/sqlite/**
+      - deps/temporal/**
       - deps/uv/**
diff --git a/Makefile b/Makefile
index bccbac90bca..95df702bdd0 100644
--- a/Makefile
+++ b/Makefile
@@ -1235,2 +1235,3 @@ ifeq ($(SKIP_SHARED_DEPS), 1)
 	$(RM) -r $(TARNAME)/deps/sqlite
+	$(RM) -r $(TARNAME)/deps/temporal
 	$(RM) -r $(TARNAME)/deps/uv

And 804c425:

diff --git a/shell.nix b/shell.nix
index b22e3d6d11e..faa3446d80c 100644
--- a/shell.nix
+++ b/shell.nix
@@ -33,5 +33,9 @@ pkgs.mkShell {
   ]
   ++ devTools
-  ++ benchmarkTools;
+  ++ benchmarkTools
+  ++ pkgs.lib.optionals (withTemporal && !builtins.hasAttr "temporal_capi" sharedLibDeps) [
+    pkgs.cargo
+    pkgs.rustc
+  ];
 
   shellHook =

Not blocking, can happen in a follow up

@joyeecheung
Copy link
Member

joyeecheung commented Nov 20, 2025

temporal_rs uses ICU4X (rust-based components) not ICU4C (the big ICU library we link to for Intl)

nodejs-github-bot pushed a commit that referenced this pull request Nov 22, 2025
This helps js2c processing the node.gypi correctly when a string
contains a quote.

PR-URL: #60794
Refs: #60703
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
@nodejs-github-bot
Copy link
Collaborator

@codecov
Copy link

codecov bot commented Nov 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.03%. Comparing base (7fd3688) to head (a02f7dc).
⚠️ Report is 12 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60703      +/-   ##
==========================================
- Coverage   88.56%   88.03%   -0.53%     
==========================================
  Files         703      703              
  Lines      208254   208247       -7     
  Branches    40156    40075      -81     
==========================================
- Hits       184430   183321    -1109     
- Misses      15828    16883    +1055     
- Partials     7996     8043      +47     

see 116 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot

This comment was marked as outdated.

@nodejs-github-bot
Copy link
Collaborator

@legendecas legendecas added the commit-queue Add this label to land a pull request using GitHub Actions. label Nov 23, 2025
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Nov 23, 2025
@nodejs-github-bot
Copy link
Collaborator

Landed in 189a0a7...482b191

nodejs-github-bot pushed a commit that referenced this pull request Nov 23, 2025
PR-URL: #60703
Refs: #58730
Refs: #60693
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
nodejs-github-bot pushed a commit that referenced this pull request Nov 23, 2025
PR-URL: #60703
Refs: #58730
Refs: #60693
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
nodejs-github-bot pushed a commit that referenced this pull request Nov 23, 2025
PR-URL: #60703
Refs: #58730
Refs: #60693
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
nodejs-github-bot pushed a commit that referenced this pull request Nov 23, 2025
Co-Authored-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #60703
Refs: #58730
Refs: #60693
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
@legendecas legendecas deleted the temporal branch November 23, 2025 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Issues and PRs related to build files or the CI. commit-queue-rebase Add this label to allow the Commit Queue to land a PR in several commits. dependencies Pull requests that update a dependency file. 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. needs-ci PRs that need a full CI run. tools Issues and PRs related to the tools directory. v8 engine Issues and PRs related to the V8 dependency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants