Hi all, Now that I think I’ve ironed out most of the quirks in the release scripts, I thought I’d explain a bit more what they actually do.
tools/release-0-update-generated-code.sh This script deletes all generated code from all parts of the project and then runs both the code-generation as well as the website code generation to ensure all generated code is checked in. It also ensures the NOTICE file contains the current year and automatically updates that, if this is not the case. You can generally run this script any time you want, it just makes sure your branch is updated. The good thing is, that it uses Docker to do that, so even if you haven’t setup .Net, Go or Python on your machine, you can still update all generated code. tools/release-1-create-branch.sh It does what it says. It creates the release branch from develop. However, it does a few checks: 1. It asks you, if you updated the RELEASE_NOTES 2. After the branch is created, it removes the „(Unreleased)“ prefix in the develop „RELEASE_NOTES“ and adds a new section to it for the new development version. 3. After that it switches to the release branch and ensures all git config is correct. tools/release-2-perform-release.sh This does most of the magic. It executes the release prepare and release perform steps of the maven release. But all of this inside docker, so the produces jars should be reproducible. After that it automatically deploys the artifacts to nexus and automatically closes the staging repository and keeps track of the staging repo url. After that it assembles the actual release for Apache's SVN and imports that to the right place. Then it fetches the KEYS file and validates the signed artifacts against that (This way we spot if a RM has missed to add his key to the KEYS file). As a last step the script then generates the two emails where all variables are correctly filled: Version, RC-number, tag, tag-hash, download URL and staging repo URL. So, I hope with this releasing will become as easy as 0, 1, 2 (Should have named them 1, 2 and 3) Now I need to back-port my latest changes on the release branch. Chris
