See also How To Contribute for more background on building Whirr.
TODO: These instructions need updating to reflect http://apache.org/dev/release-signing.html regarding i) key length, ii) signature strength.
First time as a release manager.
- Generate PGP code signing keys
- Ensure that your PGP signing keys are available in: http://svn.apache.org/repos/asf/whirr/dist/KEYS More details can be found here.
- Copy the new KEYS file to the release folder /www/www.apache.org/dist/whirr on people.apache.org
If you are not already a member of the Web Of Trust (WOT) it would be a good idea to do so. (contact one of the prior release managers, e.g. Tom, Patrick, etc...). You can read more about key signing here.
You need to be a member of the "incubator" unix group on people.apache.org. Ask for help on the incubator general@ list. Here's an example http://bit.ly/9Wkdzg
Ensure that you have setup your ssh keys on people.apache.org, otherwise you'll have to enter your login password a number of times (best use ssh-agent for this as well). A good overview of this process can be found here (ssh-copy-id and ssh-agent in particular)
Create a Release Series Branch
TODO: Update to use git the next time a new release series is created.
This only needs doing if this is the first release in a series (X.Y.0).
- Update CHANGES.txt in trunk to replace
Trunk (unreleased changes)with
Release X.Y.0 - YYYY-MM-DD. Commit:
- Create a branch for the release series:
- Add back
Trunk (unreleased changes)to CHANGES.txt in trunk.
- Bump the version number in trunk (the update-versions script mangles the whitespace in the root XML element):
- Bump the version in src/site/xdoc/index.xml.
- Bump the version in src/site/xdoc/whirr-in-5-minutes.xml.
- Bump the version in src/site/site.xml.
- Commit these changes to trunk.
- Checkout the release branch
Update the Release Branch
The version number in the release branch ends in
-SNAPSHOT, but we need to remove this for the release. For example,
0.1.0-SNAPSHOT needs to be changed to
- Fix the version numbers in src/site/xdoc/index.xml, src/site/xdoc/whirr-in-5-minutes.xml, src/site/site.xml.
Run all the unit and integration tests (which means you should have cloud credentials to run on a cloud provider) with the following:
Generate the Release Notes
JIRA has the ability to generate release notes automatically (this is why it is so important to keep the fix version number accurate).
Manually check this list for accuracy! I've repeatedly seen closed bugs that were not fixed (i.e., duplicate) marked with a fix version, so that they incorrectly show up in this list. Find those, edit them to remove the fix release (only actually fixed bugs should have a fix release) and re-run the report.
Select the correct version, in HTML format.
Paste the notes to the top of src/site/xdoc/release-notes.xml. Check this into trunk and the branch.
Wrap the title ("Release Notes - Whirr - Version X.Y.Z") inside an <h1> element.
Build and Deploy Artifacts
Create a maven settings file ~/.m2/settings.xml with the following content:
Build the artifacts:
The following command deploys the artifacts, checksums, and signatures (you will need to enter a GPG passphrase) to the Apache Staging repo.
If this step fails with an Access denied error check that you have the required permissions on Nexus.
Login to https://repository.apache.org using your Apache credentials. Click on Staging on the left. Then click on org.apache.whirr in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Select this repository and click Close. This will close the repository from future deployments and make it available for others to view.
Copy Release Artifacts
The artifacts that end up in the distribution directory are the source and binary distributions (along with their checksums and signatures), so they need to be copied from the Maven repo to the release directory on people.apache.org so folks can vote on them:
TODO: update the instructions, the artifacts should be placed in a subdirectory rather than all at the toplevel
Now we need to create the binary distribution checksums and signatures (since Maven doesn't currently do this - if anyone know how to fix this, then please let us know!):
Download the artifacts and try out some of these things:
- Whirr in 5 minutes or the quick start instructions
- Check the MD5 checksums
- Licensing check: (download RAT and run
java jar apache-rat*.jaron the Whirr tarballs. Known violations include generated files (e.g. docs), .confluence files, .json files, and a few plain text files like CHANGES.txt.
Commit and Tag
Commit changes in the branch and create a release tag:
Run the Vote
Run the vote on the dev@whirr.
Here is an example email:
The release needs 3 +1 votes from the PMC.
Assuming the vote passes, the release can be rolled out as follows:
Move Artifacts into Place
This step makes the artifacts available on the mirrors.
The last line is to remove the previous version, since only the most recent version on a particular branch should be in the dist directory (older versions are archived automatically, see http://archive.apache.org/dist/incubator/whirr/ and http://www.apache.org/dev/mirrors.html).
Log in to https://repository.apache.org, click on Staging on the left. Select the repository that you closed earlier, and click Release, using a description like "Apache Whirr X.Y.Z artifacts". This will make the artifacts publicly available.
Build and deploy documentation
TODO: this section needs updating following the change to svnpubsub in WHIRR-685. See the "Build and Deploy Site" section below for guidance.
Add the Next Release to JIRA
Add the next version number (e.g. 0.2.0 after 0.1.0) to JIRA using this
In JIRA mark the released version as "released" on the "manage versions" page. Be sure to fill in a date if not already specified.
Wait 24 Hours
It takes up to 24 hours for all the mirrors to sync, so don't announce the new release just yet.
Build and Deploy Site
Update the top level site by checking out https://svn.apache.org/repos/asf/whirr/site (note that this is still in svn) and editing src/site/site.xml to update the version number. Then type:
Open the locally-generated website in your browser and check it looks OK. When you are happy with it, type
Announce the Release
TODO: Add a news section to the website.
Send an email to email@example.com (the from: address must be @apache.org). E.g.