Release
Overview
The taxiway CLI is released through GitHub Releases produced by GoReleaser. Each
archive contains the taxiway binary and the matching runtime assets for the same
version:
infra/agents/orchestrators/
The installer replaces the runtime assets in ~/.taxiway/runtime/ and installs
the binary to $HOME/.local/bin by default.
Cut a Release
-
Qualify the exact clean candidate with the release recipe and shared
taxiway-releaseskill. Present its evidence, blockers and untested combinations. Core CI alone is insufficient. Qualification-only invocation does not authorize publication; get explicit authorization before creating/pushing a tag or publishing. -
Create and push a semver tag:
git tag v0.1.0 git push origin v0.1.0 -
The
Releaseworkflow runs core checks and end-to-end tests, then runs GoReleaser and publishes release assets. -
Verify the release contains:
- one archive per supported platform;
checksums.txt;install.sh;- release notes generated by GoReleaser.
-
Check the automatic Installation qualification results for the published tag. After publication, the workflow tests all six platform × driver combinations. A failure requires investigation; it does not remove the already-published release. Qualification can also be rerun manually.
For a manual release workflow run, select a version tag, or a commit carrying one. The workflow resolves that tag before publication and passes it explicitly to installation qualification.
GoReleaser builds release notes from Conventional Commit-style messages. Use
feat: for user-facing capabilities, fix: for bug fixes, and cleanup-style
messages such as cleanup: for simplification or removal work. See
Development.
Supported Platforms
darwin/amd64darwin/arm64linux/amd64linux/arm64
Native Windows binaries are out of scope. Windows users install the Linux release inside WSL2; see Installation. Runner coverage and qualification criteria are described in Installation qualification.
Installer
Latest release:
curl -fsSL https://github.com/taxiway-sh/taxiway/releases/latest/download/install.sh | sh
Explicit release:
curl -fsSL https://github.com/taxiway-sh/taxiway/releases/download/v0.1.0/install.sh | sh
Explicit binary directory:
curl -fsSL https://github.com/taxiway-sh/taxiway/releases/latest/download/install.sh | sh -s -- --bin-dir "$HOME/bin"
The installer verifies the archive checksum before installing. It fails instead of silently falling back when the selected binary directory is not writable.
Local Checks
Check GoReleaser configuration:
goreleaser check
Create local snapshot artifacts:
goreleaser release --snapshot --clean
Run against source-tree runtime assets while developing:
TAXIWAY_RUNTIME_DIR=$PWD go run ./cmd/taxiway version