dashpay/dash

Release Process for v21.0

Closed this issue · 2 comments

v21.0.0 Release Process

Before every minor and major release:

  • Update bips.md to account for changes since the last release (@thephez).
  • Update version in configure.ac (don't forget to set CLIENT_VERSION_IS_RELEASE to true) (@PastaPastaPasta)
  • Write Release Notes (@PastaPastaPasta @UdjinM6) #6144
  • Update src/chainparams.cpp nMinimumChainWork with information from the getblockchaininfo rpc. (@knst) (#6146)
  • Update src/chainparams.cpp defaultAssumeValid with information from the getblockhash rpc. (@knst) (#6146)
  • Update main net activation timing.
        consensus.vDeployments[Consensus::DEPLOYMENT_MN_RR].bit = 10;
        consensus.vDeployments[Consensus::DEPLOYMENT_MN_RR].nStartTime = 1704067200;   // January 1, 2024
        consensus.vDeployments[Consensus::DEPLOYMENT_MN_RR].nTimeout = 1767225600; // January 1, 2026

Tag the Release

Check CI

  • Validate that CI passes

Do Guix Build (for unsigned binaries) and create PRs

  • Pasta Guix Build
  • Udjin Guix Build
  • Thephez Guix Build
  • Kittywhiskers Guix Build
  • Knst Guix Build

Create Windows/OS X detached signatures (note: it might be decided skip signed binaries for RCs)
Only once the Windows/OS X builds each have 3 matching signatures may they be signed with their respective release keys.

  • Pasta creates windows detached signature and commits
  • pasta creates OS X detached signature

Update Guix Builds with signed binaries (note: it might be decided skip signed binaries for RCs)

  • Pasta Guix Build
  • Udjin Guix Build
  • Thephez Guix Build
  • Kittywhiskers Guix Build
  • Knst Guix Build

After 3 or more people have guix-built and their results match:

  • Create SHA256SUMS.asc for the builds
  • GPG sign each download / binary
  • Upload zips and installers, as well as SHA256SUMS.asc from last step, to github as github draft release.
  • Validate SHA256SUMS.asc and all binaries attached to github draft release are correct
  • Notarize OS X binaries
  • Release on github
  • Update website
  • Ensure that docker hub images are up to date

Announce the release:

After the release

  • Submit patches to BTCPay to ensure they use latest / compatible version see #4211 (comment) (@strophy ?)
  • Fast forward master; merge master into develop
  • Make develop branch the default branch in Github (note this is a potentially breaking change for people who simply clone the repo and build without specifying a branch)

Additional Items

  • Prepare release blog post (necessary so we have a permalink to use on twitter, reddit, etc.)
  • Prepare product brief (major versions only?) (@thephez; need to talk with marina and publish this asap)
  • Prepare a release announcement tweet (tell Marina)
  • Follow-up tweets with any important block heights for consensus changes (Marina again)
  • Post on reddit
  • Update docs (readme and RTD) (@thephez)
  • Test Docker build runs without errors in Dashmate (@shumkov)
  • Add new Release Process items to in repo release process document (@knst)

@PastaPastaPasta I'm not aware of any changes that are required in bips.md

When we add new special transactions, we need to open an issue on the dashcore-lib repo so it gets updated.