Release Runbook
This repo uses Git tags + GitHub Releases. Follow this order to avoid broken/partial releases.Preconditions
- Local worktree is clean:
git status - CI is green on
main - You have GitHub permissions to push tags and create releases
1. Decide Version
- Pick next semver tag, e.g.
v0.42.0. - Keep
v0.x.yconsistent with prior tags in this repo.
2. Update Changelog
- Edit
CHANGELOG.md. - Add a new top section for the version/date, e.g.:
## [v0.42.0] - 2026-02-09
- Add bullets grouped by area (Dyad, CLI, Image, Docs, Vault, etc.).
- Ensure the items are user-facing (what changed) and include important migration notes.
- Update
tools/si/version.go:const siVersion = "v0.42.0"
3. Commit
- Commit release prep changes:
git add CHANGELOG.md tools/si/version.gogit commit -m "release: v0.42.0"
4. Tag
- Create an annotated tag:
git tag -a v0.42.0 -m "v0.42.0"
5. Push
- Push commit(s):
git push origin main
- Push tag:
git push origin v0.42.0
6. Create GitHub Release
- In GitHub UI: Releases -> “Draft a new release”.
- Choose the tag
v0.42.0onmain. - Title format:
v0.42.0 - <short title>- The
<short title>should be a 3-7 word summary of the headline change (not “Release” / not a sentence).
- Body:
- Paste the
CHANGELOG.mdsection for that version. - Add a short “Upgrade notes” section if there are any behavior changes.
- Paste the
- Publish the release.
7. Post-release Checks
- Local version:
si version
- Image version:
si build imagedocker run --rm aureuma/si:local si version
- Dyad smoke:
HOME=/home/<user> si dyad spawn <name> --skip-authHOME=/home/<user> si dyad status <name>HOME=/home/<user> si dyad remove <name>
