How to release
This page documents the Apache OODT release process. Hold on to your butts.
Steps
- Create a new release in JIRA. If you do not have permissions to do so just ask to be assigned privileges on the mailing list or in IRC.
- Push off all open issues to the next release; any critical or blocker issues should be resolved on mailing list. Discuss any issues that you are unsure of on the mailing list.
- Update KEYS file in current trunk, make sure that you create an Apache Key. If you don't have a key already create one by following http://www.apache.org/dev/openpgp.html#generate-key
- Update CHANGES.txt to reflect release date
- Verify RAT license checks
- (RAT test)
mvn -Paudit package
- if all well from preceding step then move onto next step, else let folks know and file JIRA issues; fix them
- Test out the code and make sure tests pass
mvn test && cd agility && python setup.py test
- if all well from preceding step, run mvn clean, and proceed to the mvn release:prepare step, else file JIRA issues against <version> in JIRA and let folks known on dev list; fix them NOTE: if you are following these instructions word for word (e.g.: building on people.apache.org) and get lots of File Manager errors, it could be from the dreaded "mvn can't write to /tmp" problem. If you can run the above commands on a copy checked out locally (i.e.: on a machine where you're sure maven has write access to the /tmp directory), and it builds, then consider the above step to have passed!
- SVN checkout latest trunk
Warning
Make sure to set your MAVEN_OPTS environment variable before running release:prepare and release:perform. You'll want to extend its memory to the following settings "-Xms128m -Xmx256m"
- - answer all questions yes e.g., "is version <version> without the -SNAPSHOT" except for the one about the tags directory. do not accept the default value, change it to <version>, e.g, if it's 0.5, then change it from oodt-0.5 to 0.5.
mvn release:prepare
- (this will create a X.Y release tag in SVN that you can use for VOTE'ing in your VOTE email. It will also create a staged repository at http://repository.apache.org. Check the staged repository and if all looks well, close the repository, but don't release it yet).
mvn release:perform
"We have a NEW RC artifact upload process!"
Per http://www.apache.org/dev/release.html#upload-ci we have new RC upload guidance!
- svn co https://dist.apache.org/repos/dist/dev/oodt/
- cd oodt
- svn add the <version> tag CHANGES.txt file (and rename it with the appropriate <version>) there and also svn the <version> tag KEYS file
- mkdir tmp
- copy the source zip file from target/checkout/target directory in the same checkout where you run mvn release:perform (it's usually named oodt-<version>-source-release.zip) and copy it to tmp.
- Grab the oodt-<version>.pom file and its associated ASC signature. svn add the pom and the pom's ASC file. Don't add the zip yet (see below).
- cd tmp
- unzip oodt-<version>source-release.zip and repackage it as apache-oodt<version>-src.zip
unzip oodt-<version>-source-release.zip; mv oodt-<version>-source-release apache-oodt-<version>-src ; zip -r apache-oodt-<version>-src.zip apache-oodt-<version>-src
- create yourself a script called "apache-sign-binsrc.tcsh"
#!/bin/tcsh foreach f (*.tar.gz *.zip) gpg --armor --output $f.asc --detach-sig $f openssl md5 $f > $f.md5 openssl sha1 $f > $f.sha1 end
- run apache-sign-binsrc.tcsh on your tmp directory.
- svn add .
- svn commit
- Send an email like the following (with subject line: VOTE Apache OODT <version> release) to dev@oodt.apache.org:
Hi Folks, I have posted a [Nth] release candidate for the Apache OODT <version> release. The source code is at: https://dist.apache.org/repos/dist/dev/oodt/ For more detailed information, see the included CHANGES.txt file for details on release contents and latest changes. The release was made using the OODT release process, documented on the Wiki here: https://cwiki.apache.org/confluence/display/OODT/Release+Process The release was made from the OODT <version> tag (r<number>) at: http://svn.apache.org/repos/asf/oodt/tags/<version>/ A staged Maven repository is available at: <paste link to repository.apache.org link here> Please vote on releasing these packages as Apache OODT <version>. The vote is open for the next 72 hours. Only votes from OODT PMC are binding, but folks are welcome to check the release candidate and voice their approval or disapproval. The vote passes if at least three binding +1 votes are cast. [ ] +1 Release the packages as Apache OODT <version> [ ] -1 Do not release the packages because... Thanks! <Signed Release Manager> P.S. Here is my +1.
- If VOTE passes with 3+ OODT PMC votes, move onto next step. If VOTE does not pass, repeat steps 3-on until it does.
- Create a maintenance branch version https://svn.apache.org/repos/asf/oodt/branches/<version>. This should be created from the VOTEd on tag.
- Publish to PyPi
cd $OODT/agility
python setup.py egg_info -Rb '' sdist register upload
- Publish to Maven Central
visit repository.apache.org and click Release on your staged repository. - svn move source tarball, KEYS file, CHANGES file, checksums (sha1, and md5), and keysign file (asc) from https://dist.apache.org/repos/dist/dev/oodt/ to https://dist.apache.org/repos/dist/release/oodt/
- Wait for versions to hit the mirrors (hint: keep checking http://www.apache.org/dyn/closer.cgi/oodt until you see something).
- Once release hits send announcement email to announce@a.o and dev@oodt.a.o and user@oodt.a.o. This needs to be done from your @apache.org email address or the email will bounce from the announce list. Gmail forwarding can help here and is a snap to set up (http://gmailblog.blogspot.com/2009/07/send-mail-from-another-address-without.html). It's even easier then the instructions there as it will recognize your email address and default to Apache settings.