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.
git clone https://github.com/RavenProject/Ravencoin.git
Write release notes. git shortlog helps a lot, for example:
git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0)
Generate list of authors:
git log --format='%aN' "$*" | sort -ui | sed -e 's/^/- /'
Tag version (or release candidate) in git
git tag -s v(new version, e.g. 0.8.0)
TODO: describe process.
Codesigner only: Create Windows/OS X detached signatures:
- Only one person handles codesigning. Everyone else should skip to the next step.
- Only once the Windows/OS X builds each have 3 matching signatures may they be signed with their respective release keys.
Codesigner only: Sign the osx binary:
transfer raven-osx-unsigned.tar.gz to osx for signing
tar xf raven-osx-unsigned.tar.gz
./detached-sig-create.sh -s "Key ID"
Enter the keychain password and authorize the signature
Move signature-osx.tar.gz back to the gitian host
Codesigner only: Sign the windows binaries:
tar xf raven-win-unsigned.tar.gz
./detached-sig-create.sh -key /path/to/codesign.key
Enter the passphrase for the key when prompted
signature-win.tar.gz will be created
- Create
SHA256SUMS.asc
for the builds, and GPG-sign it:
sha256sum * > SHA256SUMS
The list of files should be:
raven-${VERSION}-aarch64-linux-gnu.tar.gz
raven-${VERSION}-arm-linux-gnueabihf.tar.gz
raven-${VERSION}-x86_64-linux-gnu.tar.gz
raven-${VERSION}-osx64.tar.gz
raven-${VERSION}-osx.dmg
raven-${VERSION}.tar.gz
raven-${VERSION}-win64-setup.exe
raven-${VERSION}-win64.zip
- GPG-sign it, delete the unsigned file:
gpg --digest-algo sha256 --clearsign SHA256SUMS # outputs SHA256SUMS.asc rm SHA256SUMS
(the digest algorithm is forced to sha256 to avoid confusion of the `Hash:` header that GPG adds with the SHA256 used for the files)
Note: check that SHA256SUMS itself doesn't end up in SHA256SUMS, which is a spurious/nonsensical entry.
- Upload zips and installers, as well as `SHA256SUMS.asc` from last step, to the github-release page.
- Update ravencoin.org version
- Announce the release:
- ravencore.org blog post
- Optionally twitter, reddit /r/Ravencoin, ... but this will usually sort out itself
- Archive release notes for the new version to `doc/release-notes/` (branch `master` and branch of the release)
- Create a [new GitHub release](https://github.com/RavenProject/Ravencoin/releases/new) with a link to the archived release notes.
- Celebrate