1. Warn people in chat
  2. Get the branch ready 
    1. either you're doing a release off main
    2. or a release-x.y.z branch in which case you may need to cherry pick commits into it
  3. push a PR with a non`-SNAPSHOT` version in gradle.properties
  4. once the PR is merged, the build automation detects it and does all the release packaging and publishing
  5. push a PR with the next `-SNAPSHOT` version in gradle.properties - this prevents the release you just did from being overwritten.
    1. Also include the download links in (at least on main branch, maybe also on release branch) CHANGELOG when done (download the zip file and run shasum besu.zip to get the hashes)
    2. if you're doing a release from a release branch, also check gradle.properties on main - if it needs updating (eg if you're releasing 22.1.0 off a branch but main gradle.properties still says RC4)
  6. push a PR to update homebrew (not for RC)

Then, the non-code items:

  • Create a besu github release (copy CHANGELOG section in there)
  • Create a besu-docs github release (copy the same CHANGELOG section in there)
  • announcement in chat
  • announcement on twitter etc


  • No labels