-
Check configuration
- Check features planned for the release are implemented and documented (or more informally, that the Release Manager agrees it is feature complete)
- Check that finished tasks / tickets are marked as resolved
-
Verify tests passed
- Any known issues or limitations should be documented in release notes
- Known bugs should have tickets
- Run
arc lint --everything
and check there is no linter error - Ensure that bitcoind and bitcoin-qt run with no issue on all supported platforms. Manually test bitcoin-qt by sending some transactions and navigating through the menus.
-
Update the documents / code which needs to be updated every release
- Check that doc/release-notes.md is complete, and fill in any missing items.
- Update bips.md to account for changes since the last release.
- (major releases) Update
BLOCK_CHAIN_SIZE
to the current size plus some overhead. - Update
src/chainparams.cpp
defaultAssumeValid and nMinimumChainWork 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.
- Regenerate manpages (run
contrib/devtools/gen-manpages.sh
, or for out-of-tree builds runBUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh
). - Update seeds as per contrib/seeds/README.md.
-
Add git tag for release
-
Increment version number for the next release in:
- doc/release-notes.md (and copy existing one to versioned doc/release-notes/*.md)
- configure.ac
- src/config/CMakeLists.txt
- contrib/gitian-descriptors/*.yml (before a new major release)
- contrib/seeds/makeseeds.py (only after a new major release)
-
Create Gitian Builds (see gitian-building.md)
-
Verify matching Gitian Builds, gather signatures
-
Verify IBD bith with and without
-checkpoints=0 -assumevalid=0
-
Upload Gitian Builds to bitcoinabc.org
-
Create a GitHub release. The Github release name should be the same as the tag (without the prepended 'v'), and the contents of the release notes should be copied from release-notes.md.
-
Notify maintainers of Ubuntu PPA, AUR, and Docker images to build their packages. They should be given 1-day advance notice if possible.
-
Update version number on www.bitcoinabc.org
-
Publish signed checksums (various places, e.g. blog, reddit/r/BitcoinABC)
-
Announce Release:
- Twitter @Bitcoin_ABC
- Public slack channels friendly to Bitcoin ABC announcements (eg. #abc-announce on BTCforks, #hardfork on BTCchat)