Committer documentation

This document summarizes information relevant to Storm committers. It includes information about the Storm release process.


Release process

Preparation

Ensure you can log in to http://repository.apache.org. You should use your Apache ID username and password.

Install an svn client, and ensure you can access the https://dist.apache.org/repos/dist/dev/storm/ and https://dist.apache.org/repos/dist/release/storm/ repositories. You should be able to access these with your Apache ID username and password.

Ensure you have a signed GPG key, and that the GPG key is listed in the Storm KEYS file at https://dist.apache.org/repos/dist/release/storm/KEYS. The key should be hooked into the Apache web of trust. You should read the Apache release signing page, the release distribution page, as well as the release publishing and release policy pages.

Setting up a vote

  1. Run mvn release:prepare followed mvn release:perform on the branch to be released. This will create all the artifacts that will eventually be available in maven central. This step may seem simple, but a lot can go wrong (mainly flaky tests).

  2. Once you get a successful maven release, a “staging repository” will be created at http://repository.apache.org in the “open” state, meaning it is still writable. You will need to close it, making it read-only. You can find more information on this step here.

  3. Run mvn package for storm-dist/binary and storm-dist/source to create the actual distributions.

  4. Sign and generate checksums for the *.tar.gz and *.zip distribution files.

  5. Create a directory in the dist svn repo for the release candidate: https://dist.apache.org/repos/dist/dev/storm/apache-storm-x.x.x-rcx

  6. Run dev-tools/release_notes.py for the release version, piping the output to a RELEASE_NOTES.html file. Move that file to the svn release directory, sign it, and generate checksums.

  7. Move the release files from Step 4 and 6 to the svn directory from Step 5. Add and commit the files. This makes them available in the Apache staging repo.

  8. Start the VOTE thread. The vote should follow the ASF voting process.

Releasing if the vote succeeds

  1. svn mv https://dist.apache.org/repos/dist/dev/storm/apache-storm-x.x.x-rcx https://dist.apache.org/repos/release/dev/storm/apache-storm-x.x.x. This will make the release artifacts available on dist.apache.org and the artifacts will start replicating to mirrors.

  2. Go to http://repository.apache.org and release the staging repository

  3. Wait at least 24 hrs. for the mirrors to catch up.

  4. Check out the storm-site repository, and follow the README to generate release specific documentation for the site. Compose a new blog post announcement for the new release. Update the downloads page. Finally commit and push the site as described in the storm-site README to publish the site.

  5. Announce the new release to dev@storm.apache.org, user@storm.apache.org, and announce@apache.org. You will need to use your @apache.org email to do this.

  6. Delete any outdated releases from the https://dist.apache.org/repos/dist/release/storm/ repository. See when to archive.

  7. Delete any outdated releases from the storm-site releases directory, and republish the site.

  8. Tweet, promote, celebrate. ;)

Cleaning up if the vote fails

  1. Go to http://repository.apache.org and drop the staging repository.

  2. Delete the staged distribution files from https://dist.apache.org/repos/dist/dev/storm/