Skip to content

Commit 842f7fd

Browse files
committed
Merge bitcoin#29645: doc: update release-process.md
1ea8674 [doc] update release-process.md and backports section of CONTRIBUTING (glozow) Pull request description: While doing various release process things for the first time, I noticed some of our docs are outdated and/or confusing. ACKs for top commit: achow101: ACK 1ea8674 Tree-SHA512: 4ad10d4ce2c33fe15cb02599353107bb72ecb867aefc6c120cfd5cdea42aa8fa3783f9e0218c2f3815f030e0694cc8fb24011ce88358a0206cb07416a256a962
2 parents 4df2d0c + 1ea8674 commit 842f7fd

File tree

2 files changed

+44
-46
lines changed

2 files changed

+44
-46
lines changed

CONTRIBUTING.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -418,11 +418,8 @@ Backporting
418418

419419
Security and bug fixes can be backported from `master` to release
420420
branches.
421-
If the backport is non-trivial, it may be appropriate to open an
422-
additional PR to backport the change, but only after the original PR
423-
has been merged.
424-
Otherwise, backports will be done in batches and
425-
the maintainers will use the proper `Needs backport (...)` labels
421+
Maintainers will do backports in batches and
422+
use the proper `Needs backport (...)` labels
426423
when needed (the original author does not need to worry about it).
427424

428425
A backport should contain the following metadata in the commit body:

doc/release-process.md

+42-41
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ Release Process
55

66
### Before every release candidate
77

8-
* Update translations see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations).
98
* Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`).
109
* Update manpages (after rebuilding the binaries), see [gen-manpages.py](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagespy).
11-
* Update bitcoin.conf and commit, see [gen-bitcoin-conf.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-bitcoin-confsh).
10+
* Update bitcoin.conf and commit changes if they exist, see [gen-bitcoin-conf.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-bitcoin-confsh).
1211

1312
### Before every major and minor release
1413

1514
* Update [bips.md](bips.md) to account for changes since the last release.
1615
* Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_RC` to `0`).
1716
* Update manpages (see previous section)
18-
* Write release notes (see "Write the release notes" below).
17+
* Write release notes (see "Write the release notes" below) in doc/release-notes.md. If necessary,
18+
archive the previous release notes as doc/release-notes/release-notes-${VERSION}.md.
1919

2020
### Before every major release
2121

@@ -28,6 +28,7 @@ Release Process
2828

2929
#### Before branch-off
3030

