Before every release candidate:
- Update translations, see translation_process.md.
- Update manpages, see gen-manpages.sh.
Before every minor and major release:
- Update bips.md to account for changes since the last release.
- Update version in
configure.ac
(don't forget to setCLIENT_VERSION_IS_RELEASE
totrue
) - Write release notes (see 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.
Before every major release:
- Update hardcoded seeds, see this pull request for an example.
- Update
BLOCK_CHAIN_SIZE
to 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.
Finally:
- Announce the release:
- Update xpchain.io
- Official announcements in Discord, Twitter, etc.
- Archive release notes for the new version to
doc/release-notes/
(branchmaster
and branch of the release) - Create a new GitHub release with a link to the archived release notes.
- Celebrate