From 8f52513da4f894fbd15fe61f2192375451239694 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Fri, 22 Dec 2023 19:37:07 +0100 Subject: [PATCH 01/16] Create RELEASE.md for release docs Adds a new markdown file RELEASE.md to document the release process. --- RELEASE.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 00000000..a7c56efb --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,52 @@ +# Release Process for `connect-go` + +## Preparing for Release + +1. **Update Version Number** + - In `connect.go`, modify the `Version` constant to match the target release according to [semver](https://semver.org/) standards. Remove the `-dev` suffix. + ```go + const Version = "X.Y.Z" + ``` + +2. **Version Requirements (Optional)** + - If changes require a new API in `connect-go`, declare a constant referencing the updated code. + ```go + const ( + IsAtLeastVersionX_Y_Z = true + ) + ``` + - Ensure the generated code refers to this constant. This is used as a compile time check of source compatibilty. + +3. **Branch and PR Creation** + - Create a branch, commit the version changes, and open a PR titled "Prepare for vX.Y.Z". + - Merge this PR into the main branch. No other changes should be merged until the release is complete. + +## Creating the Release + +1. **Draft a Release** + - Navigate to the [releases](https://github.com/connectrpc/connect-go/releases) page using the GitHub UI. + - Click **Draft a new release** at the top of the page. + +2. **Tagging and Title** + - Enter “vX.Y.Z” in the "Choose a tag” field to create a new tag for the release upon publishing. + - Target the main branch and title the release as “vX.Y.Z”. + +3. **Additional Configuration** + - Click “set as latest release” and specify the last version as the “Previous tag”. + - Use **Generate release notes** to auto-create meaningful release notes, sorting them into `### Enhancements` and `### Bugfixes`. Ensure contributors are credited, especially new external contributors. + +4. **Publishing the Release** + - When ready, click **Publish release**. + - For proper sorting, edit and update the newly created release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. + +## Returning to Development + +1. **Update for Development** + - In `connect.go`, modify the `Version` constant to the next minor release with the suffix `-dev`. + ```go + const Version = "X.Y+1.0-dev" + ``` + - Use the next minor release. Bugs and patch releases aren't used. + +2. **PR Creation** + - Open a PR with the title "Back to development". From 9e1a01ca05aec81675adf38d881b7eaf2d13f943 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 11:20:02 +0100 Subject: [PATCH 02/16] Notion docs --- RELEASE.md | 59 +++++++++++++----------------------------------------- 1 file changed, 14 insertions(+), 45 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index a7c56efb..19f1184f 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,52 +1,21 @@ -# Release Process for `connect-go` +# Releasing connect-go -## Preparing for Release +1. Clone the repo, ensuring you have the latest main. -1. **Update Version Number** - - In `connect.go`, modify the `Version` constant to match the target release according to [semver](https://semver.org/) standards. Remove the `-dev` suffix. - ```go - const Version = "X.Y.Z" - ``` +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. -2. **Version Requirements (Optional)** - - If changes require a new API in `connect-go`, declare a constant referencing the updated code. - ```go - const ( - IsAtLeastVersionX_Y_Z = true - ) - ``` - - Ensure the generated code refers to this constant. This is used as a compile time check of source compatibilty. +3. Open a PR titled "Prepare for vX.Y.Z". Once it's reviewed and CI passes, merge it. *Make sure no new commits are added to merged until the release is complete.* -3. **Branch and PR Creation** - - Create a branch, commit the version changes, and open a PR titled "Prepare for vX.Y.Z". - - Merge this PR into the main branch. No other changes should be merged until the release is complete. +4. Using the Github UI, create a new release. + - Under “Choose a tag”, type in “vX.Y.Z” to create a new tag for the release upon publish. + - Target the main branch. + - Title the Release “vX.Y.Z”. + - Click “set as latest release”. + - Set the last version as the “Previous tag”. + - Click “Generate release notes” to autogenerate release notes, sort them into ### Enhancements and ### Bugfixes, and edit the PR titles to be meaningful to end users. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! -## Creating the Release +5. Publish the release. -1. **Draft a Release** - - Navigate to the [releases](https://github.com/connectrpc/connect-go/releases) page using the GitHub UI. - - Click **Draft a new release** at the top of the page. +6. Open a new PR titled "Back to development" changing the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. -2. **Tagging and Title** - - Enter “vX.Y.Z” in the "Choose a tag” field to create a new tag for the release upon publishing. - - Target the main branch and title the release as “vX.Y.Z”. - -3. **Additional Configuration** - - Click “set as latest release” and specify the last version as the “Previous tag”. - - Use **Generate release notes** to auto-create meaningful release notes, sorting them into `### Enhancements` and `### Bugfixes`. Ensure contributors are credited, especially new external contributors. - -4. **Publishing the Release** - - When ready, click **Publish release**. - - For proper sorting, edit and update the newly created release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. - -## Returning to Development - -1. **Update for Development** - - In `connect.go`, modify the `Version` constant to the next minor release with the suffix `-dev`. - ```go - const Version = "X.Y+1.0-dev" - ``` - - Use the next minor release. Bugs and patch releases aren't used. - -2. **PR Creation** - - Open a PR with the title "Back to development". +7. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. From 4dcd2caaa65572a15c32ca7c0f5f1e17ae11892c Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 11:29:09 +0100 Subject: [PATCH 03/16] Add examples for version changes --- RELEASE.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 19f1184f..36ad702b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,8 +1,14 @@ # Releasing connect-go +This document outlines how to create a release of connect-go. + 1. Clone the repo, ensuring you have the latest main. -2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. Example: #661 +```patch +-const Version = "1.14.0-dev" ++const Version = "1.14.0" +``` 3. Open a PR titled "Prepare for vX.Y.Z". Once it's reviewed and CI passes, merge it. *Make sure no new commits are added to merged until the release is complete.* @@ -16,6 +22,13 @@ 5. Publish the release. -6. Open a new PR titled "Back to development" changing the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. +6. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. + +7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. Example: #662 +```patch +-const Version = "1.14.0" ++const Version = "1.15.0-dev" +``` + +8. Open a PR titled "Back to developement". Once it's reviewed and CI passes, merge it. The release is complete. -7. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. From 5c822f9c1db7cc5ef90532084143ef8825546325 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 11:32:31 +0100 Subject: [PATCH 04/16] Fix example links --- RELEASE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 36ad702b..e22f4466 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,7 +4,7 @@ This document outlines how to create a release of connect-go. 1. Clone the repo, ensuring you have the latest main. -2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. Example: #661 +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. Example: [#661](https://github.com/connectrpc/connect-go/pull/661) ```patch -const Version = "1.14.0-dev" +const Version = "1.14.0" @@ -24,7 +24,7 @@ This document outlines how to create a release of connect-go. 6. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. -7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. Example: #662 +7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. Example: [#662](https://github.com/connectrpc/connect-go/pull/662) ```patch -const Version = "1.14.0" +const Version = "1.15.0-dev" From 78b22c6123b9332bcb1884a202ffd3a95bdf8200 Mon Sep 17 00:00:00 2001 From: Nick Snyder Date: Thu, 28 Dec 2023 09:24:30 -0500 Subject: [PATCH 05/16] Indent diff code blocks --- RELEASE.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index e22f4466..386e6ef1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,15 +4,16 @@ This document outlines how to create a release of connect-go. 1. Clone the repo, ensuring you have the latest main. -2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. Example: [#661](https://github.com/connectrpc/connect-go/pull/661) -```patch --const Version = "1.14.0-dev" -+const Version = "1.14.0" -``` +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. -3. Open a PR titled "Prepare for vX.Y.Z". Once it's reviewed and CI passes, merge it. *Make sure no new commits are added to merged until the release is complete.* + ```patch + -const Version = "1.14.0-dev" + +const Version = "1.14.0" + ``` -4. Using the Github UI, create a new release. +4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. *Make sure no new commits are merged until the release is complete.* + +5. Using the Github UI, create a new release. - Under “Choose a tag”, type in “vX.Y.Z” to create a new tag for the release upon publish. - Target the main branch. - Title the Release “vX.Y.Z”. @@ -20,15 +21,16 @@ This document outlines how to create a release of connect-go. - Set the last version as the “Previous tag”. - Click “Generate release notes” to autogenerate release notes, sort them into ### Enhancements and ### Bugfixes, and edit the PR titles to be meaningful to end users. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! -5. Publish the release. +6. Publish the release. + +7. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. -6. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. +8. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. -7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. Example: [#662](https://github.com/connectrpc/connect-go/pull/662) -```patch --const Version = "1.14.0" -+const Version = "1.15.0-dev" -``` + ```patch + -const Version = "1.14.0" + +const Version = "1.15.0-dev" + ``` -8. Open a PR titled "Back to developement". Once it's reviewed and CI passes, merge it. The release is complete. +8. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. The release is complete. From e17351df591ae206dcdebe96c74391ef3d90384c Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 16:05:44 +0100 Subject: [PATCH 06/16] Feedback --- RELEASE.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 386e6ef1..eeea4abc 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -11,9 +11,11 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. *Make sure no new commits are merged until the release is complete.* +3. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. -5. Using the Github UI, create a new release. + *Make sure no new commits are merged until the release is complete.* + +4. Using the Github UI, create a new release. - Under “Choose a tag”, type in “vX.Y.Z” to create a new tag for the release upon publish. - Target the main branch. - Title the Release “vX.Y.Z”. @@ -21,16 +23,16 @@ This document outlines how to create a release of connect-go. - Set the last version as the “Previous tag”. - Click “Generate release notes” to autogenerate release notes, sort them into ### Enhancements and ### Bugfixes, and edit the PR titles to be meaningful to end users. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! -6. Publish the release. - -7. Take the newly created release, click on the button to edit the release, and then update the release. See this [issue](https://github.com/orgs/community/discussions/8226) for guidelines. +5. Publish the release. -8. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. +6. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. ```patch -const Version = "1.14.0" +const Version = "1.15.0-dev" ``` -8. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. The release is complete. +7. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. + +8. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if releases are out of order. If they are, first take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, contact GitHub support (see this [issue](https://github.com/orgs/community/discussions/8226)) and explain the problem to them. They can trigger a re-index. From 420f82d72e78b4e0fb1463a68a6fd9d3c2f5677e Mon Sep 17 00:00:00 2001 From: Nick Snyder Date: Thu, 28 Dec 2023 10:15:56 -0500 Subject: [PATCH 07/16] Add example message to support --- RELEASE.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index eeea4abc..f907221e 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -34,5 +34,8 @@ This document outlines how to create a release of connect-go. 7. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. -8. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if releases are out of order. If they are, first take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, contact GitHub support (see this [issue](https://github.com/orgs/community/discussions/8226)) and explain the problem to them. They can trigger a re-index. +8. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: + > Subject: connect-go releases appearing out of order + > + > The [connect-go releases page](https://github.com/connectrpc/connect-go/releases) is showing releases out of order. I have tried editing the most recent release to trigger a re-index and it doesn't seem to have resolved the issue. Can you please trigger a re-index for this repo? Thanks! From d5d776167c87be204135c0066737535e0a880eb6 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 16:19:27 +0100 Subject: [PATCH 08/16] Add step to check version restrictions --- RELEASE.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index f907221e..1e9bc38b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -11,11 +11,13 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -3. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. +3. Check for changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to use an appropriate version restriction that matches the current release. A constant `IsAtLeastVersion_X_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun using a new API. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). + +4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. *Make sure no new commits are merged until the release is complete.* -4. Using the Github UI, create a new release. +5. Using the Github UI, create a new release. - Under “Choose a tag”, type in “vX.Y.Z” to create a new tag for the release upon publish. - Target the main branch. - Title the Release “vX.Y.Z”. @@ -23,18 +25,18 @@ This document outlines how to create a release of connect-go. - Set the last version as the “Previous tag”. - Click “Generate release notes” to autogenerate release notes, sort them into ### Enhancements and ### Bugfixes, and edit the PR titles to be meaningful to end users. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! -5. Publish the release. +6. Publish the release. -6. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. +7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. ```patch -const Version = "1.14.0" +const Version = "1.15.0-dev" ``` -7. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. +8. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. -8. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: +9. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: > Subject: connect-go releases appearing out of order > From bfeb784164b06483d9d83e84f4e6eeaab764800a Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 16:37:57 +0100 Subject: [PATCH 09/16] Fix typo development --- RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 1e9bc38b..fd1e827b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -34,7 +34,7 @@ This document outlines how to create a release of connect-go. +const Version = "1.15.0-dev" ``` -8. Open a PR titled "Back to developement" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. +8. Open a PR titled "Back to development" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. 9. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: From f23c65b63ce83fcf7c6ba01a9151295818d8bb1e Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Thu, 28 Dec 2023 16:51:38 +0100 Subject: [PATCH 10/16] Fix version constant template --- RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index fd1e827b..bc842fb8 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -11,7 +11,7 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -3. Check for changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to use an appropriate version restriction that matches the current release. A constant `IsAtLeastVersion_X_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun using a new API. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). +3. Check for changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to use an appropriate version restriction that matches the current release. A constant `IsAtLeastVersionX_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun using a new API. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). 4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. From cca4bbf5dc9963d3836dad7e31016c24799ec537 Mon Sep 17 00:00:00 2001 From: Edward McFarlane <3036610+emcfarlane@users.noreply.github.com> Date: Fri, 5 Jan 2024 11:35:02 +0100 Subject: [PATCH 11/16] Update version description Co-authored-by: Nick Snyder --- RELEASE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index bc842fb8..5557edd0 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,7 +4,9 @@ This document outlines how to create a release of connect-go. 1. Clone the repo, ensuring you have the latest main. -2. On a new branch, open [connect.go](connect.go) and change the `Version` constant. Do not just remove the `-dev` suffix: look at the release history and the unreleased commits to choose a new semantic version number. +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant to an appropriate [semantic version](https://semver.org/). To select the correct version, look at the version number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest) and the changes that are included in this new release. + * If there are only bug fixes and no new features, remove the `-dev` suffix, set MINOR number to be equal to the [latest release](https://github.com/connectrpc/connect-go/releases/latest), and set the PATCH number to be 1 more than the PATCH number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest). + * If there are features being released, remove the `-dev` suffix, set the MINOR number to be 1 more than the MINOR number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest), and set the PATCH number to `0`. In the common case, the diff here will just be to remove the `-dev` suffix. ```patch -const Version = "1.14.0-dev" From 5a4afa160d99da774e40ede2fce95b9851bc8e95 Mon Sep 17 00:00:00 2001 From: Edward McFarlane <3036610+emcfarlane@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:46:49 +0100 Subject: [PATCH 12/16] Update latest version check Co-authored-by: Nick Snyder --- RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 5557edd0..a0389ed4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -13,7 +13,7 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -3. Check for changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to use an appropriate version restriction that matches the current release. A constant `IsAtLeastVersionX_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun using a new API. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). +3. Check [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to see if a new `IsAtLeastVersionX_Y_Z` constant was added since the [latest release](https://github.com/connectrpc/connect-go/releases/latest). If one was added (this is rare), ensure that the version number matches the version number that you are currently releasing. If it doesn't match, update the name to match the version you are about to release. [Example PR #496](https://github.com/connectrpc/connect-go/pull/496). 4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. From 909b5d5af861341b96797557579ddb2fd53c1781 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Wed, 10 Jan 2024 10:24:13 +0100 Subject: [PATCH 13/16] Feedback --- RELEASE.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index a0389ed4..9be10cdb 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -13,32 +13,35 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -3. Check [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) to see if a new `IsAtLeastVersionX_Y_Z` constant was added since the [latest release](https://github.com/connectrpc/connect-go/releases/latest). If one was added (this is rare), ensure that the version number matches the version number that you are currently releasing. If it doesn't match, update the name to match the version you are about to release. [Example PR #496](https://github.com/connectrpc/connect-go/pull/496). +3. Check for any changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) that require a version restriction. A constant `IsAtLeastVersionX_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun to use a new API. Make sure the generated code references this constant. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). -4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)). Once it's reviewed and CI passes, merge it. +4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)) and a description tagging all current maintainers. Once it's reviewed and CI passes, merge it. *Make sure no new commits are merged until the release is complete.* -5. Using the Github UI, create a new release. +5. Review all commits in the new release and for each PR check an appropriate label is used and edit the title to be meaninful to end users. This will help auto-generated release notes match the final notes as closely as possible. + +6. Using the Github UI, create a new release. - Under “Choose a tag”, type in “vX.Y.Z” to create a new tag for the release upon publish. - Target the main branch. - Title the Release “vX.Y.Z”. - Click “set as latest release”. - Set the last version as the “Previous tag”. - - Click “Generate release notes” to autogenerate release notes, sort them into ### Enhancements and ### Bugfixes, and edit the PR titles to be meaningful to end users. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! + - Click “Generate release notes” to autogenerate release notes. + - Edit the release notes. A summary and other sub categories may be added if required but should, in most cases, be left as ### Enhancements and ### Bugfixes. Feel free to collect multiple small changes to docs or Github config into one line, but try to tag every contributor. Make especially sure to credit new external contributors! -6. Publish the release. +7. Publish the release. -7. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. +8. On a new branch, open [connect.go](connect.go) and change the `Version` to increment the minor tag and append the `-dev` suffix. Use the next minor release - we never anticipate bugs and patch releases. ```patch -const Version = "1.14.0" +const Version = "1.15.0-dev" ``` -8. Open a PR titled "Back to development" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. +9. Open a PR titled "Back to development" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. -9. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: +10. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: > Subject: connect-go releases appearing out of order > From bae3d8d3f16feef730b9be29daa70ad6cff65c18 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Wed, 10 Jan 2024 17:33:17 +0100 Subject: [PATCH 14/16] Use footnote links --- RELEASE.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 9be10cdb..5cae960d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,9 +4,9 @@ This document outlines how to create a release of connect-go. 1. Clone the repo, ensuring you have the latest main. -2. On a new branch, open [connect.go](connect.go) and change the `Version` constant to an appropriate [semantic version](https://semver.org/). To select the correct version, look at the version number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest) and the changes that are included in this new release. - * If there are only bug fixes and no new features, remove the `-dev` suffix, set MINOR number to be equal to the [latest release](https://github.com/connectrpc/connect-go/releases/latest), and set the PATCH number to be 1 more than the PATCH number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest). - * If there are features being released, remove the `-dev` suffix, set the MINOR number to be 1 more than the MINOR number of the [latest release](https://github.com/connectrpc/connect-go/releases/latest), and set the PATCH number to `0`. In the common case, the diff here will just be to remove the `-dev` suffix. +2. On a new branch, open [connect.go](connect.go) and change the `Version` constant to an appropriate [semantic version](https://semver.org/). To select the correct version, look at the version number of the [latest release] and the changes that are included in this new release. + * If there are only bug fixes and no new features, remove the `-dev` suffix, set MINOR number to be equal to the [latest release], and set the PATCH number to be 1 more than the PATCH number of the [latest release]. + * If there are features being released, remove the `-dev` suffix, set the MINOR number to be 1 more than the MINOR number of the [latest release], and set the PATCH number to `0`. In the common case, the diff here will just be to remove the `-dev` suffix. ```patch -const Version = "1.14.0-dev" @@ -46,3 +46,5 @@ This document outlines how to create a release of connect-go. > Subject: connect-go releases appearing out of order > > The [connect-go releases page](https://github.com/connectrpc/connect-go/releases) is showing releases out of order. I have tried editing the most recent release to trigger a re-index and it doesn't seem to have resolved the issue. Can you please trigger a re-index for this repo? Thanks! + +[latest release]: https://github.com/connectrpc/connect-go/releases/latest From b0126fac50a1a43c5ab8c1d90fc63673ea47d90d Mon Sep 17 00:00:00 2001 From: Edward McFarlane <3036610+emcfarlane@users.noreply.github.com> Date: Wed, 10 Jan 2024 17:54:07 +0100 Subject: [PATCH 15/16] Update RELEASE.md Co-authored-by: Nick Snyder --- RELEASE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.md b/RELEASE.md index 5cae960d..16013892 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -13,7 +13,7 @@ This document outlines how to create a release of connect-go. +const Version = "1.14.0" ``` -3. Check for any changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) that require a version restriction. A constant `IsAtLeastVersionX_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun to use a new API. Make sure the generated code references this constant. Update as required ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). +3. Check for any changes in [cmd/protoc-gen-connect-go/main.go](cmd/protoc-gen-connect-go/main.go) that require a version restriction. A constant `IsAtLeastVersionX_Y_Z` should be defined in [connect.go](connect.go) if generated code has begun to use a new API. Make sure the generated code references this constant. If a new constant has been added since the last release, ensure that the name of the constant matches the version being released ([Example PR #496](https://github.com/connectrpc/connect-go/pull/496)). 4. Open a PR titled "Prepare for vX.Y.Z" ([Example PR #661](https://github.com/connectrpc/connect-go/pull/661)) and a description tagging all current maintainers. Once it's reviewed and CI passes, merge it. From 14e6abebb6a97164a2fa5378335cda635f69caa5 Mon Sep 17 00:00:00 2001 From: Edward McFarlane Date: Wed, 10 Jan 2024 17:54:52 +0100 Subject: [PATCH 16/16] Drop ordering check --- RELEASE.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 16013892..22364cd1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -41,10 +41,4 @@ This document outlines how to create a release of connect-go. 9. Open a PR titled "Back to development" ([Example PR #662](https://github.com/connectrpc/connect-go/pull/662)). Once it's reviewed and CI passes, merge it. -10. Check the [releases](https://github.com/connectrpc/connect-go/releases) page to see if [releases are out of order](https://github.com/orgs/community/discussions/8226). If they are, take the release you just did, click on the button to edit the release, and then update the release. If that doesn't work, [contact GitHub support](https://support.github.com/contact?tags=rr-general-technical) to request that they trigger a re-index of the repository: - - > Subject: connect-go releases appearing out of order - > - > The [connect-go releases page](https://github.com/connectrpc/connect-go/releases) is showing releases out of order. I have tried editing the most recent release to trigger a re-index and it doesn't seem to have resolved the issue. Can you please trigger a re-index for this repo? Thanks! - [latest release]: https://github.com/connectrpc/connect-go/releases/latest