Plugin for cargo
to run commands against selected combinations of features.
bash
cargo install cargo-feature-combinations
In most cases, just use the command as if it was cargo
.
However, there are a few optional flags and the matrix
subcommand.
bash
cargo feature-combinations check
To save time, you can also use the shortened name cargo fc
:
bash
cargo fc test
cargo fc --fail-fast test
cargo fc build
cargo fc --silent build
cargo fc matrix
For details, please refer to --help
:
```bash $ cargo fc --help
USAGE: cargo [+toolchain] [SUBCOMMAND] [SUBCOMMANDOPTIONS] cargo [+toolchain] [OPTIONS] [CARGOOPTIONS] [CARGO_SUBCOMMAND]
SUBCOMMAND: matrix Print JSON feature combination matrix to stdout --pretty Print pretty JSON
OPTIONS: --help Print help information --silent Hide cargo output and only show summary --fail-fast Fail fast on the first bad feature combination --pedantic Treat warnings like errors in summary and when using --fail-fast ```
In your Cargo.toml
, you can configure the feature combination matrix:
```toml [package.metadata.cargo-feature-combinations]
skipfeaturesets = [ ["foo", "bar"], ]
denylist = ["default", "full"] ```
The github-actions matrix feature allows more efficient testing of all feature set combinations in CI.
The following workflow file uses cargo-feature-combinations
to automatically generate a feature matrix and runs up to 256 feature combinations in a matrix job.
```yaml
```
For local development and testing, you can point cargo fc
to another project using
the --manifest-path
flag.
bash
cargo run -- cargo check --manifest-path ../path/to/Cargo.toml
cargo run -- cargo matrix --manifest-path ../path/to/Cargo.toml --pretty
bash
cargo clippy --tests --benches --examples -- -Dclippy::all -Dclippy::pedantic
The cargo-all-features
crate is similar yet offers more complex configuration and is lacking a summary.