| name | push-tag |
| description | Push a version tag and optionally create a GitHub release |
| disable-model-invocation | true |
Push Tag
Overview
Push a new tag to the upstream repository. Optionally create a GitHub release.
Steps
-
Verify branch
git branch --show-current
- Must be on
main branch. If not, switch: git checkout main
-
Determine tag version
git tag --list
- If user provides a tag: validate it doesn't exist and is greater than latest
- If no tag provided: auto-increment patch version (e.g.,
v1.2.3 → v1.2.4)
-
Create and push tag
git tag <TAG>
git push origin refs/tags/<TAG>
-
Create release (if requested)
- Generate structured release notes (do not use
--generate-notes):
- Get commits between previous tag and
<TAG>:
git log <PREV_TAG>..<TAG> --pretty=format:'%s' --no-merges
- Summarize and structure the changes into clear sections, e.g.:
- Features – new functionality
- Fixes – bug fixes
- Documentation – docs, examples, guides
- Refactor / Chore – internal changes, deps, tooling
- Write an overall summary at the top of the release notes: a short paragraph describing the key themes, goals, or highlights of this release compared to the previous one. This gives readers a quick understanding of what changed and why.
- Use concise, user-facing language. Group related changes. Avoid raw commit hashes or jargon unless helpful.
- Write notes to a temp file (e.g.
release_notes.md) and create the release:
gh release create <TAG> --repo spiriMirror/libuipc --notes-file release_notes.md
rm release_notes.md
Note: Always use --repo spiriMirror/libuipc to reference the upstream repository.