🦀 Announcing cargo-verctl: Version automation for your Cargo manifests and workspaces

Hi everyone,

I’m excited to share cargo-verctl, a Cargo subcommand for automated version management — especially useful in CI/CD environments or multi-crate workspaces.

:sparkles: Highlights

  • Add or update version fields automatically in Cargo.toml
  • Bump major, minor, or patch interactively
  • CI-friendly non-interactive mode
  • Independent workspace crate version management
  • Written in Rust, no external dependencies

:toolbox: Installation

cargo install cargo-verctl

:puzzle_piece: Example

cargo verctl --list
cargo verctl --bump patch
cargo verctl --set 1.2.3

:books: Links

MIT licensed — contributions, PRs, and feedback welcome!

Andrey Yelabugin (@sibman)
#rustlang #cargo

2 Likes

Congrats!

Some suggestions

  • consider cargo_metadata for finding workspace members
  • consider semver for parsing version numbers

btw were you aware of cargo-edits cargo set-version? Some features from that that may be of interest

  • bumping workpace.package.version
  • updating version reqs for dependents within the workspace

cargo release version allows customizing the dependent version req update.

A feature I've been meaning to add but haven't is improving the build-metadata behavior, like

  • preserve on version change
  • auto create from public dependencies (e.g. clap_cargo can use it to make it clear which versions work with which major versions of clap and cargo_metadata

Something I haven't yet figured out is how to refer to relative vs absolute version bumps. For 0.1.0, major can mean you want to bump to either 0.2.0 or 1.0.0.

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.