release-workflow

📁 basher83/lunar-claude 📅 3 days ago
3
总安装量
2
周安装量
#57697
全站排名
安装命令
npx skills add https://github.com/basher83/lunar-claude --skill release-workflow

Agent 安装分布

opencode 2
claude-code 2
github-copilot 2
codex 2
kimi-cli 2
gemini-cli 2

Skill 文档

Release Workflow

Project-specific release conventions for lunar-claude. For the interactive release workflow, use the /generate-changelog command from the git-workflow plugin.

Current Release State

  • Latest tag: !git describe --tags --abbrev=0 2>/dev/null || echo "No tags yet"
  • Marketplace version: !jq -r '.metadata.version' .claude-plugin/marketplace.json
  • Unreleased commits: !git log --oneline $(git describe --tags --abbrev=0 2>/dev/null)..HEAD 2>/dev/null | wc -l | tr -d ' '

Version Scheme

  • Semantic versioning: MAJOR.MINOR.PATCH
  • Tag format: v0.x.y (prefixed with v)
  • Marketplace and plugin manifests track versions independently

Version Bump Decision

Commit types present Bump level
BREAKING CHANGE: in footer or ! after type Major
feat: (new features) Minor
fix:, docs:, refactor:, perf:, test:, chore: only Patch

Commit → Changelog Group Mapping

git-cliff (cliff.toml) maps conventional commits to changelog groups:

Commit prefix Changelog group
feat 🚀 Features
fix 🐛 Bug Fixes
refactor 🚜 Refactor
doc 📚 Documentation
perf ⚡ Performance
style 🎨 Styling
test 🧪 Testing
chore, ci ⚙️ Miscellaneous Tasks
body contains “security” 🛡️ Security
revert ◀️ Revert

Auto-Skipped Commits

These are filtered out of the changelog automatically:

  • chore(release): prepare for — release prep commits
  • chore(deps*) — dependency updates (Renovate/Dependabot)
  • chore(pr) / chore(pull) — PR merge housekeeping

Files to Update on Release

  1. CHANGELOG.md — Generated by git-cliff --tag vX.Y.Z -o CHANGELOG.md
  2. .claude-plugin/marketplace.json — Update metadata.version
  3. Plugin manifests — Update version in each changed plugin’s plugins/<cat>/<name>/.claude-plugin/plugin.json (only if that plugin changed)

Release Commit & Tag

$ git add CHANGELOG.md .claude-plugin/marketplace.json
$ git commit -m "docs: update changelog for vX.Y.Z"
$ git tag -a vX.Y.Z -m "Release vX.Y.Z"
$ git push && git push --tags

GitHub Actions (release.yml) automatically creates the GitHub release from the tag, generating release notes via git-cliff.

Gotchas

  • Push tags separately: git push does not push tags — always follow with git push --tags
  • Marketplace version: Easy to forget updating .claude-plugin/marketplace.json alongside CHANGELOG.md
  • Plugin versions are independent: Only bump a plugin’s version if that plugin had changes — not every release bumps every plugin
  • Pre-release tags: Tags containing rc, beta, or alpha are marked as pre-release in GitHub automatically
  • Dependency commits vanish: Renovate/Dependabot commits are auto-skipped in the changelog — this is intentional, not a bug