A cargo sub-command that detects cyclic dependencies between crates in a workspace. This is useful if you
want to prevent dev-dependencies from creating dependency cycles as that can cause issues,
e.g. for cargo-release.
Run this command in a cargo workspace:
cargo ensure-no-cyclic-depsThe command will:
- Analyze all workspace crates
- Check for cyclic dependencies (including dev-dependencies)
- Report any cycles found
- Exit with code 1 if cycles are detected, 0 otherwise
cargo install --path .Or from within the workspace:
cargo install cargo-ensure-no-cyclic-depsWhen cycles are detected:
Error: Cyclic dependencies detected!
Cycle 1:
crate_a -> crate_b -> crate_c -> crate_a
Cycle 2:
crate_x -> crate_y -> crate_x
When no cycles are found:
No cyclic dependencies found.
The tool will exit with code 0 if no cycles are found, or code 1 if cycles are detected.
This crate was developed as part of The Oxidizer Project. Browse this crate's source code.
