From 8830b729a6f36ec3b7ea7b5d4472ea36b86d4585 Mon Sep 17 00:00:00 2001 From: Nicholas Paun Date: Wed, 28 Oct 2026 01:07:02 +0000 Subject: [PATCH] Align temporal_capi's crates with V8's Chromium versions 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 --- deps/rust/Cargo.lock | 65 ++++++++++++++++++++++---------------------- deps/rust/Cargo.toml | 3 ++ 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/deps/rust/Cargo.lock b/deps/rust/Cargo.lock index d50a4daf1c4..09cc2de5c34 100644 --- a/deps/rust/Cargo.lock +++ b/deps/rust/Cargo.lock @@ -633,6 +633,7 @@ dependencies = [ "httpdate", "hyper", "hyper-util", + "icu_calendar", "ipnet", "libc", "libm", @@ -1114,15 +1115,15 @@ dependencies = [ [[package]] name = "icu_calendar" -version = "2.3.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58655df2f728e46e4eee80bddebefacf52ec3e77cdb925014b47c5a5905eb55c" +checksum = "a2b2acc6263f494f1df50685b53ff8e57869e47d5c6fe39c23d518ae9a4f3e45" dependencies = [ "calendrical_calculations", "displaydoc", "icu_calendar_data", + "icu_locale", "icu_locale_core", - "icu_locale_fallback", "icu_provider", "tinystr", "zerovec", @@ -1130,15 +1131,15 @@ dependencies = [ [[package]] name = "icu_calendar_data" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc00caaa3fb3201ff7a18aa458e8c3ab042b9da154cfdf948bdde3936c31c36e" +checksum = "118577bcf3a0fa7c6ac0a7d6e951814da84ee56b9b1f68fb4d8d10b08cefaf4d" [[package]] name = "icu_collections" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", @@ -1149,44 +1150,45 @@ dependencies = [ ] [[package]] -name = "icu_locale_core" -version = "2.3.0" +name = "icu_locale" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" +checksum = "d5a396343c7208121dc86e35623d3dfe19814a7613cfd14964994cdc9c9a2e26" dependencies = [ - "displaydoc", - "litemap", - "serde", + "icu_collections", + "icu_locale_core", + "icu_locale_data", + "icu_provider", + "potential_utf", "tinystr", - "writeable", "zerovec", ] [[package]] -name = "icu_locale_fallback" +name = "icu_locale_core" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251af8e57c9400e3eb58242fe5b8b1152b2a64fdf4cf632f923c38ccee6f2fa9" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ - "icu_locale_core", - "icu_locale_fallback_data", - "icu_provider", - "potential_utf", + "displaydoc", + "litemap", + "serde", "tinystr", + "writeable", "zerovec", ] [[package]] -name = "icu_locale_fallback_data" -version = "2.3.0" +name = "icu_locale_data" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "decf2a22ec8fa68f1a0c1129a3f8583f8f8bc24e8b9ccbe98ead99f62a4dc3a8" +checksum = "d5fdcc9ac77c6d74ff5cf6e65ef3181d6af32003b16fce3a77fb451d2f695993" [[package]] name = "icu_normalizer" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -1198,17 +1200,16 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -1219,9 +1220,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.3.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" diff --git a/deps/rust/Cargo.toml b/deps/rust/Cargo.toml index 8a46acbffc7..4eeeedc0d80 100644 --- a/deps/rust/Cargo.toml +++ b/deps/rust/Cargo.toml @@ -96,6 +96,9 @@ serde = { version = "1", features = ["derive"] } # the versions of these and other exact pins in temporal_capi's dependency tree. temporal_capi = { version = "=0.2.6", features = ["zoneinfo64"] } temporal_rs = { version = "=0.2.6", default-features = false, features = ["float64_representable_durations"] } +# temporal_rs accepts a newer icu_calendar than Chromium builds it with, and Cargo cannot +# downgrade it without moving the other ICU4X crates that share its version line. +icu_calendar = { version = "=2.2.1", default-features = false } thiserror = "2" tower-service = "0.3" # tokio is huge, let's enable only features when we actually need them.