Release Process
How Alice releases are built and published.
Branch Strategy
- Day-to-day development happens on
dev - Releases go through
dev → mainmerge commits only - Never push directly to
main
CI Pipeline
On dev Push
- Run quality gate (
make check) - Build dev binaries
- Update prerelease
dev-latest
On main Merge from dev
- Run quality gate (
make check) - Auto-create next
vX.Y.Ztag - Build release binaries for all platforms
- Publish GitHub Release
Manual v* Tags
- Pushing a
v*tag triggers the release workflow directly
Release Artifacts
Each release publishes:
- Binary builds for: linux-amd64, linux-arm64, darwin-amd64, darwin-arm64, win32-x64
- npm package:
@alice_space/alice - Installer script:
scripts/alice-installer.sh
Making a Release
- Ensure
devpasses all checks and is ready - Create a PR from
devtomain - Merge with merge commit (do NOT squash or rebase)
- CI auto-creates the tag and publishes the release
- Verify the GitHub Release shows all artifacts
Version Numbers
Tags follow semver: vX.Y.Z. The CI auto-increments the patch version from the previous release tag.
Post-Release
- The installer script (
alice-installer.sh) automatically picks up the latest release - npm users get the update via
npm update -g @alice_space/alice
CI Workflow Files
.github/workflows/ci.yml— Dev branch quality gate and dev binaries.github/workflows/main-release.yml— Main branch release build.github/workflows/release-on-tag.yml— Manual tag release