You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run a **[`node-test-pull-request`](https://ci.nodejs.org/job/node-test-pull-request/)**
281
310
test run to ensure that the build is stable and the HEAD commit is ready for
282
311
release.
283
312
284
-
Perform some smoke-testing. We have [citgm](https://github.com/nodejs/citgm) for
285
-
this. You can also manually test important modules from the ecosystem. Remember
286
-
that node-gyp and npm both take a `--nodedir` flag to point to your local
287
-
repository so that you can test unreleased versions without needing node-gyp to
288
-
download headers for you.
313
+
Also run a **[`node-test-commit-v8-linux`](https://ci.nodejs.org/job/node-test-commit-v8-linux/)**
314
+
test run if the release contains changes to `deps/v8`.
289
315
290
-
### 7. Produce a Nightly Build _(optional)_
316
+
Perform some smoke-testing. There is the
317
+
**[`citgm-smoker`](https://ci.nodejs.org/job/citgm-smoker/)** CI job for this
318
+
purpose. Run it once with the base `vx.x` branch as a reference and with the
319
+
proposal branch to check if new regressions could be introduced in the
320
+
ecosystem.
321
+
322
+
### 8. Produce a Nightly Build _(optional)_
291
323
292
324
If there is a reason to produce a test release for the purpose of having others
293
325
try out installers or specifics of builds, produce a nightly build using
@@ -299,7 +331,7 @@ enter a proper length commit SHA, enter a date string, and select "nightly" for
299
331
This is particularly recommended if there has been recent work relating to the
300
332
macOS or Windows installers as they are not tested in any way by CI.
301
333
302
-
### 8. Produce Release Builds
334
+
### 9. Produce Release Builds
303
335
304
336
Use **[iojs+release](https://ci-release.nodejs.org/job/iojs+release/)** to
305
337
produce release artifacts. Enter the commit that you want to build from and
@@ -345,19 +377,19 @@ can use the
345
377
build in the release CI to re-run the build only for ARMv6. When launching the
346
378
build make sure to use the same commit hash as for the original release.
347
379
348
-
### 9. Test the Build
380
+
### 10. Test the Build
349
381
350
382
Jenkins collects the artifacts from the builds, allowing you to download and
351
383
install the new build. Make sure that the build appears correct. Check the
352
384
version numbers, and perform some basic checks to confirm that all is well with
353
385
the build before moving forward.
354
386
355
-
### 10. Tag and Sign the Release Commit
387
+
### 11. Tag and Sign the Release Commit
356
388
357
389
Once you have produced builds that you're happy with, create a new tag. By
358
390
waiting until this stage to create tags, you can discard a proposed release if
359
391
something goes wrong or additional commits are required. Once you have created a
360
-
tag and pushed it to GitHub, you ***should not*** delete and re-tag. If you make
392
+
tag and pushed it to GitHub, you ***must not*** delete and re-tag. If you make
361
393
a mistake after tagging then you'll have to version-bump and start again and
362
394
count that tag/version as lost.
363
395
@@ -388,7 +420,7 @@ following command:
388
420
$ git push <remote><vx.y.z>
389
421
```
390
422
391
-
### 11. Set Up For the Next Release
423
+
### 12. Set Up For the Next Release
392
424
393
425
On release proposal branch, edit `src/node_version.h` again and:
394
426
@@ -407,17 +439,26 @@ This sets up the branch so that nightly builds are produced with the next
407
439
version number _and_ a pre-release tag.
408
440
409
441
Merge your release proposal branch into the stable branch that you are releasing
410
-
from (e.g. `v8.x`), and rebase the corresponding staging branch (`v8.x-staging`)
411
-
on top of that.
442
+
from and rebase the corresponding staging branch on top of that.
443
+
444
+
```console
445
+
$ git checkout v1.x
446
+
$ git merge --ff-only v1.2.3-proposal
447
+
$ git push upstream v1.x
448
+
$ git checkout v1.x-staging
449
+
$ git rebase v1.x
450
+
$ git push upstream v1.x-staging
451
+
```
412
452
413
453
Cherry-pick the release commit to `master`. After cherry-picking, edit
414
454
`src/node_version.h` to ensure the version macros contain whatever values were
415
-
previously on `master`. `NODE_VERSION_IS_RELEASE` should be `0`.
455
+
previously on `master`. `NODE_VERSION_IS_RELEASE` should be `0`. **Do not**
456
+
cherry-pick the "Working on vx.y.z" commit to `master`.
416
457
417
458
Run `make lint-md-build; make lint` before pushing to `master`, to make sure the
418
459
Changelog formatting passes the lint rules on `master`.
419
460
420
-
### 12. Promote and Sign the Release Builds
461
+
### 13. Promote and Sign the Release Builds
421
462
422
463
**It is important that the same individual who signed the release tag be the one
423
464
to promote the builds as the SHASUMS256.txt file needs to be signed with the
@@ -469,7 +510,7 @@ be prompted to re-sign SHASUMS256.txt.
469
510
*Note*: It is possible to only sign a release by running `./tools/release.sh -s
470
511
vX.Y.Z`.
471
512
472
-
### 13. Check the Release
513
+
### 14. Check the Release
473
514
474
515
Your release should be available at `https://nodejs.org/dist/vx.y.z/` and
475
516
<https://nodejs.org/dist/latest/>. Check that the appropriate files are in
@@ -478,7 +519,7 @@ have the right internal version strings. Check that the API docs are available
478
519
at <https://nodejs.org/api/>. Check that the release catalog files are correct
479
520
at <https://nodejs.org/dist/index.tab> and <https://nodejs.org/dist/index.json>.
480
521
481
-
### 14. Create a Blog Post
522
+
### 15. Create a Blog Post
482
523
483
524
There is an automatic build that is kicked off when you promote new builds, so
484
525
within a few minutes nodejs.org will be listing your new version as the latest
@@ -512,7 +553,7 @@ This script will use the promoted builds and changelog to generate the post. Run
512
553
- Changes to `master` on the nodejs.org repo will trigger a new build of
513
554
nodejs.org so your changes should appear in a few minutes after pushing.
514
555
515
-
### 15. Announce
556
+
### 16. Announce
516
557
517
558
The nodejs.org website will automatically rebuild and include the new version.
518
559
To announce the build on Twitter through the official @nodejs account, email
@@ -527,11 +568,19 @@ To ensure communication goes out with the timing of the blog post, please allow
527
568
will be shared with the community in the email to coordinate these
528
569
announcements.
529
570
530
-
### 16. Cleanup
571
+
### 17. Create the release on GitHub
572
+
573
+
- Got to the [New release page](https://github.com/nodejs/node/releases/new).
574
+
- Select the tag version you pushed earlier.
575
+
- For release title, copy the title from the changelog.
576
+
- For the description, copy the rest of the changelog entry.
577
+
- Click on the "Publish release" button.
578
+
579
+
### 18. Cleanup
531
580
532
-
Close your release proposal PR and remove the proposal branch.
581
+
Close your release proposal PR and delete the proposal branch.
0 commit comments