From e7c449482527bef6b585766ccf582b080675e70d Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Sun, 3 Oct 2021 15:41:46 -0400 Subject: [PATCH] improve releng docs (#1253) --- docs/release-engineering.md | 46 ++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/docs/release-engineering.md b/docs/release-engineering.md index 1a75b6e1c..c3b5350c1 100644 --- a/docs/release-engineering.md +++ b/docs/release-engineering.md @@ -34,7 +34,6 @@ The `make-release.sh` script will do the following: release notes. 4. Print instructions on how to create the release PR. -NOTE TO SELF: The last 2 times we did a release the tagging wasn't right. Be sure to watch this carefully, make sure the tag is handled correctly. (i.e. tag vx.y.z should be on release_vx.y.z) and update the docs with the correct procedure. NOTE: If you bump the major version, you need to change all the source files. The last time this was done (v2 -> v3) these two commands @@ -47,7 +46,8 @@ sed -i.bak -e 's@github.com.StackExchange.dnscontrol.v2@github.com/StackExchange find * -name \*.bak -delete ``` -## Step 2b. Verify the version string + +## Step 3. Verify the version string Verify the version string was updated: @@ -57,7 +57,15 @@ $ grep Version main.go (Make sure that it lists the new version number.) -## Step 3. Write the release notes. + +## Step 4. Make the PR + +The output of "make-release.sh" will mention a URL that will create the PR ("1. Create a PR:") + +Load the URL and make the PR. + + +## Step 5. Write the release notes. draft-notes.txt is just a draft and needs considerable editing. @@ -98,7 +106,8 @@ Provider-specific changes: * CLOUDFLARE: Fix CF trying to update non-changeable TTL (#issueid) ``` -## Step 4. Make the draft release. + +## Step 6. Make the draft release. [On github.com, click on "Draft a new release"](https://github.com/StackExchange/dnscontrol/releases/new) @@ -116,24 +125,29 @@ Fill in the text box with the release notes written above. (DO use the "preview" tab to proofread the text.) -## Step 5. Merge the release. + +## Step 7. Verify tests completed. + +By now the tests should have started running. Verify that the automated tests passed. If not, fix the problems before you continue. -This is also an opportunity to update any dependencies (go modules). -See the last section for commands that make that possible. Only -update modules related to the providers in the automated testing -system. When those tests pass, wait for the Github Actions to -complete and verify the tests all passed. -Merge the PR into Master. +## Step 8. Merge -## Step 6. Publish the release +Merge the PR. + +The tests will run again. + +Once they pass, you are ready to create and promote the release (see next step). + + +## Step 9. Publish the release a. Publish the release. -* Make sure the "This is a pre-release" checkbox is UNchecked. +* Make sure the "This is a pre-release" checkbox is NOT checked. * Click "Publish Release". b. Wait for workflow to complete @@ -143,7 +157,7 @@ all 3 binaries to the release. Refresh the page after a few minutes and you'll see dnscontrol-Darwin, dnscontrol-Linux, and dnscontrol.exe attached as assets. -## Step 7. Announce it via email +## Step 10. Announce it via email Email the release notes to the mailing list: (note the format of the Subject line and that the first line of the email is the URL of the release) @@ -160,7 +174,7 @@ NOTE: You won't be able to post to the mailing list unless you are on it. [Click here to join](https://groups.google.com/forum/#!forum/dnscontrol-discuss). -## Step 8. Announce it via chat +## Step 11. Announce it via chat Mention on [https://gitter.im/dnscontrol/Lobby](https://gitter.im/dnscontrol/Lobby) that the new release has shipped. @@ -169,7 +183,7 @@ ANNOUNCEMENT: dnscontrol v$VERSION has been released! https://github.com/StackEx ``` -## Step 9. Get credit! +## Step 12. Get credit! Mention the fact that you did this release in your weekly accomplishments.