Version Bump Skill
Use this skill when bumping the version.
Important: Use cargo version-info bump
Always use cargo version-info bump for version management.
Never use cog bump - it creates local tags which conflict with
the CI workflow that creates tags after tests pass.
Bump Commands
# Patch bump: 0.2.4 -> 0.2.5 cargo version-info bump --patch # Minor bump: 0.2.4 -> 0.3.0 cargo version-info bump --minor # Major bump: 0.2.4 -> 1.0.0 cargo version-info bump --major
What the Bump Command Does
- •Runs
pre_bump_hooksdefined inCargo.toml:- •Executes
./scripts/sync-npm-version.sh {{version}} - •Updates
[workspace.package]version in Cargo.toml - •Updates
npm/package.jsonversion - •Updates
npm/dotenvage-napi/Cargo.tomldependency version - •Updates
package.jsonversion
- •Executes
- •Bumps the version in the main
[package]section - •Updates
Cargo.lock - •Commits all changed files listed in
additional_files - •Creates a git commit with message:
chore(version): bump X.Y.Z -> A.B.C
The bump command uses hunk-level selective staging, so it only commits version-related changes. Any other uncommitted work remains unstaged.
Files Updated
- •
Cargo.toml- workspace and package versions - •
Cargo.lock- lockfile - •
npm/package.json- npm package version - •
npm/dotenvage-napi/Cargo.toml- NAPI binding dependency - •
package.json- root workspace version
What the Bump Command Does NOT Do
- •Does NOT create git tags (CI creates tags after merge)
- •Does NOT push to remote (you must push manually)
Workflow
- •Run
cargo version-info bump --patch(or --minor/--major) - •Push the branch or create a PR
- •Merge to main
- •CI detects version change, creates tag, publishes release
Checking Current Version
# Get version from Cargo.toml cargo version-info current # Get computed build version (includes git SHA in dev) cargo version-info build-version # Check if version changed since last tag cargo version-info changed
Dry Run
To see what would change without making changes:
# Check current version cargo version-info current # Calculate what next patch would be cargo version-info next
After Bumping
After running bump, verify the commit includes all version-related files:
git log -1 --oneline git diff HEAD~1 --stat git status
Important: Check that all files modified by pre-bump hooks are
included in the commit. If git status shows uncommitted version
changes (from hooks), amend the commit:
git add <missing-files> git commit --amend --no-edit
Then add those files to additional_files in Cargo.toml to prevent
this in future bumps.
Then push when ready:
git push origin <branch>
Configuration
The version bump is configured in Cargo.toml:
[package.metadata.version-info]
pre_bump_hooks = [
"./scripts/sync-npm-version.sh {{version}}"
]
additional_files = [
"npm/package.json",
"npm/dotenvage-napi/Cargo.toml",
"package.json"
]
Troubleshooting
If the version bump fails or files are missing from the commit:
- •Check that
additional_filesinCargo.tomlincludes all npm files - •Verify pre_bump_hooks ran successfully (look for the sync messages)
- •If needed, manually stage files and amend the commit