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.10.0.0 and the following development version will become 0.10.1.0.


Prerequisites

Cut Branches

Create Release Artifacts

Create a release tag - because our release branch is still 0.10.0.0-SNAPSHOT but our release artifact needs to be 0.10.0.0, we'll make the change in a tag:

Prepare a workspace:

Prepare a public release staging area:

Check NOTICE and LICENSE files

Update version number

Prepare release notes

Now make sure the log commit is the same of the tag you are sending out and that you checked out

fatal: Not a git repository (or any of the parent directories): .git

Now prepare the source (after getting your keys local to the box)

Validate the signatures:

You should see valid signatures and no errors, continue.

Prepare java and scala docs.

Make sure all the binary artifacts, release notes, java and scala doc are exposed through your home.apache.org URL.

Go drop whatever staging repository may be in the maven repo

              mavenUrl=https://repository.apache.org/service/local/staging/deploy/maven2
              mavenUsername=your-apache-id
              mavenPassword=your-apache-passwd
              signing.keyId=your-gpgkeyId
              signing.password=your-gpg-passphrase
              signing.secretKeyRingFile=/Users/your-id/.gnupg/secring.gpg

  Website update process:

  For new releases:

Voting:

Verification for voting:

If need to roll a new RC

 After the vote passes: