...
Send email announcing the new branch:
No Format To: dev@kafka.apache.org Subject: New release branch 0.10.0 Hello Kafka developers and friends, As promised, we now have a release branch for 0.10.0 release (with 0.10.0.0 as the version). Trunk has been bumped to 0.10.1.0-SNAPSHOT. I'll be going over the JIRAs to move every non-blocker from this release to the next release. From this point, most changes should go to trunk. *Blockers (existing and new that we discover while testing the release) will be double-committed. *Please discuss with your reviewer whether your PR should go to trunk or to trunk+release so they can merge accordingly. *Please help us test the release! * Thanks! $RM
Monitor Tests
In between the branch cut and the RC cut, it's good to set up and keep an eye on the tests.
At the time of RC publishing, you will be asked to ensure you get a green run of integration tests & system tests. Due to flakes, this isn't always possible - so it's necessary to triage the tests & recognize what are flakes.
The earlier you do this, the easier it'll be later - hence this paragraph suggests you set them up now after the branch cut & start monitoring.
- The link for unit/integration tests: `https://ci-builds.apache.org/job/Kafka/job/kafka/job/{MAJOR_RELEASE_VERSION}/` - e.g https://ci-builds.apache.org/job/Kafka/job/kafka/job/3.7/
- System tests: https://jenkins.confluent.io/job/system-test-kafka/job/3.7/<MAJOR_RELEASE_VERSION>/
- Notable, this is hosted by Confluent.
- If you, the RM, do not work for Confluent - contact someone from the company to set up the branch.
- If you, the RM, do work for Confluent - set up the branch following the internal instructions in the wiki.
- Notable, this is hosted by Confluent.
Create Release Artifacts
- Until
is complete, you will have to manually verify the binary artifact's LICENSE file matches its own packaged dependencies. See that ticket for an example of how to do this.Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-12622 - Set environment variable `
PUSH_REMOTE_NAME`
to the remote you want to push to, e.g.,export PUSH_REMOTE_NAME=origin
(default isapache-github
). - Run the `release.py` script in the root of the kafka repository and follow the instructions. NOTE that if you are releasing a version prior to 1.0.x, you need to have minor edits on the script to change the three-digits pattern checking to four-digits pattern.
- This script will created a hidden directory called .release_work_dir. Don't delete this as you may need the contents later (for example the kafka-stream-x.x.x-test.jar)
- Troubleshooting:
- If any step fails, make sure you have everything set up as described in the Prerequisites section and are using the correct passphrase for each config. When in doubt, remove or comment out anything in your settings that is not specifically needed for the release – for example, alternate profiles or unrelated servers, mirrors, etc in your `
~/.m2/settings.xml
` or `~/.gradle/gradle.properties
` - Make sure you're running the script with Python3: sadly Python versions are not well managed especially on Macs, so you may want to explicitly invoke it with
$python3 release.py
- Install any missing packages with
pip3
, for example$pip3 install jira
– if pip can't find this, verify it's looking in the right repo by commenting out/removing anyindex-url
settings in your~/.pip/pip.conf
- Try setting an explicit path for both Java8 and Java17, rather than relying on your JAVA_HOME since this may be modified in the background by other applications (such as IDEs)
- If any step fails, make sure you have everything set up as described in the Prerequisites section and are using the correct passphrase for each config. When in doubt, remove or comment out anything in your settings that is not specifically needed for the release – for example, alternate profiles or unrelated servers, mirrors, etc in your `
...