...
- Remember: at least 3 days, 3 +1 from PMC members (committers are not enough!) and no -1.
Send a vote closing email:
No Format To: dev@kafka.apache.org Subject: [RESULTS] [VOTE] Release Kafka version 0.10.0.0 This vote passes with 7 +1 votes (3 bindings) and no 0 or -1 votes. +1 votes PMC Members: * $Name * $Name * $Name Committers: * $Name * $Name Community: * $Name * $Name 0 votes * No votes -1 votes * No votes Vote thread: http://markmail.org/message/faioizetvcils2zo I'll continue with the release process and the release announcement will follow in the next few days. $RM
- Create a new tag for the release, on the same commit as the voted rc tag and push it:
- Use "git show 0.10.0.0-rc6" to find the commit hash of the tag
- git tag -a 0.10.0.0 <commit hash>
- git push apache 0.10.0.0
- Merge the last version change / rc tag into the release branch and bump the version to 0.10.0.1-SNAPSHOT
- git checkout 0.10.0
- git merge 0.10.0.0-rc6
- Update version on the branch to 0.10.0.1-SNAPSHOT in the following places:
- KAFKA-REPO-DIR/gradle.properties
- KAFKA-REPO-DIR/streams/quickstart/java/pom.xml
- KAFKA-REPO-DIR/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml
- KAFKA-REPO-DIR/streams/quickstart/pom.xml
- KAFKA-REPO-DIR/tests/kafkatest/__init__.py (note: this version name can't follow the -SNAPSHOT convention due to python version naming restrictions, instead update it to 0.10.0.1.dev0)
- git commit -a
- git push apache 0.10.0
- Mark the version as released in Kafka JIRA (from JIRA administration panel, select versions and scroll mouse towards the end of the line for the particular version. From the dropdown list, select release and set the date).
- Upload all artifacts, release notes, and docs to https://dist.apache.org/repos/dist/release/kafka (a SVN repo, using Apache committer id/passwd):
- Only PMC members can upload to the `release` directory, so if the RM is not in the PMC, they can upload the files to https://dist.apache.org/repos/dist/dev/kafka instead and ask a PMC member to move them to the release directory
- svn co https://dist.apache.org/repos/dist/release/kafka kafka-release
- create a new directory for the release (for example kafka-release/0.10.0.0)
- copy the release artifacts from the latest RC (the ones who were in your people.apache.org directory) to the new release directory, but exclude the `javadoc` directory since we don't publish that anymore to https://dist.apache.org/repos/dist/release/kafka
- Add the directory to SVN: svn add 0.10.0.0
Make sure the KEYS file in the svn repo includes the committer who signed the release.
The KEYS must be in https://www.apache.org/dist/kafka/KEYS and not just in http://kafka.apache.org/KEYS.svn commit -m "Release 0.10.0.0"
- Go to https://repository.apache.org/#stagingRepositories, find the uploaded artifacts and release this (this will push to maven central)
- Wait for about a day for the artifacts to show up in apache mirror and maven central.
- In trunk update the following files with the current release number. This is needed for a feature as well as a bug-fix release
- KAFKA-REPO-DIR/gradle/dependencies.gradle
- KAFKA-REPO-DIR/tests/docker/Dockerfile
- KAFKA-REPO-DIR/tests/kafkatest/version.py
- KAFKA-REPO-DIR/vagrant/base.sh
- Upload the new release and kafka-stream-x.x.x-test.jar (can be found in the .release_work_dir created by the release.py script) to the S3 bucket "kafka-packages". For example:
- aws s3 cp kafka_2.12-3.0.0.tgz s3://kafka-packages
- aws s3 cp kafka_2.13-3.00.tgz s3://kafka-packages
- aws s3 cp kafka-streams-3.0.0-test.jar s3://kafka-packages
- Update these commands to use the current release version.
- If you don't have permission to run these commands, request on the dev mailing list for someone with access to run them for you
- Update the website:
- git clone https://gitbox.apache.org/repos/asf/kafka-site.git
- git checkout asf-site
- If it's a feature release:
- Update files (e.g. documentation.html, protocol.html, quickstart.html, intro.html) to include the link for the new version (e.g. 0100/documentation.html). The full list of files can be found by `grep "should always link the the latest"` and exclude those per-release files (e.g. ./10/documentation/streams/upgrade-guide.html)
- Verify that related html files (exlcluding per-release files) have been updated to use the new release version by doing `grep -A1 "should always link the the latest" . -Irn` and checking that the new feature version is used.
- Update files (e.g documentation.html, streams/quickstart.html) from the previous release (e.g current release is 2.8 so update files in the /27 folder) to change `'<!--//#include virtual="'...` to `'<!--#include virtual="...`. You can find the files by running `grep -R '<!--//#include virtual="' *` from the directory of the previous feature release. This kafka-site PR is an example of the changes that need to be made.
- Update downloads.html to include the new download links from mirrors and change last release to use archive. Also add a paragraph with a brief feature introduction for the release.
- Update index.html "Latest News" box
- git commit -am ".."
- git push origin asf-site
- Send out an announcement email. You will
- The announcement email should be sent to announce@apache.org, users@kafka.apache.org, dev@kafka.apache.org, and kafka-clients@googlegroups.com
- You need to use your apache email address to send out the email (otherwise, it won't be delivered to announce@apache.org).
- If you use gmail, you can configure it to send outbound mail from your apache address. Go to Settings → Accounts and Import → Send mail as:
- For other mail clients, see https://infra.apache.org/committer-email.html
- You also need to be subscribed to `kafka-clients@googlegroups.com` with your apache email address – otherwise it bounces back. Just send a message from your apache email to kafka-clients+subscribe@googlegroups.com and click `Join` in the confirmation email
- You can either use the release.py script to get the email contents or use the below template and instructions to construct it yourself:
- Run `./release.py release
- -email` script in the root of the kafka repository and follow the instructions to generate the announcement email template for the release to the mailing list.
Include a paragraph in the announcement email like: "According to git shortlog <number_of_contributors> people contributed to this release: <contributors>"- Copy the below template and fill in the sections such as the version, number-of-JIRAs, and contributor info, where:
- number
- -of
- -contributors
- = `git shortlog -sn --no-merges <previous_release_tag>..<current_release_tag> | wc -l` (eg `git shortlog -sn --no-merges 0.8.2.2..0.9.0.0 | wc -l`)
- list-of-contributors = `git shortlog -sn --no-merges <previous_release_tag>..<current_release_tag> | cut -f2 | tr '\n' ',' | sed -e 's/,/, /g'` (eg `git shortlog -sn --no-merges 0.8.2.2..0.9.0.0 | cut -f2 |
- sort --ignore-case | tr '\n'
- '
- ,
- '
- Log into people.apache.org with your apache id.
- | sed -e 's/,/, /g'`)
Check and update the Scala versions if necessary
note: you need to be subscribed to `kafka-clients@googlegroups.com` with your apache email address – otherwise it bounces back
Use the previously generated email template using `release.py` script (or) Use the below email template (maybe update Scala versions accordingly):
Code Block The Apache Kafka community is pleased to announce the release for Apache Kafka <release-number><version>. This is a bug fix release and it includes fixes and improvements from <#><number-of-JIRAs> JIRAs, including a few critical bugs. All of the changes in this release can be found in the release notes: https://www.apache.org/dist/kafka/<release-number><version>/RELEASE_NOTES.html You can download the source and binary release (Scala 2.11 and Scala 2.12) from: https://kafka.apache.org/downloads#<release-number>downloads#<version> --------------------------------------------------------------------------------------------------- Apache Kafka is a distributed streaming platform with four core APIs: ** The Producer API allows an application to publish a stream records to one or more Kafka topics. ** The Consumer API allows an application to subscribe to one or more topics and process the stream of records produced to them. ** The Streams API allows an application to act as a stream processor, consuming an input stream from one or more topics and producing an output stream to one or more output topics, effectively transforming the input streams to output streams. ** The Connector API allows building and running reusable producers or consumers that connect Kafka topics to existing applications or data systems. For example, a connector to a relational database might capture every change to a table. With these APIs, Kafka can be used for two broad classes of application: ** Building real-time streaming data pipelines that reliably get data between systems or applications. ** Building real-time streaming applications that transform or react to the streams of data. Apache Kafka is in use at large and small companies worldwide, including Capital One, Goldman Sachs, ING, LinkedIn, Netflix, Pinterest, Rabobank, Target, The New York Times, Uber, Yelp, and Zalando, among others. A big thank you for the following <#><number-of-contributors> contributors to this release! <list-of-contributors> We welcome your help and feedback. For more information on how to report problems, and to get involved, visit the project website at https://kafka.apache.org/ Thank you! Regards, $RM
- Once the release is announced, the PMC member who committed the release artifacts to the SVN dist repository should add the release data to https://reporter.apache.org/addrelease.html?kafka (they will get a notification asking them to do this after the svn commit).
- PMC member should double check if older releases should be archived (cf. http://www.apache.org/legal/release-policy.html#when-to-archive). This includes changing the relevant download links in the site's `download.html` to use the archive link.
- Cf.
andJira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-6222 Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-6223
- Cf.
- File a JIRA for updating compatibility/upgrade system tests to test the newly released version. Example PRs:
- Broker and clients: https://github.com/apache/kafka/pull/6794
- Streams: https://github.com/apache/kafka/pull/6597/files
- For major releases, publish the blog post previously shared with the dev list.
...