The release process uses GitHub Actions and goreleaser to build, sign, and upload provider binaries to a GitHub release. Release are triggered by a tag with the pattern v* (e.g. v1.2.3); these tags may only be created from the default branch (main) or branches that match the pattern release-v*.
The release flow is as follows:
[!IMPORTANT]
In you're planning on releasing a major version, please ensure you've completed the following tasks:
- Read Hashicorp guidance on incrementing the major version.
- Check if there are any outstanding PRs with breaking changes that could be included in the release.
- Check that all deprecations have been addressed and removed from the codebase.
- Navigate to the repository's Releases page and click Draft a new release.
- Create a new SemVer tag for the release.
- Select the target as either the default branch (
main) or a release branch (a branch matching the patternrelease-v*) - Click Generate release notes.
- If this release is from a release branch (unless it really is the latest release) uncheck the Set as the latest release checkbox.
- Click "Publish release".
- GitHub Actions will trigger the release workflow.
After the workflow executes successfully, the GitHub release created in the prior step will have the relevant assets available for consumption and the new version will show up in the Terraform Registry.