This document covers maintainer workflows for numbered Acton releases.
For everyday contributor setup, builds, tests, and docs workflows, see CONTRIBUTING.md.
- This file covers versioned releases such as
v0.22.0. trunkandrelease-objsreleases are maintained by GitHub Actions and are not part of the manual release flow below.
The full maintainer xtask surface currently includes:
releaseretagdistschemasync-artifactsgithub-cleanupubicloud-cleanup
This document focuses on numbered release flows (release / retag).
Contributor-facing setup tasks such as schema and sync-artifacts are
documented in CONTRIBUTING.md.
Use the release xtask instead of manual version bump, commit, tag, or push
steps:
cargo xtask release --version <major.minor.patch>Example:
cargo xtask release --version 0.22.0Use the retag xtask when a numbered release tag needs to be moved to the
current release state by creating an empty retry commit without changing the
project version:
cargo xtask retag --version 0.22.0--version accepts X.Y.Z and retag derives the release tag as vX.Y.Z.
ghCLI installed and authenticated:gh auth statusyqv4 installed- local
masterbranch with no uncommitted changes - successful GitHub Actions build for the current
masterHEAD - release notes reviewed in
CHANGELOG.md - no unresolved release-blocking issues for the target version
cargo xtask release:
- validates that the version is in
X.Y.Zformat - verifies that
CHANGELOG.mdcontains a section forX.Y.Z - checks that the current branch is
master - checks that
origindoes not already have tagvX.Y.Z - verifies the worktree is clean
- fetches
origin/masterand checks localmasteris up to date - verifies GitHub Actions builds succeeded for the current
HEAD - updates versions in
Acton.toml,Cargo.toml,package.json, anddocs/.versions - runs
cargo update --workspace - creates commit
chore(acton): bump to version \X.Y.Z`` - creates tag
vX.Y.Z - shows the created commit diff stat
- asks for explicit
yesconfirmation before pushing - pushes
masterandvX.Y.Ztoorigin
After the tag is pushed, the GitHub Release workflow builds release
artifacts, creates the GitHub release, and only then publishes the Docker image.
The retag workflow creates an empty commit on top of master, deletes the
existing tag in origin, recreates the tag on that retry commit, and pushes
both master and the tag, so it requires explicit confirmation and only runs
when the tag already exists in origin and local master exactly matches
origin/master.
cargo xtask dist archivepackages release archives and.sha256files used by CI and release automation- other
distsubcommands currently exist but are still placeholders/TODO cargo xtask schemaregeneratescrates/acton-config/schemas/acton.schema.jsoncargo xtask sync-artifactsrefreshes native TON artifacts and bundled stdlib assetscargo xtask github-cleanupandcargo xtask ubicloud-cleanupprune caches; outside CI they default to dry-run safety mode