| name | release-package |
| description | Release a new version of an ins* package following the multi-module release process |
Instructions
Release package: $ARGUMENTS
First, gather information:
- Identify the package to release from the arguments
- Run
git log $(git describe --tags --match "<package>/v*" --abbrev=0 2>/dev/null)..HEAD -- <package>/ to see changes since last release
- Run
git tag -l "<package>/v*" | sort -V | tail -5 to check recent version tags
- Check if this package has dependents that need updating:
inssqs depends on insdash, inslogger
insssm depends on inscacheable
Then follow the release process:
-
Determine version bump
- Patch (v1.0.X): Bug fixes, internal changes
- Minor (v1.X.0): New features, backward-compatible additions
- Major (vX.0.0): Breaking API changes
-
Verify tests pass
cd <package>
go mod tidy
go test ./...
-
Run dependency check
./scripts/check-deps.sh
-
Create and push tag
git tag <package>/v<version>
git push origin <package>/v<version>
-
Create GitHub release
gh release create <package>/v<version> --title "<package> v<version>" --notes "Description of changes"
-
Update dependents (if applicable)
- If releasing
insdash or inslogger → check if inssqs needs updating
- If releasing
inscacheable → check if insssm needs updating
- Update
go.mod in dependent packages and release them too
-
Notify — Commit message format: <package>: release v<version>