From 04a57ae4aff822b74f48fab932606ac555b22dd6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 19 Aug 2019 11:43:57 +0930 Subject: [PATCH] doc/MAKING-RELEASES.md: update. 1. These days we delete the [Unreleased] tag during rcs. 2. Make sure we test the release build process during rc1, since I screwed that up last release. 3. Add a section on rc2, etc. 4. Do final release via a github PR, since I screwed that up on the prior release. 5. Update `tools/build-release.sh` and instructions to show that we now make a reproducible build for Ubuntu 18.04 x86-64. Signed-off-by: Rusty Russell --- doc/MAKING-RELEASES.md | 35 ++++++++++++++++++++++++----------- tools/build-release.sh | 3 ++- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/doc/MAKING-RELEASES.md b/doc/MAKING-RELEASES.md index 5616c04e5..f51474fb4 100644 --- a/doc/MAKING-RELEASES.md +++ b/doc/MAKING-RELEASES.md @@ -17,8 +17,7 @@ Here's a checklist for the release process. 1. Check that CHANGELOG.md is well formatted, ordered in areas, covers all signficant changes, and sub-ordered approximately by user impact & coolness. -2. Update the CHANGELOG.md with [Unreleased] changed to -rc1, and add a new - footnote. +2. Update the CHANGELOG.md with [Unreleased] changed to -rc1. 3. Create a PR with the above. ### Releasing -rc1 @@ -28,21 +27,35 @@ Here's a checklist for the release process. 3. Update the /topic on #c-lightning on Freenode. 4. Prepare draft release notes (see devtools/credit), and share with team for editing. 5. Upgrade your personal nodes to the rc1, to help testing. +6. Test `tools/build-release.sh` to build the non-reprodicible images + and reproducible zipfile. +7. Use the zipfile to produce a [reproducible build](REPRODUCIBLE.md). + +### Releasing -rc2, etc + +1. Change rc1 to rc2 in CHANGELOG.md. +2. Add a PR with the rc2. +3. Tag it `git pull && git tag -s vrc2 && git push --tags` +4. Update the /topic on #c-lightning on Freenode. +5. Upgrade your personal nodes to the rc2. ### Tagging the Release -1. Update the CHANGELOG.md; remove -rc1 in both places, and move the - [Unreleased] footnote URL from the previous version to the - about-to-be-released version. -2. Commit that, then `git tag -s v && git push --tags`. -3. Run `tools/build-release.sh` to create the images, `SHA256SUMS` and - signatures into release/. -4. Upload the files resulting files to github and +1. Update the CHANGELOG.md; remove -rcN in both places, and add an + [Unreleased] footnote URL from this new version to HEAD. +2. Add a PR with that release. +3. Merge the PR, then `git pull && git tag -s v && git push --tags`. +4. Run `tools/build-release.sh` to build the non-reprodicible images + and reproducible zipfile. +5. Use the zipfile to produce a [reproducible build](REPRODUCIBLE.md). +6. Create the checksums for signing: `sha256sum release/* > release/SHA256SUMS` +7. Create the first signature with `gpg -sb --armor release/SHA256SUMS` +8. Upload the files resulting files to github and save as a draft. (https://github.com/ElementsProject/lightning/releases/) -5. Ping the rest of the team to check the SHA256SUMS file and have them +9. Ping the rest of the team to check the SHA256SUMS file and have them send their `gpg -sb --armor SHA256SUMS`. -6. Append the signatures into a file called `SHA256SUMS.asc`, verify +10. Append the signatures into a file called `SHA256SUMS.asc`, verify with `gpg --verify SHA256SUMS.asc` and include the file in the draft release. diff --git a/tools/build-release.sh b/tools/build-release.sh index 23d902b53..a08ac84d4 100755 --- a/tools/build-release.sh +++ b/tools/build-release.sh @@ -13,7 +13,8 @@ if [ x"$1" = x"--inside-docker" ]; then exit 0 fi -ALL_TARGETS="bin-Fedora-28-amd64 bin-Ubuntu-16.04-amd64 bin-Ubuntu-16.04-i386 zipfile sign" +# bin-Ubuntu-16.04-amd64 was superceded by the reproducible built 18.04 version. +ALL_TARGETS="bin-Fedora-28-amd64 bin-Ubuntu-16.04-i386 zipfile" FORCE_VERSION= FORCE_UNCLEAN=false