RELEASE.md
Atlantis follows a monthly release cadence to provide regular, predictable updates while maintaining stability for users.
Atlantis follows Semantic Versioning (SemVer):
x.0.0): Breaking changes0.x.0): Backward-compatible new features0.0.x): Bug fixes, security patches, documentation, dependency updates, and runtime image refreshesrelease-0.44main and relevant release branches when an older release line also needs the fixA release is ready when:
In case of critical security vulnerabilities or severe bugs:
For detailed information about contributing to Atlantis, see CONTRIBUTING.md.
Fetch the latest default branch, release branches, and tags:
git fetch origin --tags --prune \
+refs/heads/main:refs/remotes/origin/main \
'+refs/heads/release-*:refs/remotes/origin/release-*'
Confirm the latest release and verify the new tag does not already exist:
gh release list --repo runatlantis/atlantis --limit 5
git ls-remote --tags origin refs/tags/vX.Y.Z
Choose the release target:
release-0.44.main.Review the commits since the previous release on the chosen target branch:
git log --first-parent --reverse --oneline vPREVIOUS..origin/TARGET_BRANCH
Choose the version increment:
Verify GitHub Actions on the release target before publishing. At minimum, check the current main or release-* branch runs for tester, website, CodeQL, atlantis-image, and testing-env-image. For releases from main, also confirm the latest Scorecard run is passing.
Use the Highlights section for changes users should notice before scanning the full changelog. Keep it short, usually two to five bullets, and prefer concrete outcomes over PR titles. Good highlight candidates include:
gh release create.v, for example v0.44.1.Example CLI flow:
gh release create vX.Y.Z \
--repo runatlantis/atlantis \
--target TARGET_BRANCH \
--title vX.Y.Z \
--notes-file release-notes.md \
--latest
After publishing, verify the release itself, the tag, and the workflows triggered by the tag:
gh release view vX.Y.Z --repo runatlantis/atlantis
git ls-remote --tags origin refs/tags/vX.Y.Z
gh release list --repo runatlantis/atlantis --limit 5
Confirm these workflows complete successfully:
.github/workflows/release.yml, which runs GoReleaser and uploads release assets..github/workflows/atlantis-image.yml, which publishes versioned and latest image tags for Alpine and Debian images.After publishing an Atlantis release, check the official Helm chart in runatlantis/helm-charts:
charts/atlantis/Chart.yaml.appVersion to the new Atlantis release tag.version for the chart release.runatlantis/helm-charts.Typical chart validation:
make docs
helm lint charts/atlantis
helm template atlantis charts/atlantis
git diff --check
Atlantis uses a cherry-pick-bot from Google. The bot assists in maintaining changes across release branches by cherry-picking merged pull requests into new pull requests.
Maintainers and core contributors can add a comment to a pull request:
/cherry-pick target-branch-name
target-branch-name is the branch to cherry-pick to. The bot will cherry-pick the merged commit to a new branch created from the target branch and open a pull request.
The bot immediately tries to cherry-pick a merged pull request. On an unmerged pull request, it waits until merge. You can comment multiple times on a pull request for multiple release branches.
The bot can fail to cherry-pick if the feature branch history is not linear. In that case, manually cherry-pick the squashed merge commit from main to the release branch.
git cherry-pick <sha> with the commit hash from main.For detailed information about past releases, see GitHub Releases.
This document is maintained by the Atlantis maintainers. For questions about the release process, please open an issue or contact the maintainers.