AgentSkillsCN

release-runbook

按照语义化版本控制规范,准备并发布GitHub版本,更新PROJECT_VER与CHANGELOG,打上标签,并使用GH CLI进行发布。当发生重大变更,或有人要求发布新版本时,可选用此方案。

SKILL.md
--- frontmatter
name: release-runbook
description: Prepare and publish a GitHub release with semantic versioning, updating PROJECT_VER and CHANGELOG, tagging, and using GH CLI to publish. Use after major changes or when asked to cut a release.

Release Runbook

Overview

Create a new release for this repo by updating semantic versions, maintaining CHANGELOG, tagging the release, and publishing it to GitHub via gh.

Workflow (PowerShell)

1) Pre-flight checks

  • Confirm repo and auth:
    • gh repo view --json nameWithOwner,url
    • gh auth status
  • Ensure working tree is clean or changes are intentional.

2) Decide the version (semantic versioning)

  • Use MAJOR.MINOR.PATCH.
    • MAJOR: breaking changes
    • MINOR: new features, backward compatible
    • PATCH: fixes only
  • If unsure, summarize changes and pick the smallest correct bump.

3) Update version and changelog

  • Update PROJECT_VER in CMakeLists.txt.
  • Update CHANGELOG (add a new section for vX.Y.Z with date and highlights).
  • Keep entries concise and user-facing; group by Added/Changed/Fixed/Breaking.

4) Commit the release prep

  • Commit CMakeLists.txt and CHANGELOG together.
  • Use Conventional Commits, e.g.:
    • chore: bump version to X.Y.Z

5) Tag the release

  • Create an annotated tag:
    • git tag -a vX.Y.Z -m "Release vX.Y.Z"
  • Push the tag:
    • git push origin vX.Y.Z

6) Create the GitHub release

  • Use the changelog section as release notes:
    • gh release create vX.Y.Z --title "Release X.Y.Z" --notes "Release notes here"
  • If the repo uses a template, follow it exactly.

Quality checklist

  • PROJECT_VER matches the tag vX.Y.Z.
  • CHANGELOG contains the new version section and date.
  • Tag is pushed and visible on GitHub.
  • Release notes match the changelog highlights.

Troubleshooting

  • If tag exists, increment the version and retry.
  • If release creation fails, re-run gh release create with the same tag.