> ## Documentation Index
> Fetch the complete documentation index at: https://oss.delino.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Cargo mono

# cargo-mono

`cargo-mono` is a Cargo external subcommand (`cargo mono`) for monorepo-scale Rust workspace operations.

## Why use cargo-mono

* Discover and scope affected crates with deterministic workspace analysis.
* Coordinate safe version bumps across internal dependencies.
* Run release and publish workflows with structured operator-friendly output.

## Core capabilities

* Workspace discovery and reporting: `list`
* Git-aware impact analysis: `changed`
* Version orchestration and release commit automation: `bump`
* Dependency-aware publish flow with optional release tag creation: `publish`
* Stable output contract: `--output human|json`

## Install

Tag contract:

* `cargo-mono@v<semver>`

`cargo-binstall`:

```bash theme={null}
cargo binstall cargo-mono --no-confirm
```

GitHub Actions:

```yaml theme={null}
- uses: taiki-e/install-action@v2
  with:
    tool: cargo-binstall
- run: cargo binstall cargo-mono --no-confirm
```

## Common workflows

List publishable workspace crates:

```bash theme={null}
cargo mono list
```

Find crates changed from the default base ref:

```bash theme={null}
cargo mono changed
```

Bump changed crates with dependent patch propagation:

```bash theme={null}
cargo mono bump --changed --level patch --bump-dependents
```

Dry-run publish for selected changed crates:

```bash theme={null}
cargo mono publish --changed --dry-run
```

Enable publish tag creation for selected crates:

```toml theme={null}
[workspace.metadata.cargo-mono.publish.tag]
packages = ["nodeup", "cargo-mono"]
```

When enabled, successful publish runs create local tags with `<crate>@v<version>` naming.

## Quality and reliability

`cargo-mono` is validated with command-level integration tests that run against temporary git workspaces.

The suite verifies:

* Stable `human` and `json` output behavior across commands.
* Change detection contracts, including include/exclude path filters, direct-only mode, include-uncommitted mode, and global-impact file handling.
* Release bump behavior, including internal dependency updates, workspace dependency updates, and release commit creation without tag creation.
* Publish safety behavior, including non-publishable crate skipping, invalid package selection errors, and allowlist-based publish tag creation.

Run from repository root:

```bash theme={null}
cargo test -p cargo-mono --test cli
```

## Related pages

* [Projects Overview](projects-overview)
* [Getting Started](getting-started)
