Releases
The repository release workflow is triggered by an exact vX.Y.Z tag push.
Before artifact work, it checks that the tag commit is reachable from main,
validates the Go project, verifies the active language surface, and checks the
release helpers and install snippets.
Native artifacts
The release matrix builds five native targets with CGO enabled:
| OS | Architecture | Archive |
|---|---|---|
| Linux | amd64 | sunset_<version>_linux_amd64.tar.gz |
| Linux | arm64 | sunset_<version>_linux_arm64.tar.gz |
| macOS | amd64 | sunset_<version>_darwin_amd64.tar.gz |
| macOS | arm64 | sunset_<version>_darwin_arm64.tar.gz |
| Windows | amd64 | sunset_<version>_windows_amd64.zip |
The artifact set also contains checksums.txt. Release helpers extract an
archive, run CLI smoke checks, and verify the public Go consumer path. The
release runbook at docs/releasing.md is the maintainer procedure for exact
tag binding, approval, public verification, and recovery with a new version.
Version reporting
Release builds inject internal/version.BuildVersion with an ldflag. Local
untagged builds report dev; sunset version prints the resolved value. The
generated project index records the resolved Sunset version independently from
the site metadata.
Documentation deployment
The documentation workflow uses Node 22, validates and builds on pull requests
and main pushes, and deploys the built site only from main to the Cloudflare
Pages project sunset-docs. It smoke-tests the public site URL after deploy.
See the dedicated Maintainer release guide for the operator checklist and the Maintainer contribution guide for repository checks.