Releasing
SimpleDeploy releases through release-please (driven by Conventional Commits) and goreleaser (binaries + packages).
Cadence
Section titled “Cadence”When the PR queue contains shippable changes (any feat: or fix: since the last tag), a release-please PR is open against main with a generated CHANGELOG bump. Merging that PR cuts a release.
Patch releases for security fixes can be cut anytime by manually editing the release-please PR’s version bump.
What gets built
Section titled “What gets built”goreleaser (config in .goreleaser.yml) produces:
- Linux AMD64 and ARM64 binaries (tarball).
- macOS AMD64 and ARM64 binaries (tarball).
- Debian package (
.deb) with a systemd service. - Homebrew tap update (
vazra/homebrew-tap). - APT repo update (
vazra.github.io/apt-repo). - GitHub release with all artifacts and the CHANGELOG entry.
Build inputs: Go binary with -ldflags for version + commit + date, plus the prebuilt UI bundle from ui/dist/ copied into cmd/simpledeploy/ui_dist/.
Local release dry-run
Section titled “Local release dry-run”# Validate goreleaser config and run a snapshot build (no publish)goreleaser release --snapshot --cleanRelease-day checklist
Section titled “Release-day checklist”- Skim the release-please PR’s CHANGELOG. Reword anything unclear.
- Confirm
make testandmake e2eare green on the PR. - Merge the release-please PR. Tag is created automatically.
- CI runs
goreleaser. Watch the workflow. - Verify the new version appears in: GitHub Releases, Homebrew tap, APT repo.
- Bump the docs site if any reference is version-pinned.
- Announce in the Blog (
docs-site/src/content/docs/blog/) and GitHub Discussions.
Hotfix
Section titled “Hotfix”For a hotfix without other queued changes:
- Branch from the release tag.
- Land the fix as
fix:commit(s) onmain(or directly on a release branch if main has unreleased work you want to hold back). - Let release-please open a patch PR. Merge it.
Post-mortem releases
Section titled “Post-mortem releases”For incident-driven security releases, follow SECURITY.md for coordinated disclosure.