-
Notifications
You must be signed in to change notification settings - Fork 2.6k
crate home MSRV bumped in "compatible version" #14944
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
cc @ehuss |
MSRV bumps are generally recognized as minor, not major changes, see https://doc.rust-lang.org/nightly/cargo/reference/semver.html#env-new-rust |
We previously discussed this in #13270. Per that discussion, I'm closing this. |
This is reasonable, while I'd ask a bit details on cargo's mechanism. When I specify "foo = 1.2", will it gets auto resolved to 1.3.x? That is, when I specify "home = 0.5.9", it could be resolved to "home = 0.5.11". But if we specify "foo = 1.2", it would only resolves to 1.2.x? If so, then "minor changes" means different things in these two situations. |
That said, you can bump MSRV when bump 1.2 to 1.3, and build won't break with the most common dependency string. But from 0.5.9 to 0.5.11 does. |
I see https://doc.rust-lang.org/nightly/cargo/reference/resolver.html#semver-compatibility
Then I'm fine with Rust's definition now .. let me see how to get used to it. |
Build environment changes are not usually included in semver in Rust. If not, Rust itself would be on v20 or so with glibc, AndroidNDK, Linux Kernel, etc changes. Foundational crates like In 1.84 we'll have an opt-in MSRV-aware resolver. You can have it generate your lockfile and than use whatever version of Cargo you want. |
Cool! Is there a tracking issue I can watch on? |
Missed that one |
The sudden version restriction is causing problems with my builds too. |
|
I don't use the home crate directly. |
I've identified the cause. |
In trying to rebuild the radicle 1.1.0 version now (2025-02-26), some months after 1.1.0 has been released, I see in my pipelines that the `cargo install [email protected]` instruction is now failing. This is because `[email protected]` has been released and this *patch* version bump requires a newer version of rust (1.81) (0.5.9 was ok with 1.80). See rust-lang/cargo#14944 for more details. Adding `--locked` here prevents this issue from happening in the future. Importantly: newer versions of other crates being picked up by cargo here means the build isn't bit-for-bit reproducible. The error itself is: ``` [1/2] STEP 14/17: RUN curl -sSf -o zig.tar.xz https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz && curl -sSf -o zig.tar.xz.minisig https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz.minisig && minisign -Vm zig.tar.xz -P RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U && xz -d -c zig.tar.xz | tar -x && mv zig-linux-x86_64-0.12.0/zig /usr/bin/zig && mv zig-linux-x86_64-0.12.0/lib /usr/lib/zig && cargo install [email protected] Signature and comment signature verified Trusted comment: timestamp:1713604063 file:zig-linux-x86_64-0.12.0.tar.xz hashed Updating crates.io index Downloading crates ... Downloaded cargo-zigbuild v0.18.3 Installing cargo-zigbuild v0.18.3 Updating crates.io index Locking 83 packages to latest compatible versions Adding cargo-platform v0.1.9 (latest: v0.2.0) Adding cargo-zigbuild v0.18.3 (latest: v0.19.8) Adding cargo_metadata v0.18.1 (latest: v0.19.1) Adding dirs v5.0.1 (latest: v6.0.0) Adding dirs-sys v0.4.1 (latest: v0.5.0) Adding fs-err v2.11.0 (latest: v3.1.0) Adding getrandom v0.2.15 (latest: v0.3.1) Adding linux-raw-sys v0.4.15 (latest: v0.9.0) Adding redox_users v0.4.6 (latest: v0.5.0) Adding target-lexicon v0.12.16 (latest: v0.13.2) Adding thiserror v1.0.69 (latest: v2.0.11) Adding thiserror-impl v1.0.69 (latest: v2.0.11) Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.14.1+wasi-0.2.3) Adding which v6.0.3 (latest: v7.0.2) Adding windows-sys v0.48.0 (latest: v0.59.0) Adding windows-targets v0.48.5 (latest: v0.53.0) Adding windows-targets v0.52.6 (latest: v0.53.0) Adding windows_aarch64_gnullvm v0.48.5 (latest: v0.53.0) Adding windows_aarch64_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_aarch64_msvc v0.48.5 (latest: v0.53.0) Adding windows_aarch64_msvc v0.52.6 (latest: v0.53.0) Adding windows_i686_gnu v0.48.5 (latest: v0.53.0) Adding windows_i686_gnu v0.52.6 (latest: v0.53.0) Adding windows_i686_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_i686_msvc v0.48.5 (latest: v0.53.0) Adding windows_i686_msvc v0.52.6 (latest: v0.53.0) Adding windows_x86_64_gnu v0.48.5 (latest: v0.53.0) Adding windows_x86_64_gnu v0.52.6 (latest: v0.53.0) Adding windows_x86_64_gnullvm v0.48.5 (latest: v0.53.0) Adding windows_x86_64_gnullvm v0.52.6 (latest: v0.53.0) Adding windows_x86_64_msvc v0.48.5 (latest: v0.53.0) Adding windows_x86_64_msvc v0.52.6 (latest: v0.53.0) Adding winsafe v0.0.19 (latest: v0.0.22) Downloading crates ... Downloaded anstyle v1.0.10 Downloaded anstyle-query v1.1.2 Downloaded cargo-platform v0.1.9 Downloaded bitflags v2.8.0 Downloaded cargo_metadata v0.18.1 Downloaded is_terminal_polyfill v1.70.1 Downloaded option-ext v0.2.0 Downloaded scroll_derive v0.12.0 Downloaded strsim v0.11.1 Downloaded autocfg v1.4.0 Downloaded anstream v0.6.18 Downloaded camino v1.1.9 Downloaded dirs-sys v0.4.1 Downloaded heck v0.5.0 Downloaded itoa v1.0.14 Downloaded home v0.5.11 Downloaded thiserror-impl v1.0.69 Downloaded which v6.0.3 Downloaded utf8parse v0.2.2 Downloaded either v1.14.0 Downloaded colorchoice v1.0.3 Downloaded clap_lex v0.7.4 Downloaded errno v0.3.10 Downloaded dirs v5.0.1 Downloaded fs-err v2.11.0 Downloaded shlex v1.3.0 Downloaded rustc_version v0.4.1 Downloaded path-slash v0.2.1 Downloaded thiserror v1.0.69 Downloaded terminal_size v0.4.1 Downloaded anstyle-parse v0.2.6 Downloaded clap_derive v4.5.28 Downloaded target-lexicon v0.12.16 Downloaded fat-macho v0.4.9 Downloaded semver v1.0.25 Downloaded scroll v0.12.0 Downloaded log v0.4.26 Downloaded proc-macro2 v1.0.93 Downloaded quote v1.0.38 Downloaded anyhow v1.0.96 Downloaded clap v4.5.31 Downloaded ryu v1.0.19 Downloaded serde_derive v1.0.218 Downloaded unicode-ident v1.0.17 Downloaded serde v1.0.218 Downloaded memchr v2.7.4 Downloaded serde_json v1.0.139 Downloaded clap_builder v4.5.31 Downloaded goblin v0.9.3 Downloaded syn v2.0.98 Downloaded rustix v0.38.44 Downloaded libc v0.2.170 Downloaded plain v0.2.3 Downloaded cargo-options v0.7.5 Downloaded linux-raw-sys v0.4.15 error: failed to compile `cargo-zigbuild v0.18.3`, intermediate artifacts can be found at `/tmp/cargo-installZ4q2vb`. To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path. Caused by: rustc 1.80.1 is not supported by the following package: [email protected] requires rustc 1.81 Try re-running `cargo install` with `--locked` Error: building at STEP "RUN curl -sSf -o zig.tar.xz https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz && curl -sSf -o zig.tar.xz.minisig https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz.minisig && minisign -Vm zig.tar.xz -P RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U && xz -d -c zig.tar.xz | tar -x && mv zig-linux-x86_64-0.12.0/zig /usr/bin/zig && mv zig-linux-x86_64-0.12.0/lib /usr/lib/zig && cargo install [email protected]": while running runtime: exit status 101 ``` Signed-off-by: Yorgos Saslis <[email protected]>
Problem
I have this dependency in
cargo.toml
:Such breaking changes deserve 0.6.0.
Steps
Possible Solution(s)
yank 0.5.11 and release 0.6.0
Notes
No response
Version
The text was updated successfully, but these errors were encountered: