Skip to content

Align temporal_capi's crates with V8's Chromium versions - #8059

Closed
npaun wants to merge 1 commit into
npaun/v8-rust-icu-auto/1-sync-chromium-cratesfrom
npaun/v8-rust-icu-auto/2-align-crate-versions
Closed

npaun wants to merge 1 commit into
npaun/v8-rust-icu-auto/1-sync-chromium-cratesfrom
npaun/v8-rust-icu-auto/2-align-crate-versions

Conversation

@npaun

@npaun npaun commented Oct 28, 2026

Copy link
Copy Markdown
Member

Stacked on #8058, which is stacked on #7925. Draft: the automated version of #7926. If this approach is preferred, it can replace #7926.

temporal_rs 0.2.6 accepts icu_calendar 2.3, but Chromium builds V8 15.7 with 2.2.1. Cargo can't downgrade it with --precise alone, because url's idna_adapter holds the shared ICU4X crates on 2.3. That's why rust-crates fails on #8058. This PR adds icu_calendar = { version = "=2.2.1", default-features = false }, the same pin as #7926. I wrote it by hand at =2.3.0, and python3 ci/v8_update.py rust-crates moved it to Chromium's =2.2.1 and regenerated deps/rust/Cargo.lock. On future V8 updates, finish keeps this pin up to date along with the Temporal pins.

Crates that moved: icu_calendar 2.3.0 → 2.2.1, icu_calendar_data/icu_collections/icu_normalizer/icu_normalizer_data/icu_properties/icu_properties_data 2.3.0 → 2.2.0. icu_locale and icu_locale_data 2.2.0 were added. icu_locale_fallback and icu_locale_fallback_data 2.3.0 were removed. #7926's description covers the effect of url/idna moving to the ICU4X 2.2 line (same ICU 78.1 / Unicode 17 data).

Comparison with #7926:

Testing:

🤖 Generated with Claude Code

Chromium builds V8 15.7's Temporal with icu_calendar 2.2.1, but
temporal_rs 0.2.6 also accepts 2.3, which Cargo picks. Cargo cannot
downgrade icu_calendar by itself: url's idna_adapter holds the
shared ICU4X crates on 2.3. Pin icu_calendar exactly so that
`ci/v8_update.py rust-crates` can keep it at Chromium's version, and
regenerate Cargo.lock with that command.

The ICU4X 2.2 line is shared, so idna_adapter's icu_normalizer and
icu_properties move to 2.2 too.

  icu_calendar               2.3.0 -> 2.2.1
  icu_calendar_data          2.3.0 -> 2.2.0
  icu_collections            2.3.0 -> 2.2.0
  icu_normalizer             2.3.0 -> 2.2.0
  icu_normalizer_data        2.3.0 -> 2.2.0
  icu_properties             2.3.0 -> 2.2.0
  icu_properties_data        2.3.0 -> 2.2.0
  icu_locale, icu_locale_data 2.2.0 added
  icu_locale_fallback, icu_locale_fallback_data 2.3.0 removed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@npaun

npaun commented Oct 28, 2026

Copy link
Copy Markdown
Member Author

Closing: this is the same change as #7926 (same icu_calendar pin; Cargo.lock differs only in smallvec/unicode-ident patch versions outside temporal_capi's tree), generated by the tool in #8058. #7926 will merge as is, and #8058 will be rebased onto it as a follow-up.

@npaun npaun closed this Oct 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant