|0.1.11||Jan 24, 2023|
|0.1.9||Dec 25, 2022|
|0.1.8||Nov 27, 2022|
|0.1.5||Jul 8, 2022|
|0.1.0||Dec 28, 2021|
#222 in Cargo plugins
382 downloads per month
Cargo subcommand for proper use of
Click to show a complete list of options
$ cargo minimal-versions --help cargo-minimal-versions Cargo subcommand for proper use of -Z minimal-versions. USAGE: cargo minimal-versions <SUBCOMMAND> [CARGO_OPTIONS] SUBCOMMANDS: build check test ...
To check all crates with minimal version dependencies:
cargo minimal-versions check --workspace
Note: (If cargo-minimal-versions determined that it is necessary to do so for a correct minimal versions check) cargo-minimal-versions modifies
Cargo.lock while running and restores it when finished. Any changes you made to those files during running will not be preserved.
Normally, crates with
publish = false do not need minimal versions check. You can skip these crates by using
cargo minimal-versions check --workspace --ignore-private
-Z minimal-versions in the usual way will not work properly in many cases. To use
cargo check with
-Z minimal-versions properly, you need to run at least three processes.
If I remember correctly,
cargo check -Z minimal-versionsdoesn't really do anything. It needs to be separated into
cargo update -Z minimal-versionsand
Also, dev-dependencies may raise version requirements. Ideally, remove them before run
cargo update -Z minimal-versions. (Also, note that
Cargo.lockis actually shared within the workspace. However as far as I know, there is no workaround for this yet.)
In addition, due to cargo's feature integration, it is not correct to run
cargo check or
cargo build with
--all) or on virtual manifest. To handle this problem correctly, you need the workspace handling provided by subcommands such as
cargo-minimal-versions addresses most of these issues and makes it easy to run cargo commands with
See #1 for the remaining problem.
cargo-minimal-versions requires nightly
toolchain (to run
cargo update -Z minimal-versions) and cargo-hack (to run
cargo check &
cargo build proper):
rustup toolchain add nightly cargo +stable install cargo-hack --locked
cargo +stable install cargo-minimal-versions --locked
Compiler support: requires rustc 1.60+
From prebuilt binaries
You can download prebuilt binaries from the Release page. Prebuilt binaries are available for macOS, Linux (gnu and musl), Windows (static executable), and FreeBSD.
Example of script to download cargo-minimal-versions
# Get host target host=$(rustc -Vv | grep host | sed 's/host: //') # Download binary and install to $HOME/.cargo/bin curl -LsSf https://github.com/taiki-e/cargo-minimal-versions/releases/latest/download/cargo-minimal-versions-$host.tar.gz | tar xzf - -C $HOME/.cargo/bin
On GitHub Actions
- uses: taiki-e/install-action@cargo-hack - uses: taiki-e/install-action@cargo-minimal-versions
You can install cargo-minimal-versions using Homebrew tap on macOS and Linux:
brew install taiki-e/tap/cargo-minimal-versions
Via Scoop (Windows)
You can install cargo-minimal-versions using Scoop:
scoop bucket add taiki-e https://github.com/taiki-e/scoop-bucket scoop install cargo-minimal-versions
You can install cargo-minimal-versions using cargo-binstall:
cargo binstall cargo-minimal-versions
- cargo-hack: Cargo subcommand to provide various options useful for testing and continuous integration.
- cargo-llvm-cov: Cargo subcommand to easily use LLVM source-based code coverage.
- cargo-config2: Library to load and resolve Cargo configuration.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.