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


Reply via email to