Skip to content

Release Process

Releases of base/base are produced through two manual workflows and one automatic trigger:

  • Start Release — choose a bump type (major / minor / patch) and the release branch is created automatically.
  • Publish Release — choose a version and the final tag, Docker images, and binaries are published.
  • Auto-RC — every commit to a releases/v* branch (after the version sync PR is merged) automatically creates an RC tag and builds Docker images and binaries.

Run the Start Release workflow (Actions → Start Release → Run workflow):

  • Select the bump type: minor (new feature release), patch (bug fixes), or major (breaking changes).
  • The workflow computes the next version from the latest final tag and creates the releases/vX.Y.Z branch.
  • For patch bumps, the base is the most recent releases/vX.Y.* branch; for major and minor, the base is main.

Once the branch is created, the Release Version Sync workflow fires automatically and opens a PR to update Cargo.toml to the new version.

Review and merge the auto-generated version sync PR targeting the release branch. Merging unblocks auto-RC creation.

Every commit pushed to the release branch triggers the Create RC workflow, which:

  • Skips silently if Cargo.toml is still 0.0.0 (the version sync PR has not been merged yet).
  • Otherwise creates the next RC tag (for example, v0.6.0-rc.1, v0.6.0-rc.2, …).
  • Builds multi-arch Docker images and native binaries.
  • Pushes the Docker image tagged with the RC tag only (not latest).

To produce additional RCs, push more commits — bug fixes or backports — to the release branch.

Once you are satisfied with an RC, run the Publish Release workflow (Actions → Publish Release → Run workflow):

  • Enter the version number (for example, 0.6.0 — no v prefix, no releases/ prefix).
  • The workflow validates that the release branch exists and Cargo.toml is not 0.0.0.
  • Creates the final tag vX.Y.Z on the release branch.
  • Builds Docker images tagged as vX.Y.Z, X.Y, X, and latest.
  • Creates a draft GitHub release with auto-generated changelog and uploads binaries.
  • Review and publish the draft release on GitHub.

The Create RC workflow runs on every push to any releases/v* branch. It is safe to push before the version sync PR is merged — the workflow detects 0.0.0 and skips with a notice rather than failing.

RC tags follow the pattern vX.Y.Z-rc.N, where N increments automatically based on existing tags.

ActionWorkflowTriggerOutput
Create release branchStart ReleaseManual (bump type)releases/vX.Y.Z branch
Sync Cargo.toml versionRelease Version SyncAutomatic on branch creationPR targeting release branch
Build RCCreate RCAutomatic on push to releases/v*RC tag + Docker image + binaries
Publish final releasePublish ReleaseManual (version number)Final tag + Docker images + draft GitHub release
  • Start Release — Creates the release branch from a bump-type dropdown.
  • Release Version Sync — Opens a PR to update Cargo.toml when a release branch is created.
  • Create RC — Triggered on push to releases/v*; creates RC tags and builds artifacts.
  • Build Release — Reusable workflow (called by Create RC and Publish Release) that builds Docker images and binaries.
  • Publish Release — Manual workflow to create the final tag and publish the release.