Bumpversion changelog stamp release
Skill kjuhwa/skills-hub/skills/agents/bumpversion-changelog-stamp-release
Self-correcting knowledge corpus for Claude Code — 9 stable shape clusters, bias-correction pipeline baked into contribution flow. 47 papers, 45 techniques, 1.1k skills.
npx -y skills add kjuhwa/skills-hub --skill bumpversion-changelog-stamp-releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Finalize a release by stamping the changelog, running bumpversion across all tracked files, and creating a signed tag — without pushing.
SKILL.md
3.2 KB, as published. Nobody here has run it
Bumpversion changelog-stamp release
When to use
Cutting a new release from a mature [Unreleased] draft. You want version bumps synchronized across every tracked file (Cargo.toml, tauri.conf.json, package.json family, backend __init__.py, etc.), a stamped changelog section, one commit, and one tag — ready to push when you decide.
Steps
- Verify the working tree is clean except for
CHANGELOG.md(git status --porcelain). If anything else is dirty, stop and have the user commit or stash — you don't want unrelated changes in a release commit. - Read the current version from
.bumpversion.cfg(grep '^current_version' .bumpversion.cfg). Ask the user (or infer) the bump level:patch,minor,major. Compute the next version. - Stamp the changelog manually:
a. Insert a new
## [X.Y.Z] - YYYY-MM-DDheading directly after## [Unreleased]. b. Move the body that was under[Unreleased]into the new stamped section. c. Leave[Unreleased]with an empty body so the next development cycle starts clean. d. Update the reference links at the bottom: change[Unreleased]tocompare/vX.Y.Z...HEAD; add[X.Y.Z]: compare/vPREVIOUS...vX.Y.Z. git add CHANGELOG.md. The changelog is now staged.- Run
bumpversion --allow-dirty <level>.--allow-dirtyis required because CHANGELOG.md is already staged. bumpversion updates every file listed in.bumpversion.cfg, creates a single commit (message format isBump version: X.Y.Z -> A.B.C), and tags itvA.B.C. The staged changelog rides along in that commit. - Verify:
git show --name-only --stat HEADshould listCHANGELOG.md,.bumpversion.cfg, tauri/Cargo/package files, and backend/init.py.git tag --list "v*" --sort=-v:refname | head -n 5should show the new tag at the top. - Do not push. Report the tag and suggest
git push origin main --follow-tagswhen the user is ready.
Counter / Caveats
- Never amend a release commit that has been pushed. To undo locally:
git tag -d vX.Y.Z && git reset --soft HEAD~1. - Don't override the bumpversion commit message; downstream CI often parses the canonical format.
- If the release CI extracts release notes from CHANGELOG.md (by matching the
## [X.Y.Z]heading), stamp the exact version string — typos become empty release pages. - If bumpversion fails partway, the tag won't exist. Fix the cause and re-run — the step is idempotent as long as the tag is absent.
- Run
draft-release-notesfirst to make sure the[Unreleased]body reflects reality before stamping.
Source references: .agents/skills/release-bump/SKILL.md (the full workflow this skill extracts), .bumpversion.cfg, CHANGELOG.md.