Release Process
Create a new release for specops.
Steps
- Determine Version
Ask the user for the new version, or suggest one based on semver:
-
patch (x.y.Z): bug fixes, minor changes
-
minor (x.Y.0): new features, backwards compatible
-
major (X.0.0): breaking changes
To find the current version:
git describe --tags --abbrev=0
- Bump Version
Update version in these files:
-
install.ps1 : $VERSION = "vX.Y.Z"
-
install.sh : VERSION="vX.Y.Z"
-
README.md : Update install URLs to use vX.Y.Z instead of previous version
-
.claude-plugin/plugin.json : "version": "X.Y.Z" (no "v" prefix)
- Commit Version Bump
git add install.ps1 install.sh README.md .claude-plugin/plugin.json git commit -m "Bump version to vX.Y.Z"
- Create and Push Tag
git tag vX.Y.Z git push origin main git push origin vX.Y.Z
- Generate Release Notes
Get commits since last tag for release notes:
git log $(git describe --tags --abbrev=0 HEAD^)..HEAD --oneline
- Create GitHub Release
gh release create vX.Y.Z --title "vX.Y.Z" --notes "RELEASE_NOTES_HERE"
PowerShell note: Escape backticks by doubling them (` → `` ).
Format release notes as:
Changes
- Change 1
- Change 2
Installation
Windows:
irm https://raw.githubusercontent.com/wilddeer/specops/main/install.ps1 | iex
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/wilddeer/specops/main/install.sh | bash
## Checklist
- [ ] Version follows semver
- [ ] Both install scripts updated
- [ ] README install URLs updated
- [ ] plugin.json version updated (no "v" prefix)
- [ ] Tag matches version in scripts, README, and plugin.json
- [ ] Release notes summarize changes clearly