con un clic
release
// Release tang end-to-end: infer the next version from git history, update CHANGELOG.md, test, tag, build the macOS arm64 binary, upload the GitHub release asset, update onevcat/homebrew-tap, and verify Homebrew installation.
// Release tang end-to-end: infer the next version from git history, update CHANGELOG.md, test, tag, build the macOS arm64 binary, upload the GitHub release asset, update onevcat/homebrew-tap, and verify Homebrew installation.
| name | release |
| description | Release tang end-to-end: infer the next version from git history, update CHANGELOG.md, test, tag, build the macOS arm64 binary, upload the GitHub release asset, update onevcat/homebrew-tap, and verify Homebrew installation. |
Use this skill when the user says $release, "发布", "release", "发版", or asks to ship a new tang version.
The goal is to complete the whole release, not just describe it. The agent owns the release bookkeeping, but must not invent a version blindly. If the user does not provide a version, infer it from history and proceed. Ask only when the history supports multiple materially different release choices, such as a possible breaking release versus an ordinary patch release.
onevcat/homebrew-tap.vX.Y.Z.onevcat/homebrew-tap: tang-X.Y.Z.tang-X.Y.Z-darwin-arm64.tar.gz.scripts/release.sh X.Y.Z
The default tap checkout path is:
/Users/onevcat/Sync/github/homebrew-tap
git tag --list 'v*' --sort=-version:refname | head -1
git log --oneline --decorate <latest-tag>..HEAD
git diff --stat <latest-tag>..HEAD
1.0.0. Before 1.0.0, prefer minor for breaking user-facing changes unless the user explicitly wants 1.0.0.For this early project, most ordinary releases after 0.0.1 should be patch releases unless there is a clear new capability.
Before running the release script, update CHANGELOG.md with a top-level entry:
## X.Y.Z
- User-facing change.
- Another user-facing change.
Guidelines:
0.0.1 entry intact.Commit and push the changelog before tagging:
go test ./...
git add CHANGELOG.md
git commit -m "Prepare X.Y.Z release"
git push origin main
If other files are intentionally part of the release preparation, include them in the same commit. Do not include unrelated dirty files.
Run:
scripts/release.sh X.Y.Z
The script will:
tang and homebrew-tap worktrees,CHANGELOG.md to contain ## X.Y.Z,go test ./...,make build,vX.Y.Z,scripts/release-homebrew.sh to build, ad-hoc sign, package, checksum, and upload the macOS arm64 asset,Formula/tang.rb in onevcat/homebrew-tap,onevcat/tap checkout if present,brew audit --strict --online onevcat/tap/tang,brew reinstall onevcat/tap/tang,brew test onevcat/tap/tang,tang version.After release, report:
vX.Y.Z,tang version,brew install onevcat/tap/tang
Formula/tang.rb, commit, push, and rerun audit/install/test.tang ssh-key list; do not force-push unrelated refs.gh account only if it is onevcat; otherwise stop and ask the user to switch auth.