Skip to content

Commit 96d32a7

Browse files
committed
[docs] Update release-process.md
- Create a release notes draft wiki for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki as seen for releases 0.17.0 and 0.18.0. - As per http://www.erisian.com.au/bitcoin-core-dev/log-2019-03-28.html#l-342, for the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until final. - Before final, remove the "Needs release note" label from relevant PRs/issues and merge the release notes from the wiki into the branch. - Create a pinned meta-issue dedicated to testing the release candidate and communicate it in release announcements where useful. The former is done in practice (e.g. #15555, #14902) and the latter addresses the discussion here: https://x0f.org/web/statuses/101753569204220416. - Adapt and merge the updates in bitcoin/bitcoin#15692. - Update the version numbers in all the examples. - Reorganise the headers in the Branch Updates section.
1 parent 1495975 commit 96d32a7

File tree

1 file changed

+42
-15
lines changed

1 file changed

+42
-15
lines changed

doc/release-process.md

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,59 @@
11
Release Process
22
====================
33

4-
Before every release candidate:
4+
## Branch updates
5+
6+
### Before every release candidate
57

68
* Update translations (ping wumpus on IRC) see [translation_process.md](https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#synchronising-translations).
79
* Update manpages, see [gen-manpages.sh](https://github.com/bitcoin/bitcoin/blob/master/contrib/devtools/README.md#gen-manpagessh).
810
* Update release candidate version in `configure.ac` (`CLIENT_VERSION_RC`).
911

10-
Before every minor and major release:
12+
### Before every major and minor release
1113

1214
* Update [bips.md](bips.md) to account for changes since the last release.
1315
* Update version in `configure.ac` (don't forget to set `CLIENT_VERSION_RC` to `0`).
14-
* Write release notes (see below).
16+
* Write release notes (see "Write the release notes" below).
1517
* Update `src/chainparams.cpp` nMinimumChainWork with information from the getblockchaininfo rpc.
1618
* Update `src/chainparams.cpp` defaultAssumeValid with information from the getblockhash rpc.
1719
- The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip.
1820
- Testnet should be set some tens of thousands back from the tip due to reorgs there.
1921
- This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect
2022
that causes rejection of blocks in the past history.
2123

22-
Before every major release:
24+
### Before every major release
2325

2426
* Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example.
2527
* Update [`src/chainparams.cpp`](/src/chainparams.cpp) m_assumed_blockchain_size and m_assumed_chain_state_size with the current size plus some overhead.
2628
* Update `src/chainparams.cpp` chainTxData with statistics about the transaction count and rate. Use the output of the RPC `getchaintxstats`, see
2729
[this pull request](https://github.com/bitcoin/bitcoin/pull/12270) for an example. Reviewers can verify the results by running `getchaintxstats <window_block_count> <window_last_block_hash>` with the `window_block_count` and `window_last_block_hash` from your output.
28-
* Update version of `contrib/gitian-descriptors/*.yml`: usually one'd want to do this on master after branching off the release - but be sure to at least do it before a new major release.
2930
* In `configure.ac` and `build_msvc/bitcoin_config.h` on _the master branch_:
3031
- update `CLIENT_VERSION_MINOR` version
3132
* In `configure.ac` and `build_msvc/bitcoin_config.h` on _a new release branch_ (see [this commit](https://github.com/bitcoin/bitcoin/commit/742f7dd972fca3dd4a33cfff90bf901b71a687e7)):
3233
- update `CLIENT_VERSION_MINOR` version
3334
- set `CLIENT_VERSION_REVISION` to `0`
3435
- set `CLIENT_VERSION_IS_RELEASE` to `true`
3536

37+
#### Before branch-off
38+
39+
- Clear the release notes and move them to the wiki (see "Write the release notes" below).
40+
41+
#### After branch-off (on master)
42+
43+
- Update the version of `contrib/gitian-descriptors/*.yml`.
44+
45+
#### After branch-off (on the major release branch)
46+
47+
- Update the versions and the link to the release notes draft in `doc/release-notes.md`.
48+
49+
#### Before final release
50+
51+
- Merge the release notes from the wiki into the branch.
52+
- Ensure the "Needs release note" label is removed from all relevant pull requests and issues.
53+
54+
55+
## Building
56+
3657
### First time / New builders
3758

3859
If you're using the automated script (found in [contrib/gitian-build.py](/contrib/gitian-build.py)), then at this point you should run it with the "--setup" command. Otherwise ignore this.
@@ -45,22 +66,26 @@ Check out the source code in the following directory hierarchy.
4566
git clone https://github.com/devrandom/gitian-builder.git
4667
git clone https://github.com/bitcoin/bitcoin.git
4768

48-
### Bitcoin maintainers/release engineers, suggestion for writing release notes
69+
### Write the release notes
4970

50-
Write release notes. git shortlog helps a lot, for example:
71+
Open a draft of the release notes for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki.
5172

52-
git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0)
73+
For the period during which the notes are being edited on the wiki, the version on the branch should be wiped and replaced with a link to the wiki which should be used for all announcements until `-final`.
74+
75+
Write the release notes. `git shortlog` helps a lot, for example:
76+
77+
git shortlog --no-merges v(current version, e.g. 0.19.2)..v(new version, e.g. 0.20.0)
5378

5479
(or ping @wumpus on IRC, he has specific tooling to generate the list of merged pulls
55-
and sort them into categories based on labels)
80+
and sort them into categories based on labels).
5681

5782
Generate list of authors:
5883

59-
git log --format='- %aN' v(current version, e.g. 0.16.0)..v(new version, e.g. 0.16.1) | sort -fiu
84+
git log --format='- %aN' v(current version, e.g. 0.20.0)..v(new version, e.g. 0.20.1) | sort -fiu
6085

61-
Tag version (or release candidate) in git
86+
Tag the version (or release candidate) in git:
6287

63-
git tag -s v(new version, e.g. 0.8.0)
88+
git tag -s v(new version, e.g. 0.20.0)
6489

6590
### Setup and perform Gitian builds
6691

@@ -70,7 +95,7 @@ Setup Gitian descriptors:
7095

7196
pushd ./bitcoin
7297
export SIGNER="(your Gitian key, ie bluematt, sipa, etc)"
73-
export VERSION=(new version, e.g. 0.8.0)
98+
export VERSION=(new version, e.g. 0.20.0)
7499
git fetch
75100
git checkout v${VERSION}
76101
popd
@@ -323,9 +348,11 @@ bitcoin.org (see below for bitcoin.org update instructions).
323348

324349
- This repo
325350

326-
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
351+
- Archive the release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
352+
353+
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes
327354

328-
- Create a [new GitHub release](https://github.com/bitcoin/bitcoin/releases/new) with a link to the archived release notes.
355+
- Create a pinned meta-issue for testing the release candidate (see [this issue](https://github.com/bitcoin/bitcoin/issues/15555) for an example) and provide a link to it in the release announcements where useful
329356

330357
- Announce the release:
331358

0 commit comments

Comments
 (0)