| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 8b60065 commit 2532bf3
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -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/ | |
| Back | FazBrowse Home | New Git URL |
0 commit comments