mkdir 0.8.2_RELEASE
cd 0.8.2_RELEASE/
git clone https://git-wip-us.apache.org/repos/asf/kafka.git kafka_0.8.2-src
cd kafka_0.8.2-src/
git checkout -b 0.8.2 origin/0.8.2
Go to JIRA, select roadmap from left panel, click on "release notes" next to the release version and prepare/format the txt release notes (configure to change from html)
git tag -a 0.8.2.0
git push --tags
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)
/vagrant/scripts/sign.sh kafka-0.8.2-src.tgz
( gpg --armor --output kafka-0.8.2-src.tgz.asc --detach-sig kafka-0.8.2-src.tgz
gpg --print-md MD5 kafka-0.8.2-src.tgz > kafka-0.8.2-src.tgz.md5
gpg --print-md SHA1 kafka-0.8.2-src.tgz > kafka-0.8.2-src.tgz.sha1
gpg --print-md SHA512 kafka-0.8.2-src.tgz > kafka-0.8.2-src.tgz.sha2 )
Setup another clean room
You should see valid signatures and no errors, if errors go back
sudo add-apt-repository ppa:cwchien/gradle
sudo apt-get update
sudo apt-get install gradle
make sure JDK 6 is installed if Kafka version <= 0.8.2.x, otherwise JDK 7 should be installed, setup your gradle.properties correctly (see README.md)
Prepare java and scala docs.
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
Check sbt
Voting:
Verify for voting:
gpg --import KEYS (KEYS can be obtained from http://kafka.apache.org/KEYS
)If need to roll a new RC
Post vote todo (after the vote passes):
Website update process:
For major releases:
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
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
19) create file RELEASE_NOTES.html
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