0) Make sure you are using JDK 6
1) Your Key needs to be signed into the KEYS file http://svn.apache.org/repos/asf/kafka/KEYS
2) clone the repository to kafka-X.Y.Z-src
3) checkout the branch to release if releasing not off trunk
4) java -jar ../../apache-rat-0.8/apache-rat-0.8.jar (forgot to-do this in rc1,2,3 will do before running 4)
5) tag the branch and append (git tag -a releaseVersion) the "release notes" from JIRA
6) git push --tags
7) now get rid of git, rm -fr .git/* && rmdir .git && rm -f .gitignore
8) cd ..
9) tar -czvf kafka-X.Y.Z-src.tgz kafka-X.Y.Z-src/*
10) sign the src
- gpg --print-md MD5 kafka_X.Y.Z-src.tgz > kafka_X.Y.Z-src.tgz.md5
- gpg --armor --output kafka_X.Y.Z-src.tgz.asc --detach-sig kafka_X.Y.Z-src.tgz
- gpg --print-md SHA1 kafka_X.Y.Z-src.tgz > kafka_X.Y.Z-src.tgz.sh1
11) scp kafka_X.Y.Z-src* to a folder on a web server
12) ssh in a virtual machine, been using http://vagrantup.com
13) wget the file
14) tar -xvf kafka-X.Y.Z-src.tgz
15) verify signings and hashes
16) run quick start
17) cd kafka-X.Y.Z-src && ./sbt release-tar
18) sign the binary
- gpg --print-md MD5 kafka_2.N.0-X.Y.Z.tar.gz > kafka_2.N.0-X.Y.Z.tar.gz.md5
- gpg --armor --output kafka_2.N.0-X.Y.Z.tar.gz.asc --detach-sig kafka_2.N.0-X.Y.Z.tar.gz
- gpg --print-md SHA1 kafka_X.Y.Z-src.tgz > kafka_X.Y.Z-src.tgz.sh1
19) create file RELEASE_NOTES.html
- add the html version of release notes
vi RELEASE-NOTES.html
Go to Apache JIRA and click on the version X.Y.Z
(i.e. https://issues.apache.org/jira/browse/KAFKA/fixforversion/12317243)
Click Release Notes
20) upload files to directory for voting
21) ./sbt "++2.8.0 publish"
22) ./sbt "++2.8.2 publish"
23) ./sbt "++2.9.1 publish"
24) ./sbt "++2.9.2 publish"
25) ./sbt "++2.10.1 publish"
26) run https://github.com/mumrah/kafka-ivy and see where we are
27) close nexus staging if everything checks out
28) call VOTE
29) if VOTE failure then DROP staged artifacts from Nexus, if VOTE success then RELEASE artifacts to Maven Central
30) VOTE Succeeded, more to-dos
a) in https://dist.apache.org/repos/dist copy new artifacts into X.Y.Z folder and remove previous releases folder (all older releases are in archive)
b) change site to include the new download link from mirrors and change last release to use archive
c) send ANNOUNCE to apache, users and dev lists