Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 2.25 KB

File metadata and controls

75 lines (51 loc) · 2.25 KB
Cargo-Ensure-No-Cyclic-Deps Logo

Cargo-Ensure-No-Cyclic-Deps

crates.io docs.rs MSRV CI Coverage License This crate was developed as part of the Oxidizer project

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.

Usage

Run this command in a cargo workspace:

cargo ensure-no-cyclic-deps

The 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

Installation

cargo install --path .

Or from within the workspace:

cargo install cargo-ensure-no-cyclic-deps

Example Output

When 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.