31+
* Update translations see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations).
3132
* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/27488) for an example.
3233
* Update the following variables in [`src/kernel/chainparams.cpp`](/src/kernel/chainparams.cpp) for mainnet, testnet, and signet:
3334
- `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see
@@ -161,32 +162,40 @@ Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoi
161162

162163
### macOS codesigner only: Create detached macOS signatures (assuming [signapple](https://github.com/achow101/signapple/) is installed and up to date with master branch)
163164

165+
In the `guix-build-${VERSION}/output/x86_64-apple-darwin` and `guix-build-${VERSION}/output/arm64-apple-darwin` directories:
166+
164167
tar xf bitcoin-osx-unsigned.tar.gz
165168
./detached-sig-create.sh /path/to/codesign.p12
166169
Enter the keychain password and authorize the signature
167170
signature-osx.tar.gz will be created
168171

169172
### Windows codesigner only: Create detached Windows signatures
170173

174+
In the `guix-build-${VERSION}/output/x86_64-w64-mingw32` directory:
175+
171176
tar xf bitcoin-win-unsigned.tar.gz
172177
./detached-sig-create.sh -key /path/to/codesign.key
173178
Enter the passphrase for the key when prompted
174179
signature-win.tar.gz will be created
175180

176181
### Windows and macOS codesigners only: test code signatures
177182
It is advised to test that the code signature attaches properly prior to tagging by performing the `guix-codesign` step.
178-
However if this is done, once the release has been tagged in the bitcoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds.
183+
However if this is done, once the release has been tagged in the bitcoin-detached-sigs repo, the `guix-codesign` step must be performed again in order for the guix attestation to be valid when compared against the attestations of non-codesigner builds. The directories created by `guix-codesign` will need to be cleared prior to running `guix-codesign` again.
179184

180185
### Windows and macOS codesigners only: Commit the detached codesign payloads
181186

182187
```sh
183188
pushd ./bitcoin-detached-sigs
184-
# checkout the appropriate branch for this release series
185-
rm -rf ./*
189+
# checkout or create the appropriate branch for this release series
190+
git checkout --orphan <branch>
191+
# if you are the macOS codesigner
192+
rm -rf osx
186193
tar xf signature-osx.tar.gz
194+
# if you are the windows codesigner
195+
rm -rf win
187196
tar xf signature-win.tar.gz
188197
git add -A
189-
git commit -m "point to ${VERSION}"
198+
git commit -m "<version>: {osx,win} signature for {rc,final}"
190199
git tag -s "v${VERSION}" HEAD
191200
git push the current branch and new tag
192201
popd
@@ -216,45 +225,36 @@ popd
216225

217226
Then open a Pull Request to the [guix.sigs repository](https://github.com/bitcoin-core/guix.sigs).
218227

219-
## After 3 or more people have guix-built and their results match
228+
## After 6 or more people have guix-built and their results match
220229

221-
Combine the `all.SHA256SUMS.asc` file from all signers into `SHA256SUMS.asc`:
230+
After verifying signatures, combine the `all.SHA256SUMS.asc` file from all signers into `SHA256SUMS.asc`:
222231

223232
```bash
224233
cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc
225234
```
226235

227236

228-
- Upload to the bitcoincore.org server (`/var/www/bin/bitcoin-core-${VERSION}/`):
229-
1. The contents of each `./bitcoin/guix-build-${VERSION}/output/${HOST}/` directory, except for
230-
`*-debug*` files.
237+
- Upload to the bitcoincore.org server:
238+
1. The contents of each `./bitcoin/guix-build-${VERSION}/output/${HOST}/` directory.
231239

232240
Guix will output all of the results into host subdirectories, but the SHA256SUMS
233241
file does not include these subdirectories. In order for downloads via torrent
234242
to verify without directory structure modification, all of the uploaded files
235243
need to be in the same directory as the SHA256SUMS file.
236244

237-
The `*-debug*` files generated by the guix build contain debug symbols
238-
for troubleshooting by developers. It is assumed that anyone that is
239-
interested in debugging can run guix to generate the files for
240-
themselves. To avoid end-user confusion about which file to pick, as well
241-
as save storage space *do not upload these to the bitcoincore.org server,
242-
nor put them in the torrent*.
243-
244-
```sh
245-
find guix-build-${VERSION}/output/ -maxdepth 2 -type f -not -name "SHA256SUMS.part" -and -not -name "*debug*" -exec scp {} [email protected]:/var/www/bin/bitcoin-core-${VERSION} \;
246-
```
245+
Wait until all of these files have finished uploading before uploading the SHA256SUMS(.asc) files.
247246

248247
2. The `SHA256SUMS` file
249248

250-
3. The `SHA256SUMS.asc` combined signature file you just created
249+
3. The `SHA256SUMS.asc` combined signature file you just created.
251250

252-
- Create a torrent of the `/var/www/bin/bitcoin-core-${VERSION}` directory such
253-
that at the top level there is only one file: the `bitcoin-core-${VERSION}`
254-
directory containing everything else. Name the torrent
255-
`bitcoin-${VERSION}.torrent` (note that there is no `-core-` in this name).
251+
- After uploading release candidate binaries, notify the bitcoin-core-dev mailing list and
252+
bitcoin-dev group that a release candidate is available for testing. Include a link to the release
253+
notes draft.
256254

257-
Optionally help seed this torrent. To get the `magnet:` URI use:
255+
- The server will automatically create an OpenTimestamps file and torrent of the directory.
256+
257+
- Optionally help seed this torrent. To get the `magnet:` URI use:
258258

259259
```sh
260260
transmission-show -m <torrent file>
@@ -265,32 +265,33 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc
265265
Also put it into the `optional_magnetlink:` slot in the YAML file for
266266
bitcoincore.org.
267267

268-
- Update other repositories and websites for new version
269-
270-
- bitcoincore.org blog post
268+
- Archive the release notes for the new version to `doc/release-notes/release-notes-${VERSION}.md`
269+
(branch `master` and branch of the release).
271270

272-
- bitcoincore.org maintained versions update:
273-
[table](https://github.com/bitcoin-core/bitcoincore.org/commits/master/_includes/posts/maintenance-table.md)
271+
- Update the bitcoincore.org website
274272

275-
- Delete post-EOL [release branches](https://github.com/bitcoin/bitcoin/branches/all) and create a tag `v${branch_name}-final`.
273+
- blog post
276274

277-
- Delete ["Needs backport" labels](https://github.com/bitcoin/bitcoin/labels?q=backport) for non-existing branches.
275+
- maintained versions [table](https://github.com/bitcoin-core/bitcoincore.org/commits/master/_includes/posts/maintenance-table.md)
278276

279-
- bitcoincore.org RPC documentation update
277+
- RPC documentation update
280278

281279
- See https://github.com/bitcoin-core/bitcoincore.org/blob/master/contrib/doc-gen/
282280

281+
282+
- Update repositories
283+
284+
- Delete post-EOL [release branches](https://github.com/bitcoin/bitcoin/branches/all) and create a tag `v${branch_name}-final`.
285+
286+
- Delete ["Needs backport" labels](https://github.com/bitcoin/bitcoin/labels?q=backport) for non-existing branches.
287+
283288
- Update packaging repo
284289

285290
- Push the flatpak to flathub, e.g. https://github.com/flathub/org.bitcoincore.bitcoin-qt/pull/2
286291

287292
- Push the snap, see https://github.com/bitcoin-core/packaging/blob/main/snap/local/build.md
288293

289-
- This repo
290-
291-
- Archive the release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
292-
293-
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes
294+
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes
294295

295296
- Announce the release:
296297

0 commit comments

Comments
 (0)