Release Prep
Use this skill when asked to prepare, review, or reason about an Ona Terraform provider release PR.
Release Model
version/STABLE_VERSIONis the reviewed stable release intent and contains exact bare SemVer, for example0.2.0.version/BETA_VERSIONis the reviewed beta release line and contains a bare beta line without the numeric suffix, for example0.3.0-beta.- GitHub release tags add the leading
v, for examplev0.2.0orv0.3.0-beta.7. terraform-registry-manifest.jsonversion is the Registry manifest schema version, not the provider version.- Pushes to
mainrun CI and automatically publish the next beta tag fromversion/BETA_VERSION. - Stable publishing is a manual
Build mainworkflow run frommainwithrelease_channel=stableafter the stable release-prep PR merges. - Local publishing is not supported; the publish scripts are invoked by GitHub Actions on
main.
Workflow
- Inspect existing tags and releases. Use the highest SemVer tag as the lower bound; use the most recent published tag as the diff base for changelog review when those differ.
- For a beta-line PR, update only
version/BETA_VERSIONto the intended beta line, for example0.3.0-beta. - For a stable release-prep PR, update
version/STABLE_VERSIONto exact bare SemVer and update the firstCHANGELOG.mdheading to the same version. - Run both release metadata checks:
scripts/validate-release-version.sh --channel stablescripts/validate-release-version.sh --channel beta
- For a release-prep PR, keep the PR focused on release metadata unless the user asked for release automation changes too.
- After a beta-line PR merges, the next push to
mainpublishes the next computedv...-beta.Ntag. - After a stable release-prep PR merges, run the
Build mainworkflow manually frommainwithrelease_channel=stable. - After a stable release is published, prepare the next beta-line PR before the next beta publish attempt if the current beta line is no longer greater than the latest stable tag.
Guardrails
- Do not publish stable releases on every merge to
main. - Do not publish from release-prep branches or local workstations.
- Do not release a version lower than an existing SemVer tag, even if that lower version has a larger run number.
- Do not put the leading
vinversion/STABLE_VERSIONorversion/BETA_VERSION. - Do not put the numeric beta suffix in
version/BETA_VERSION; tags carry the auto-incrementing.Nsuffix. - Do not treat prereleases as automatically selected by Terraform version ranges; users should pin beta versions explicitly.