diff --git a/Cargo.toml b/Cargo.toml index 52d7946206..345f20f744 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,9 +57,24 @@ paste = "1.0.8" rand = "0.9.0" rand_chacha = "0.9.0" criterion = "0.5" +# Note: `half` v2.5.0 started to require Rust 1.81. +# `criterion` transitively depends on `half` via the dependency chain: +# criterion -> ciborium -> ciborium_ll -> half +# The MSRV of `ciborium` v0.2.2 is declared as 1.58, and is declared to depend on `half` v2.2. +# Ciborium should either bump its MSRV or select a version of `half` that satisfies its current MSRV. +# We lock the version of `half` to 2.4.1 to workaround this. +# TODO: When we bump MSRV to 1.84 or above, we can rely on Cargo's MSRV-aware dependency resolver and remove such workarounds. +half = "=2.4.1" [build-dependencies] built = { version = "0.7.7", features = ["git2"] } +# Note: Some components in ICU4X started to require Rust 1.81 since some versions, such as `litemap` v0.7.5. +# The `built` crate depends on ICU4X via the dependency chain: +# built -> git2 -> url -> idna -> idna_adapter --(default)--------> crates from the ICU4X projects +# --(alternatively)--> `unicode-rs` +# But we don't need ICU4X (or even `url`) because we only use `git2` to get the Git commit hash. +# We move away from ICU4X completely following the instruction in https://docs.rs/crate/idna_adapter/1.2.0 +idna_adapter = "=1.1.0" [[bench]] name = "main"