Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This document describes how to release Apache Kafka from trunk. 

It is a work in progress and should be refined by the Release Manager (RM) as they come across aspects of the release process not yet documented here.

NOTE: For the purpose of illustration, this document assumes that the version being released is 0.9.0 and the following development version will become 0.10.0.

...

Table of Contents

Prerequisites

  • Prepare release plan in the wiki, notifying the community the overall plan and goals for the release (For example: Release Plan 0.10.0)
  • Vote on release plan: Release manager should start a vote in dev@kafka.apache.org, asking the community to approve the release plan. 

No Format
To: dev@kafka.apache.org
Subject: [VOTE] Release plan - Kafka 0.10.0

...



We are starting the process to prepare for Kafka $release release. I have created release plan ($link) to cover the tasks under this release.

If you have any JIRA in progress and would like to include it in this release, please follow the process to do so.

Feel free to comment on the JIRA if you have any comments/suggestions.

Thanks,
$RM
  • Go over JIRA for the release and make sure that blockers are marked as blockers and non-blockers are non-blockers. This JIRA filter may be handy:

    No Format
    project = KAFKA AND fixVersion = 0.10.0.0 AND resolution = Unresolved AND priority = blocker ORDER BY due ASC, priority DESC, created ASC
  • It is important that between the time that the release plan is voted to the time when the release branch is created, no experimental or potentially destabilizing work is checked into the trunk. While it is acceptable to introduce major changes, they must be thoroughly reviewed and have good test coverage to ensure that the release branch does not start of being unstable. If necessary the RM can discuss if certain issues should be fixed on the trunk in this time, and if so what is the gating criteria for accepting them.

Cut Branches

Create Release Artifacts

...

  • Upload all artifacts, release notes, and docs to https://dist.apache.org/repos/dist/release/kafka (an svn repo, using Apache committer id/passwd)
  • 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.
  • Send out an announcement email. You will need to use your apache email address to send out the email (otherwise, it won't be delivered to announce@apache.org).
    • Log into people.apache.org with your apache id.
    • Include a paragraph in the announcement email like: "According to git shortlog <number_of_contributors> people contributed to this release: <contributors>" where:
      • number_of_contributors is determined via `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`)
      • contributors is determined via: `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' ',' | sed -e 's/,/, /g'`)
    • cat mail.txt|mail -s "[ANNOUCE] ..."  announce@apache.orgusers@kafka.apache.orgdev@kafka.apache.orgkafka-clients@googlegroups.com
  • Add the release data to https://reporter.apache.org/addrelease.html?kafka (must be a Kafka PMC member)

  Website update process:

  For new releases:

  • Git clone https://git-wip-us.apache.org/repos/asf/kafka-site.git
  • checkout the branch asf-site
  • The releaseTarGzAll target should auto-generate the configuration docs for broker/producer/consumer in ./core/build/distributions/kafka_2.10-0.9.0.0-site-docs.tgz. Untar the file in 090/.
  • Copy release javadoc to newly 090/.
  • Update documentation.html to include the new documentation link (090/documentation.html).
  • Update protocol.html to include the new protocol guide link (090/protocol.html).
  • Update downloads.html to include the new download links from mirrors and change last release to use archive.
  • 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).

...