Branch model and releases

alloyctl follows the standard GitHub Flow model centered around the main branch:

The primary development and release branch. All pull requests are opened against and merged into main. Every release tag points to a commit on main.

Where to open pull requests

Open every pull request directly against main.

Feature branches (such as driver/<name>, feat/<name>, or fix/<name>) should be branched off the latest main and kept up to date via rebase.

Releases

Releases are cut by the maintainer pushing a signed tag on main; nobody else publishes releases. The version lives in the bare VERSION file at the repository root, and a tag must equal v + that file (make check-version-tag enforces it). The single portable alloyctl binary is the release artifact, so one build serves every distribution.

Pushing a vX.Y.Z tag triggers the Release workflow, which builds the binary, writes a SHA256SUMS manifest, signs it with cosign keyless, and publishes a GitHub Release:

Pre-release

Any tag carrying a pre-release suffix (such as -rc1) publishes as a pre-release.

Release

Standard release tags (such as v0.3.0) publish as a normal public release.