You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.0 KiB
4.0 KiB
Release checklist
Here's a checklist for the release process.
Leading Up To The Release
- Talk to team about whether there are any changes which MUST go in this release which may cause delay.
- Look through outstanding issues, to identify any problems that might be necessary to fixup before the release. Good candidates are reports of the project not building on different architectures or crashes.
- Identify a good lead for each outstanding issue, and ask them about a fix timeline.
- Create a milestone for the next release on Github, and go though open issues and PRs and mark accordingly.
- Ask (via email) the most significant contributor who has not already named a release to name the release (use devtools/credit to find this contributor). CC previous namers and team.
Preparing for -rc1
- Check that
CHANGELOG.md
is well formatted, ordered in areas, covers all signficant changes, and sub-ordered approximately by user impact & coolness. - Use
devtools/changelog.py
to collect the changelog entries from pull request commit messages and merge them into the manually maintainedCHANGELOG.md
. This does API queries to GitHub, which are severely ratelimited unless you use an API token: set theGH_TOKEN
environment variable to a Personal Access Token from https://github.com/settings/tokens - Create a new CHANGELOG.md heading to
v<VERSION>rc1
, and create a link at the bottom. Note that you should exactly copy the date and name format from a previous release, as thebuild-release.sh
script relies on this. - Create a PR with the above.
Releasing -rc1
- Merge the above PR.
- Tag it
git pull && git tag -s v<VERSION>rc1
. Note that you should get a prompt to give this tag a 'message'. Make sure you fill this in. - Confirm that the tag will show up for builds with
git describe
- Push the tag to remote
git push --tags
. - Update the /topic on #c-lightning on Freenode.
- Prepare draft release notes (see devtools/credit), and share with team for editing.
- Upgrade your personal nodes to the rc1, to help testing.
- Test
tools/build-release.sh
to build the non-reprodicible images and reproducible zipfile. - Use the zipfile to produce a reproducible build.
Releasing -rc2, etc
- Change rc1 to rc2 in CHANGELOG.md.
- Add a PR with the rc2.
- Tag it
git pull && git tag -s v<VERSION>rc2 && git push --tags
- Update the /topic on #c-lightning on Freenode.
- Upgrade your personal nodes to the rc2.
Tagging the Release
- Update the CHANGELOG.md; remove -rcN in both places, update the date.
- Add a PR with that release.
- Merge the PR, then:
export VERSION=0.9.3
git pull
git tag -a -s v${VERSION} -m v${VERSION}
git push --tags
- Run
tools/build-release.sh
to build the non-reprodicible images and reproducible zipfile. - Use the zipfile to produce a reproducible build.
- Create the checksums for signing:
sha256sum release/* > release/SHA256SUMS
- Create the first signature with
gpg -sb --armor release/SHA256SUMS
- Upload the files resulting files to github and save as a draft. (https://github.com/ElementsProject/lightning/releases/)
- Ping the rest of the team to check the SHA256SUMS file and have them send their
gpg -sb --armor SHA256SUMS
. - Append the signatures into a file called
SHA256SUMS.asc
, verify withgpg --verify SHA256SUMS.asc
and include the file in the draft release.
Performing the Release
- Edit the GitHub draft and include the
SHA256SUMS.asc
file. - Publish the release as not a draft.
- Update the /topic on #c-lightning on Freenode.
- Send a mail to c-lightning and lightning-dev mailing lists, using the same wording as the Release Notes in github.
Post-release
- Look through PRs which were delayed for release and merge them.
- Close out the Milestone for the now-shipped release.
- Update this file with any missing or changed instructions.