- Update translations (ping wumpus on IRC) see translation_process.md.
- Update manpages, see gen-manpages.sh.
- Update release candidate version in
configure.ac
(CLIENT_VERSION_RC
).
- Update bips.md to account for changes since the last release.
- Update version in
configure.ac
(don't forget to setCLIENT_VERSION_RC
to0
). - Write release notes (see "Write the release notes" below).
- Update
src/chainparams.cpp
nMinimumChainWork with information from the getblockchaininfo rpc. - Update
src/chainparams.cpp
defaultAssumeValid with information from the getblockhash rpc.- The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip.
- Testnet should be set some tens of thousands back from the tip due to reorgs there.
- This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect that causes rejection of blocks in the past history.
- Update hardcoded seeds, see this pull request for an example.
- Update
src/chainparams.cpp
m_assumed_blockchain_size and m_assumed_chain_state_size with the current size plus some overhead. - Update
src/chainparams.cpp
chainTxData with statistics about the transaction count and rate. Use the output of the RPCgetchaintxstats
, see this pull request for an example. Reviewers can verify the results by runninggetchaintxstats <window_block_count> <window_last_block_hash>
with thewindow_block_count
andwindow_last_block_hash
from your output. - On both the master branch and the new release branch:
- update
CLIENT_VERSION_MINOR
inconfigure.ac
- update
CLIENT_VERSION_MINOR
,PACKAGE_VERSION
, andPACKAGE_STRING
inbuild_msvc/defi_config.h
- update
- On the new release branch in
configure.ac
andbuild_msvc/defi_config.h
(see this commit):- set
CLIENT_VERSION_REVISION
to0
- set
CLIENT_VERSION_IS_RELEASE
totrue
- set
- Clear the release notes and move them to the wiki (see "Write the release notes" below).
- Update the version of
contrib/gitian-descriptors/*.yml
.
- Update the versions and the link to the release notes draft in
doc/release-notes.md
.
- Merge the release notes from the wiki into the branch.
- Ensure the "Needs release note" label is removed from all relevant pull requests and issues.
Tag the version (or release candidate) in git:
git tag -s v(new version, e.g. 0.20.0)
After create tag, github workflow will automatically build the artifacts.
Open a draft of the release notes for collaborative editing at https://github.com/bitcoin-core/bitcoin-devwiki/wiki.
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
.
Write the release notes. git shortlog
helps a lot, for example:
git shortlog --no-merges v(current version, e.g. 0.19.2)..v(new version, e.g. 0.20.0)
(or ping @wumpus on IRC, he has specific tooling to generate the list of merged pulls and sort them into categories based on labels).
Generate list of authors:
git log --format='- %aN' v(current version, e.g. 0.20.0)..v(new version, e.g. 0.20.1) | sort -fiu
-
Update slack announcements channel.
-
Update in the telgram channel.
-
Update twitter, reddit, ... but this will usually sort out itself
-
Celebrate