Rust Bump Version
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
Set a Rust project’s version to an exact, caller-supplied value across every place that must agree with it, following
the catalog’s x.y.z-dev development-version convention.
Purpose
iru-rust-bump-version never computes a version; it validates the given string as SemVer 2.0 (what Cargo requires),
warns when it is a pre-release other than -dev or carries build metadata, and applies it. An embedded Python helper,
driven by cargo metadata and regex-based TOML edits that keep comments, formatting and CRLF line endings, offers
--list, --dry-run and --force modes. It rewrites the root Cargo.toml [package] version and
[workspace.package] version (which members declaring version.workspace = true inherit), the [package] version of
other publishable members that move in lockstep, and the version = "…" requirement of every path dependency on those
packages (keeping an =, ^ or ~ operator), so the workspace still resolves across a -dev, release, next -dev
cycle. Members with publish = false (such as xtask) or their own version are reported and left alone. It refreshes
Cargo.lock with cargo update --workspace --offline, which only re-locks the workspace’s own entries, and refuses to
write when version locations disagree until the user confirms. Step 5 documents the pre-release convention that
iru-release calls it against, and it can optionally sync README and Antora version mentions.
Plugin
Shipped by the iru-rust plugin of the ai-catalog marketplace (install with /plugin install iru-rust@ai-catalog; see Plugins).
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
|
Yes |
Literal target version, such as |
Asked for if missing. |
|
No |
|
Ask when such mentions exist. |
|
No |
Upcoming development version that "Current development version" markers should show after a release. Only meaningful
with |
None |
|
No |
|
|
Outputs
-
Updated version locations in the root and member
Cargo.tomlfiles, and a refreshedCargo.lock. -
Optionally updated README and Antora version mentions.
-
A report: each location with its old and new value, lockstep packages, inheriting members, members left untouched (and why), every file changed, any disagreement aligned with
--force, whether it was a dry run, and the sanity-check result (--listagreement,cargo pkgid,cargo check --locked). -
A warning to review the diff before committing; hard-coded version literals and golden
--versionoutputs are reported, not changed.
Execution flow
Dependencies
Invokes
None — it runs an embedded Python helper and cargo commands directly. Step 5 is a documented convention for callers
rather than an invocation.
Invoked by
-
Release — Step 6, version bump for Rust projects (two calls per release).
Also referenced (not invoked) by Setup Rust CLI and
Setup CLI GitHub Workflows, whose scaffold and sync.yml workflow follow the x.y.z-dev
convention this skill maintains.
Source
SKILL.md on GitHub — the file this page was generated from.