From fa4b84e8d1e04a22ad5c13df0a7dc05ef0debac8 Mon Sep 17 00:00:00 2001 From: Parkreiner Date: Fri, 19 Jul 2024 19:23:39 +0000 Subject: [PATCH] docs: add publishing instructions to the contributing README --- CONTRIBUTING.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4794661..dab6e4e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -49,3 +49,26 @@ module "example" { source = "git::https://github.com//.git//?ref=" } ``` + +## Releases + +> [!WARNING] +> Version numbers are very important for publishing to Terraform. If the version number is incorrect in any way, there is a risk that some modules could stop working. + +Much of our release process is automated. To cut a new release: + +1. Navigate to [GitHub's Releases page](https://github.com/coder/modules/releases) +2. Click "Draft a new release" +3. Click the "Choose a tag" button and type a new release number in the format `v..` (e.g., `v1.18.0`). Then click "Create new tag". +4. Click the "Generate release notes" button, and clean up the resulting README. Be sure to clean up any notes that would not be relevant to end-users (e.g., bumping dependencies). +5. Once everything looks good, click the "Publish release" button. + +Once the release has been cut, a script will run to check whether there are any modules that will require that the new release number be published to Terraform. If there are any, a new pull request will automatically be generated. Be sure to approve this PR and merge it into the `main` branch. + +Following that, our automated processes will handle publishing new data for [`registry.coder.com`](https://github.com/coder/registry.coder.com/): + +1. Publishing new versions to Coder's [Terraform Registry](https://registry.terraform.io/providers/coder/coder/latest) +2. Publishing new data to the [Coder Registry](https://registry.coder.com) + +> [!NOTE] +> Some data in `registry.coder.com` is fetched on demand from the Module repo's main branch. As such, some changes will be made almost immediately, while others may require some time.