Skip to content
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

Release blog post - v0.16.0 #574

Open
1 of 5 tasks
Tracked by #409
foresterre opened this issue Dec 23, 2022 · 1 comment
Open
1 of 5 tasks
Tracked by #409

Release blog post - v0.16.0 #574

foresterre opened this issue Dec 23, 2022 · 1 comment

Comments

@foresterre
Copy link
Owner

foresterre commented Dec 23, 2022

This year in cargo-msrv & v0.16 release

  • Compatibility check cmd overrides with runner=rustup-run (draft)
  • Revised user output
    • Iterating, next release may change substantially again, feedback more than welcome, for all btw.
  • ...
  • Planned for next year.
  • Happy new year!
@foresterre foresterre changed the title Consider writing a release blog post Release blog post - v0.16.0 Dec 23, 2022
@foresterre
Copy link
Owner Author

Draft: Compatibility check cmd overrides with runner=rustup-run

December release

Override rustup run commands

By default, the Rustup run command used to test whether a toolchain is compatible, is rustup run <toolchain> cargo check. If you wanted to use another command, you could already use cargo msrv -- <my command>, e.g. cargo msrv -- cargo build. This is necessary for example if you rely on a version of cargo which does not yet have cargo check built in. Then, you could run both: cargo msrv --min 1.16 and cargo msrv --max 1.15 -- cargo build, but this gets old, fast.

From cargo-msrv v0.16 it is also possible to override the compatibility check commands used. To do this, specify the following overrides in your Cargo.toml:

[[package.metadata.msrv.override]]
runner = "rustup-run"
version_req = "<1.17"
compatibility_check = "cargo build"

NB: The combination runner and version_req must be unique. Also note that the version req follows the semver::VersionReq, spec with the following limitation: cargo-msrv only supports stable Rust releases.

By default, from this cargo-msrv release, we will override the compatibility check for Rust toolchains released prior to Rust 1.16 (cargo check became available from Cargo 1.16).

The precedence of overrides is as follows:

  • Granular override defined in the Cargo.toml >
  • Global override specified via remainder CLI arguments ( cargo msrv -- <cmd>) >
  • Default compatibility check override >
  • Default compatibility check

Note that running two or more different commands (e.g. cargo build vs cargo check) does mean that you test your project for compatibility in different ways, which may not be consistent with each other.

Since it is unlikely that many people are still using a Rust toolchain before Rust 1.16 (released in 2017, on March 16th), the impact of the default override should be minimal.

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

No branches or pull requests

1 participant