This is a placeholder for the old Release TODO. See page history for historic content.

Please use the ReleaseWizard inside the git repo instead:


Usage
cd dev-tools/scripts
./releaseWizard.py -h
usage: releaseWizard.py [-h] [--dry-run] [--init]

Script to guide a RM through the whole release process

optional arguments:
  -h, --help  show this help message and exit
  --dry-run   Do not execute any commands, but echo them instead. Display
              extra debug info
  --init      Re-initialize root and version

Go push that release!

Tips & Tricks

For patch releases (x.y.z), run the release wizard script from the release branch, e.g. branch_8_8; for minor release, run the release wizard from the stable branch, e.g. branch_8x; for major release, run the release wizard from main.

Plan for the release to take at least 5 days, but probably closer to 8-10 days if the vote period overlaps with a weekend or holiday (or an RC fails, resetting the timeline on the vote):

  • 1-2 days to build the first RC
  • At least 3 days vote for the RC
  • 1 additional day waiting time once the RC vote passes for the release artifacts to find their way to all the mirrors
  • Few hours after the release to tidy up for the next release

The release wizard prompts whether you want to do the release in a new, clean checkout under ~/.lucene-releases. Absolutely do this and don't try to save disk or network I/O by using your normal working dir for the project!

To speed up tests while building the RC, you can increase parallelism by adding the following settings to your ~/lucene.build.properties

tests.jvms=8
tests.jvms.override=8

Adjust the values according to your build machine's available CPU and memory.

You're likely to encounter some random, flaky test failures while building the RC. Typically re-running the failing step in the wizard will pass on subsequent attempts. However, keep an eye out for consistently failing tests and verify if the failure reproduces given the seed reported in the failed test logs. Have faith that the tests are run several times and as part of the smoke test, so random flaky tests should not prevent the release from moving forward. Consistently failing tests should be addressed however. It's your responsibility as the RM to differentiate the two and take the appropriate action. You can also add the BadApple annotation on flaky tests in the release branch for flaky tests that fail randomly while building the RC.

Once you reach the publish artifacts step, you'll need to wait 24hrs before moving on to the next step, so plan accordingly.

Please do the next RM a favor and complete all of the Post release steps in a timely manner. If you skip any of these steps, then the next RM may encounter weird failures in the release wizard that they may not understand the problem, esp. for new RMs. Report any issues you find in JIRA when doing the release so we can improve the release process.

Lastly, please add any additional advice you have for the next RM to this section.

  • No labels