跳到正文
cccskills
免费在 GitHub 公开

release-bump

Finalize a prepared release by dating and versioning its changelog section, updating configured version files with bumpversion, and creating a release commit and tag. Verify the results and leave them ready to push.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Use this skill to finalize a release. It stamps the [Unreleased] changelog section with a version and date, runs bumpversion to update all version files, and creates the release commit and tag. Only run this when you're ready to ship.

查看安装方法

适用场景

  • Finalizing a prepared release
  • Applying a patch, minor, or major version increase
  • Updating versions across configured project files
  • Creating and checking a release commit and tag

包含的文件(1)

  • SKILL.md4.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Release Bump

Goal

Finalize the changelog draft, bump the version across all tracked files, and create a tagged release commit. After this skill runs, the repo has a clean release commit and tag ready to push.

Prerequisites

  • gh CLI installed and authenticated (gh auth status).
  • bumpversion installed (pip install bumpversion or available in the project venv).
  • The [Unreleased] section of CHANGELOG.md should already contain the release narrative. If it's empty or stale, run the draft-release-notes skill first.

Workflow

  1. Verify the working tree is clean (except CHANGELOG.md which may have the draft).

    git status --porcelain
    

    Only CHANGELOG.md (and optionally .agents/ files) should be modified. If there are other uncommitted changes, stop and ask the user to commit or stash them first.

  2. Determine the bump level.

    Ask the user if not specified: patch, minor, or major. Check the current version:

    grep '^current_version' .bumpversion.cfg
    
  3. Stamp the changelog.

    Read the current [Unreleased] content from CHANGELOG.md. Compute the new version (based on bump level and current version). Then:

    a. Replace the ## [Unreleased] section body with an empty placeholder. b. Insert a new stamped section immediately after ## [Unreleased]:

    ## [Unreleased]
    
    ## [X.Y.Z] - YYYY-MM-DD
    
    <the content that was in [Unreleased]>
    

    c. Update the reference links at the bottom of the file:

    • Change the [Unreleased] link to compare against the new tag
    • Add a new link for the new version
    [Unreleased]: https://github.com/jamiepine/voicebox/compare/vX.Y.Z...HEAD
    [X.Y.Z]: https://github.com/jamiepine/voicebox/compare/vPREVIOUS...vX.Y.Z
    
  4. Stage the changelog.

    git add CHANGELOG.md
    
  5. Run bumpversion.

    bumpversion --allow-dirty <patch|minor|major>
    

    The --allow-dirty flag is needed because CHANGELOG.md is already staged. bumpversion will:

    • Update version strings in all tracked files (see .bumpversion.cfg)
    • Create a commit with message Bump version: X.Y.Z -> A.B.C
    • Create a tag vA.B.C

    The staged CHANGELOG.md will be included in this commit automatically.

  6. Verify results.

    git show --name-only --stat HEAD
    git tag --list "v*" --sort=-v:refname | head -n 5
    

    Confirm the commit contains:

    • CHANGELOG.md
    • .bumpversion.cfg
    • tauri/src-tauri/tauri.conf.json
    • tauri/src-tauri/Cargo.toml
    • package.json
    • app/package.json
    • tauri/package.json
    • web/package.json
    • backend/__init__.py

    Confirm the new tag exists.

  7. Do NOT push unless the user explicitly asks. Report the tag name and suggest:

    Ready to push. When you're ready:
      git push origin main --follow-tags
    

Version Calculation Reference

Given current version X.Y.Z:

  • patch -> X.Y.(Z+1)
  • minor -> X.(Y+1).0
  • major -> (X+1).0.0

Error Recovery

  • If bumpversion fails, the tag won't exist. Fix the issue and re-run — bumpversion is idempotent as long as the tag doesn't already exist.
  • If you need to undo a release commit (before pushing): git tag -d vX.Y.Z && git reset --soft HEAD~1
  • Never amend a release commit that has been pushed.

Notes

  • When the tag is pushed, the release CI (.github/workflows/release.yml) automatically extracts the matching version section from CHANGELOG.md and uses it as the GitHub Release body. No manual copy-paste needed.
  • The release commit message is controlled by .bumpversion.cfg (Bump version: X.Y.Z -> A.B.C). Do not override it.
  • If you need to manually update the GitHub Release body after the fact: gh release edit vX.Y.Z --notes-file <(sed -n '/## \[X.Y.Z\]/,/## \[/p' CHANGELOG.md | head -n -1)

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Add a text-to-speech engine to Voicebox through dependency research, backend implementation, interface updates, and packaging. The workflow covers development checks and verification of the packaged application before handing the build over for local testing.

中文简介正在准备中。当前显示英语简介。

  • Integrate a new speech synthesis engine into Voicebox
  • Audit model dependencies before implementation
  • Add engine choices and language settings to the interface
jamiepine/voicebox5.8万2026年10月7日 更新

Draft release notes from commits, pull requests, and file changes since the latest release tag. Update the Unreleased section of CHANGELOG.md with a thematic narrative while preserving previous releases and leaving versions and tags unchanged.

中文简介正在准备中。当前显示英语简介。

  • Keeping release notes current during development
  • Summarizing changes before a pull request
  • Preparing a changelog draft before release
jamiepine/voicebox5.8万2026年10月7日 更新

Organize open pull requests before a release, classify what to merge or defer, and track decisions in a resumable document. Guide review, merging, follow-up fixes, and closing requests already covered by other changes.

中文简介正在准备中。当前显示英语简介。

  • Sort a backlog of pull requests before a release
  • Prioritize bug fixes for the next version
  • Resume interrupted reviews from a progress document
jamiepine/voicebox5.8万2026年10月7日 更新

查看 jamiepine 的全部技能

报告此技能的问题