From 8677725e5d3467a2501537b821989dedd9f31d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 24 Apr 2020 19:10:35 +0200 Subject: [PATCH] doc: improve release documentation Extract the "Cherry-pick the Release Commit to master" part to its own section and be more precise about what should be done to handle conflicts. PR-URL: https://github.com/nodejs/node/pull/33042 Reviewed-By: Anna Henningsen Reviewed-By: Richard Lau Reviewed-By: Michael Dawson Reviewed-By: Myles Borins Reviewed-By: Anto Aravinth Reviewed-By: Beth Griggs --- doc/guides/releases.md | 60 +++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/doc/guides/releases.md b/doc/guides/releases.md index 141a264d5123ab..68f4d0b8bacc6f 100644 --- a/doc/guides/releases.md +++ b/doc/guides/releases.md @@ -25,13 +25,15 @@ official release builds for Node.js, hosted on . * [10. Test the Build](#10-test-the-build) * [11. Tag and Sign the Release Commit](#11-tag-and-sign-the-release-commit) * [12. Set Up For the Next Release](#12-set-up-for-the-next-release) - * [13. Promote and Sign the Release Builds](#13-promote-and-sign-the-release-builds) - * [14. Check the Release](#14-check-the-release) - * [15. Create a Blog Post](#15-create-a-blog-post) - * [16. Create the release on GitHub](#16-create-the-release-on-github) - * [17. Cleanup](#17-cleanup) - * [18. Announce](#18-announce) - * [19. Celebrate](#19-celebrate) + * [13. Cherry-pick the Release Commit to `master`](#13-cherry-pick-the-release-commit-to-master) + * [14. Push the release tag](#14-push-the-release-tag) + * [15. Promote and Sign the Release Builds](#15-promote-and-sign-the-release-builds) + * [16. Check the Release](#16-check-the-release) + * [17. Create a Blog Post](#17-create-a-blog-post) + * [18. Create the release on GitHub](#18-create-the-release-on-github) + * [19. Cleanup](#19-cleanup) + * [20. Announce](#20-announce) + * [21. Celebrate](#21-celebrate) * [LTS Releases](#lts-releases) * [Major Releases](#major-releases) @@ -528,15 +530,31 @@ $ git rebase v1.x $ git push upstream v1.x-staging ``` -Cherry-pick the release commit to `master`. After cherry-picking, edit -`src/node_version.h` to ensure the version macros contain whatever values were -previously on `master`. `NODE_VERSION_IS_RELEASE` should be `0`. **Do not** -cherry-pick the "Working on vx.y.z" commit to `master`. +### 13. Cherry-pick the Release Commit to `master` -Run `make lint` before pushing to `master`, to make sure the Changelog -formatting passes the lint rules on `master`. +```console +$ git checkout master +$ git cherry-pick v1.x^ +``` + +Git should stop to let you fix conflicts. Revert all changes that were made to +`src/node_version.h`. If there are conflicts in `doc` due to updated `REPLACEME` +placeholders (that happens when a change previously landed on another release +branch), keep both version numbers. Convert the YAML field to an array if it is +not already one. + +Then finish cherry-picking and push the commit upstream: + +```console +$ git add src/node_version.h doc +$ git cherry-pick --continue +$ make lint +$ git push upstream master +``` + +**Do not** cherry-pick the "Working on vx.y.z" commit to `master`. -### 13. Push the release tag +### 14. Push the release tag Push the tag to the repo before you promote the builds. If you haven't pushed your tag first, then build promotion won't work properly. Push the tag using the @@ -549,7 +567,7 @@ $ git push *Note*: Please do not push the tag unless you are ready to complete the remainder of the release steps. -### 14. Promote and Sign the Release Builds +### 15. Promote and Sign the Release Builds **The same individual who signed the release tag must be the one to promote the builds as the `SHASUMS256.txt` file needs to be signed with the @@ -622,7 +640,7 @@ be prompted to re-sign `SHASUMS256.txt`. **It is possible to only sign a release by running `./tools/release.sh -s vX.Y.Z`.** -### 15. Check the Release +### 16. Check the Release Your release should be available at `https://nodejs.org/dist/vx.y.z/` and . Check that the appropriate files are in @@ -631,7 +649,7 @@ have the right internal version strings. Check that the API docs are available at . Check that the release catalog files are correct at and . -### 16. Create a Blog Post +### 17. Create a Blog Post There is an automatic build that is kicked off when you promote new builds, so within a few minutes nodejs.org will be listing your new version as the latest @@ -664,7 +682,7 @@ This script will use the promoted builds and changelog to generate the post. Run * Changes to `master` on the [nodejs.org repository][] will trigger a new build of nodejs.org so your changes should appear a few minutes after pushing. -### 17. Create the release on GitHub +### 18. Create the release on GitHub * Go to the [New release page](https://github.com/nodejs/node/releases/new). * Select the tag version you pushed earlier. @@ -672,11 +690,11 @@ This script will use the promoted builds and changelog to generate the post. Run * For the description, copy the rest of the changelog entry. * Click on the "Publish release" button. -### 18. Cleanup +### 19. Cleanup Close your release proposal PR and delete the proposal branch. -### 19. Announce +### 20. Announce The nodejs.org website will automatically rebuild and include the new version. To announce the build on Twitter through the official @nodejs account, email @@ -693,7 +711,7 @@ announcements. Ping the IRC ops and the other [Partner Communities][] liaisons. -### 20. Celebrate +### 21. Celebrate _In whatever form you do this..._