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
Copy file name to clipboardExpand all lines: doc/contribute-to-core-lightning/release-checklist.md
+12-11Lines changed: 12 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ Here's a checklist for the release process.
45
45
1. Update CHANGELOG.md by changing rc(N-1) to rcN. Update the changelog list with information from newly merged PRs also.
46
46
2. Update the package versions: `uv run make update-versions NEW_VERSION=v<VERSION>rcN`
47
47
3. Add a PR with the rcN.
48
-
4. Tag it `git pull && git tag -s v<VERSION>rcN && git push --tags`.
48
+
4. Tag it `git pull && git tag -s v<VERSION>rcN && git push origin v<VERSION>rcN`.
49
49
5. Pushing the tag automatically starts the "Release 🚀" CI job, creating a draft pre-release and uploading reproducible builds with their `SHA256SUMS` files signed by the project key.
50
50
6. Set up the reproducible build environment by running the script `contrib/cl-repro.sh` to generate the necessary builder images.
51
51
7. Use the command `tools/build-release.sh bin-Fedora bin-Ubuntu sign` to locally rebuild the release and generate a personal signature file for the checksums.
@@ -56,13 +56,14 @@ Here's a checklist for the release process.
56
56
57
57
## Tagging the Release
58
58
59
-
1. Update the CHANGELOG.md; remove -rcN in both places, update the date and add title and namer.
60
-
2. Update the contrib/pyln package versions: `uv run make update-versions NEW_VERSION=v<VERSION>`
61
-
3. Add a PR with that release.
62
-
4. Merge the PR, then:
63
-
-`git pull`
64
-
-`VERSION=23.05; git tag -a -s v$VERSION -m v$VERSION`
65
-
-`git push --tags`
59
+
1. Update CHANGELOG.md: remove -rcN in both places, update the date, and add the title and namer.
60
+
2. Update project-wide package versions: `uv run make update-versions NEW_VERSION=v<VERSION>`
61
+
3. Create a PR with above changes.
62
+
4. After the PR is merged, create and push the release tag:
63
+
- Run `git pull`.
64
+
- Set the current release version in your shell (e.g., if the current release is `v26.03`): `VERSION=26.03`
65
+
- Create a signed, annotated tag: `git tag -a -s v$VERSION -m "v$VERSION"`
66
+
- Push the tag: `git push origin v$VERSION`
66
67
5. Pushing the tag will trigger the CI pipeline, which will draft the pre-release and upload the build artifacts with project-signed checksums.
67
68
6. Prepare the build environments by executing the `contrib/cl-repro.sh` script.
68
69
7. Run `tools/build-release.sh bin-Fedora bin-Ubuntu sign` (with `--sudo` if you need root to run Docker) to:
@@ -91,7 +92,7 @@ Here's a checklist for the release process.
91
92
1. Edit the GitHub draft and include the `SHA256SUMS-v<VERSION>.asc` file.
92
93
2. Publish the release as not a draft.
93
94
3. Announce the final release on core-lightning's release-chat channel on Discord & Telegram.
94
-
4. Send a mail to c-lightning and lightning-dev mailing lists, using the same wording as the Release Notes in GitHub.
95
+
4. Send a mail to c-lightning mailing list (`c-lightning@lists.ozlabs.org`), using the same wording as the Release Notes in GitHub.
95
96
5. Write release blog, post it on [Blockstream](https://blog.blockstream.com/) and announce the release on Twitter.
96
97
97
98
## Post-release
@@ -106,11 +107,11 @@ Here's a checklist for the release process.
106
107
1. Create a new branch named `release-<VERSION>.<POINT_VERSION>`, where each new branch is based on the commit from the previous release tag. For example, `release-<VERSION>.1` is based on `release-<VERSION>`, `release-<VERSION>.2` is based on `release-<VERSION>.1`, and so on.
107
108
2. Cherry-pick all necessary commits for the hotfix into the new branch.
108
109
3. Add entries for changes and fixed issues in `CHANGELOG.md` under a new heading for `v<VERSION>.<POINT_VERSION>`.
109
-
4. Update the python package versions by running `uv run make update-versions NEW_VERSION=<VERSION>.<POINT_VERSION>`
110
+
4. Update project package versions by running `uv run make update-versions NEW_VERSION=<VERSION>.<POINT_VERSION>`
110
111
5. Create a new commit that includes the updates from `update-versions` and `CHANGELOG.md`.
111
112
6. Tag the release with `git pull && git tag -s v<VERSION>.<POINT_VERSION>`. You will be prompted to enter a tag message, ensure this is filled out.
112
113
7. Confirm that the tag is properly set up for builds by running `git describe`.
113
-
8. Trigger the pre-release by pushing the version tag with `git push --tags`; the CI will handle drafting the release and uploading the initial signed checksums.
114
+
8. Trigger the pre-release by pushing the version tag with `git push origin v<VERSION>.<POINT_VERSION>`; the CI will handle drafting the release and uploading the initial signed checksums.
114
115
9. Generate the required builder images by running `contrib/cl-repro.sh`.
115
116
10. Sign the release locally by running `tools/build-release.sh bin-Fedora bin-Ubuntu sign` which will sign the release contents and create `SHA256SUMS-v<VERSION>` and `SHA256SUMS-v<VERSION>.asc` in the release folder.
116
117
11. Validate that your local checksums `SHA256SUMS-v<VERSION>` match the Draft release's, then add your signatures to the draft release's signature `SHA256SUMS-v<VERSION>.asc` file.
0 commit comments