@@ -32,7 +32,7 @@ official release builds for Node.js, hosted on <https://nodejs.org/>.
32
32
* [ 17. Cleanup] ( #17-cleanup )
33
33
* [ 18. Announce] ( #18-announce )
34
34
* [ 19. Celebrate] ( #19-celebrate )
35
- * [ Major Releases] ( #major-Releases )
35
+ * [ Major Releases] ( #major-releases )
36
36
37
37
## Who can make a release?
38
38
@@ -81,11 +81,11 @@ access to individuals authorized by the TSC.
81
81
82
82
### 3. A Publicly Listed GPG Key
83
83
84
- A SHASUMS256.txt file is produced for every promoted build, nightly, and
84
+ A ` SHASUMS256.txt ` file is produced for every promoted build, nightly, and
85
85
releases. Additionally for releases, this file is signed by the individual
86
86
responsible for that release. In order to be able to verify downloaded binaries,
87
- the public should be able to check that the SHASUMS256.txt file has been signed
88
- by someone who has been authorized to create a release.
87
+ the public should be able to check that the ` SHASUMS256.txt ` file has been
88
+ signed by someone who has been authorized to create a release.
89
89
90
90
The GPG keys should be fetchable from a known third-party keyserver. The SKS
91
91
Keyservers at < https://sks-keyservers.net > are recommended. Use the
@@ -179,12 +179,13 @@ Carefully review the list of commits:
179
179
should only be cherry-picked when appropriate for the type of release being
180
180
made.
181
181
* If you think it's risky so should wait for a while, add the ` baking-for-lts `
182
- tag.
182
+ tag.
183
183
184
184
When cherry-picking commits, if there are simple conflicts you can resolve
185
185
them. Otherwise, add the ` backport-requested-vN.x ` label to the original PR
186
186
and post a comment stating that it does not land cleanly and will require a
187
- backport PR.
187
+ backport PR. You can refer the owner of the PR to the "[ Backporting to Release
188
+ Lines] ( https://github.com/nodejs/node/blob/master/doc/guides/backporting-to-release-lines.md ) " guide.
188
189
189
190
If commits were cherry-picked in this step, check that the test still pass and
190
191
push to the staging branch to keep it up-to-date.
@@ -483,7 +484,14 @@ $ npm install -g git-secure-tag
483
484
Create a tag using the following command:
484
485
485
486
``` console
486
- $ git secure-tag < vx.y.z> < commit-sha> -sm ' YYYY-MM-DD Node.js vx.y.z (Release Type) Release'
487
+ $ git secure-tag < vx.y.z> < commit-sha> -sm " YYYY-MM-DD Node.js vx.y.z (<release-type>) Release"
488
+ ```
489
+
490
+ ` release-type ` is either "Current" or "LTS". For LTS releases, you should also
491
+ include the release codename, for example:
492
+
493
+ ``` txt
494
+ 2019-10-22 Node.js v10.17.0 'Dubnium' (LTS) Release
487
495
```
488
496
489
497
The tag ** must** be signed using the GPG key that's listed for you on the
@@ -541,18 +549,17 @@ formatting passes the lint rules on `master`.
541
549
### 13. Promote and Sign the Release Builds
542
550
543
551
** The same individual who signed the release tag must be the one
544
- to promote the builds as the SHASUMS256.txt file needs to be signed with the
552
+ to promote the builds as the ` SHASUMS256.txt ` file needs to be signed with the
545
553
same GPG key!**
546
554
547
555
Use ` tools/release.sh ` to promote and sign the build. When run, it will perform
548
556
the following actions:
549
557
550
558
** a.** Select a GPG key from your private keys. It will use a command similar
551
559
to: ` gpg --list-secret-keys ` to list your keys. If you don't have any keys, it
552
- will bail. (Why are you releasing? Your tag should be signed!) If you have only
553
- one key, it will use that. If you have more than one key it will ask you to
554
- select one from the list. Be sure to use the same key that you signed your git
555
- tag with.
560
+ will bail. If you have only one key, it will use that. If you have more than
561
+ one key it will ask you to select one from the list. Be sure to use the same
562
+ key that you signed your git tag with.
556
563
557
564
** b.** Log in to the server via SSH and check for releases that can be promoted,
558
565
along with the list of artifacts. It will use the ` dist-promotable ` command on
@@ -563,29 +570,29 @@ shouldn't be), be sure to only promote the release you are responsible for.
563
570
** c.** Log in to the server via SSH and run the promote script for the given
564
571
release. The command on the server will be similar to: ` dist-promote vx.y.z ` .
565
572
After this step, the release artifacts will be available for download and a
566
- SHASUMS256.txt file will be present. The release will still be unsigned,
573
+ ` SHASUMS256.txt ` file will be present. The release will still be unsigned,
567
574
however.
568
575
569
- ** d.** Use ` scp ` to download SHASUMS256.txt to a temporary directory on your
576
+ ** d.** Use ` scp ` to download ` SHASUMS256.txt ` to a temporary directory on your
570
577
computer.
571
578
572
- ** e.** Sign the SHASUMS256.txt file using a command similar to: `gpg
579
+ ** e.** Sign the ` SHASUMS256.txt ` file using a command similar to: `gpg
573
580
--default-key YOURKEY --clearsign /path/to/SHASUMS256.txt`. You will be prompted
574
- by GPG for your password. The signed file will be named SHASUMS256.txt.asc.
581
+ by GPG for your password. The signed file will be named ` SHASUMS256.txt.asc ` .
575
582
576
583
** f.** Output an ASCII armored version of your public GPG key using a command
577
584
similar to: `gpg --default-key YOURKEY --armor --export --output
578
585
/path/to/SHASUMS256.txt.gpg`. This does not require your password and is mainly
579
586
a convenience for users, although not the recommended way to get a copy of your
580
587
key.
581
588
582
- ** g.** Upload the SHASUMS256.txt files back to the server into the release
589
+ ** g.** Upload the ` SHASUMS256.txt ` files back to the server into the release
583
590
directory.
584
591
585
592
If you didn't wait for ARM builds in the previous step before promoting the
586
593
release, you should re-run ` tools/release.sh ` after the ARM builds have
587
594
finished. That will move the ARM artifacts into the correct location. You will
588
- be prompted to re-sign SHASUMS256.txt.
595
+ be prompted to re-sign ` SHASUMS256.txt ` .
589
596
590
597
It is possible to only sign a release by running `./tools/release.sh -s
591
598
vX.Y.Z`.
@@ -608,30 +615,29 @@ release. However, the blog post is not yet fully automatic.
608
615
Create a new blog post by running the [ nodejs.org release-post.js script] [ ] .
609
616
This script will use the promoted builds and changelog to generate the post. Run
610
617
` npm run serve ` to preview the post locally before pushing to the
611
- [ nodejs.org] ( https://github.com/nodejs/nodejs.org ) repo .
618
+ [ nodejs.org repository ] [ ] .
612
619
613
620
* You can add a short blurb just under the main heading if you want to say
614
621
something important, otherwise the text should be publication ready.
615
622
* The links to the download files won't be complete unless you waited for the
616
623
ARMv6 builds. Any downloads that are missing will have ` *Coming soon* ` next to
617
624
them. It's your responsibility to manually update these later when you have
618
625
the outstanding builds.
619
- * The SHASUMS256.txt.asc content is at the bottom of the post. When you update
626
+ * The ` SHASUMS256.txt.asc ` content is at the bottom of the post. When you update
620
627
the list of tarballs you'll need to copy/paste the new contents of this file
621
628
to reflect those changes.
622
- * Always use pull-requests on the nodejs.org repo. Be respectful of that working
623
- group, but you shouldn't have to wait for PR sign-off. Opening a PR and
624
- merging it immediately _ should_ be fine. However, please follow the following
625
- commit message format:
629
+ * Always use pull-requests on the [ nodejs.org repository] [ ] . Be respectful
630
+ of the website team, but you do not have to wait for PR sign-off. Please
631
+ use the following commit message format:
626
632
627
633
``` console
628
634
Blog: vX.Y.Z release post
629
635
630
636
Refs: <full URL to your release proposal PR>
631
637
```
632
638
633
- * Changes to ` master ` on the nodejs.org repo will trigger a new build of
634
- nodejs.org so your changes should appear in a few minutes after pushing.
639
+ * Changes to ` master ` on the [ nodejs.org repository ] [ ] will trigger a new build
640
+ of nodejs.org so your changes should appear a few minutes after pushing.
635
641
636
642
### 16. Create the release on GitHub
637
643
@@ -681,7 +687,7 @@ New Node.js Major releases happen twice per year:
681
687
Major releases should be targeted for the third Tuesday of the release month.
682
688
683
689
A major release must not slip beyond the release month. In other words, major
684
- releases must not slip into May or November.
690
+ releases must not slip into May or November.
685
691
686
692
The release date for the next major release should be announced immediately
687
693
following the current release (e.g. the release date for 13.0.0 should be
@@ -709,6 +715,10 @@ separate `vN.x-proposal` branch should be created that tracks the `vN.x`
709
715
branch. This branch will contain the draft release commit (with the draft
710
716
changelog).
711
717
718
+ Notify the ` @nodejs/npm ` team in the release proposal PR to inform them of the
719
+ upcoming release. ` npm ` maintains a list of [ supported versions] ( https://github.com/npm/cli/blob/latest/lib/utils/unsupported.js#L3 )
720
+ that will need updating to include the new major release.
721
+
712
722
### Test Releases and Release Candidates
713
723
714
724
Test builds should be generated from the ` vN.x-proposal ` branch starting at
@@ -761,5 +771,6 @@ judgment there.
761
771
[ CI lockdown procedure ] : https://github.com/nodejs/build/blob/master/doc/jenkins-guide.md#restricting-access-for-security-releases
762
772
[ Build issue tracker ] : https://github.com/nodejs/build/issues/new
763
773
[ nodejs.org release-post.js script ] : https://github.com/nodejs/nodejs.org/blob/master/scripts/release-post.js
774
+ [ nodejs.org repository ] : https://github.com/nodejs/nodejs.org
764
775
[ Partner Communities ] : https://github.com/nodejs/community-committee/blob/master/governance/PARTNER_COMMUNITIES.md
765
776
[ webchat.freenode.net ] : https://webchat.freenode.net/
0 commit comments