Skip to content

cargo-msrv 0.16.0

Compare
Choose a tag to compare
@foresterre foresterre released this 09 Oct 02:44
· 167 commits to main since this release

Changelog

Added

  • Added cargo msrv find subcommand to determine the MSRV (this subcommand was moved from the top level cargo msrv
    command to its own subcommand)
  • Added options --ignore-lockfile, --no-check-feedback, --target, --component, --features, --all-features,
    --no-default-features and the last argument "custom compatibility check command", which were previously available
    from the top level cargo msrv command to the cargo msrv verify subcommand.
  • Subcommand cargo msrv verify now supports setting a custom Rust version via the --rust-version <VERSION> argument,
    which can be used to check for a crate's compatibility against a specific Rust version.
  • Added flag --write-msrv to cargo msrv (find), which upon finding the MSRV writes its value to the Cargo manifest.
  • Added option to refer to a specific crate using its Cargo manifest (with --manifest-path) instead of its path (
    with --path)
  • Added a 'minimal' output option intended for machine-readable use when full json output is undesirable.
  • Added --features option, --all-features flag and --no-default-features flag, which are forwarded to the default
    compatibility check command
  • Added --component option, which can be used to add one or more Rust components to a toolchain.
  • cargo msrv verify now supports
    Cargo workspace inheritance, and will
    now correctly inherit the MSRV (i.e. package.rust-version) defined by a workspace

Changed

  • CLI options are now grouped.
  • Option --min <version> now also accepts two component semver major.minor versions, in addition to full three
    component (strict) SemVer versions, and edition specifiers like "2015", "2018" and "2021".
  • Option --max <version> now also accepts two component semver major.minor versions, in addition to full three
    component (strict) SemVer versions.
  • The rust-releases index is now only fetched for subcommands which depend on it.
  • Renamed --toolchain-file to --write-toolchain-file to emphasise that the toolchain-file is an output.
  • Subcommand cargo msrv set will now default to writing a regular TOML table for the metadata MSRV fallback value,
    instead of an inline table.
  • The rust-toolchain file will now be overwritten if a rust-toolchain file was already present.
  • Updated user output formatting to be more consistent between output formats.
  • cargo-msrv now requires paths to be UTF-8.
  • --write-msrv now writes two, instead of three component version numbers.

Infra

  • Changed release artifact name of cargo-msrv packages on Github, such that they can be installed
    with cargo-binstall out of the box.

Fixed

  • Subcommand cargo msrv set will now return an error when the Cargo manifest solely consists of a virtual workspace.
  • The program will no longer return an unformatted message when a command failed and the output format was set to json.
  • Fix issue where reading the fallback MSRV from a TOML inline table was not possible.
  • Fix an index out-of-bounds panic which occurred if the filtered Rust releases search space was empty.
  • Use compilation target instead of build machine target for MSRV checks.
  • Fix issue where --manifest-path Cargo.toml would yield an empty manifest path.
  • Supply provided components to verify subcommand.
  • The CLI arguments --target and --component were previously inadvertently ignored when provided
    to cargo msrv verify.
  • Fixed issue where some errors were not being reported (e.g. cargo msrv verify did not print an error if it wasn't
    possible to resolve the MSRV to check against).

Removed

  • Removed deprecated option cargo msrv --verify. Use cargo msrv verify instead.
  • Removed option to disable filtering the Rust releases search space by the Rust edition in from the Cargo
    manifest, --no-read-min-edition.
  • Moved the top level cargo msrv "find the MSRV" action to the cargo msrv find subcommand, which removed several
    options and flags from the top level command which had previously no effect on other subcommands.

Thanks

Thanks to all contributors, whether you submitted a PR or reported an issue, or contributed in some other way. 😃

Some of your issues and PR's really made my day! 💛

New Contributors

Full Changelog: v0.15.1...v0.16.0