Repository navigation
Conversation
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>
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #8058, which is stacked on #7925. Draft: the automated version of #7926. If this approach is preferred, it can replace #7926.
temporal_rs0.2.6 acceptsicu_calendar2.3, but Chromium builds V8 15.7 with 2.2.1. Cargo can't downgrade it with--precisealone, because url'sidna_adapterholds the shared ICU4X crates on 2.3. That's whyrust-cratesfails on #8058. This PR addsicu_calendar = { version = "=2.2.1", default-features = false }, the same pin as #7926. I wrote it by hand at=2.3.0, andpython3 ci/v8_update.py rust-cratesmoved it to Chromium's=2.2.1and regenerateddeps/rust/Cargo.lock. On future V8 updates,finishkeeps this pin up to date along with the Temporal pins.Crates that moved:
icu_calendar2.3.0 → 2.2.1,icu_calendar_data/icu_collections/icu_normalizer/icu_normalizer_data/icu_properties/icu_properties_data2.3.0 → 2.2.0.icu_localeandicu_locale_data2.2.0 were added.icu_locale_fallbackandicu_locale_fallback_data2.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:
Cargo.toml: the sameicu_calendarpin; only the comment differs.Cargo.lock: the same, except forsmallvec(1.16.3 here, 1.16.2 in Align the Rust crate graph with V8's Chromium crate versions #7926) andunicode-ident(1.0.27 here, 1.0.26 in Align the Rust crate graph with V8's Chromium crate versions #7926). Neither is intemporal_capi's runtime tree, so the tool leaves them alone. Align the Rust crate graph with V8's Chromium crate versions #7926 moved them by hand to match Chromium.temporal_capi's runtime tree (cargo tree -p temporal_capi --edges=normal,no-proc-macro --target=all) now matches Chromium'sthird_party/rustat98ef22e4e0, the revision pinned in V8 15.7.112.5'sDEPS.syndiffers there (3.0.9 here, 3.0.6 in Chromium), and it's 3.0.9 in Align the Rust crate graph with V8's Chromium crate versions #7926 too. To cover proc-macro trees as well, dropno-proc-macrofrom_chromium_crate_tree(). That would also movesmallvec,unicode-identandsyn.Testing:
cargo metadata --locked --manifest-path deps/rust/Cargo.tomlpasses.rust-cratesagain leavesCargo.lockbyte-identical.🤖 Generated with Claude Code