How to release

This page documents the Apache OODT release process. Hold on to your butts.


  1. 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.
  2. 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.
  3. Make sure you have your PGP key entered into
    1. Your KEYS will then be present in: 
    2. Double check that your key is present in KEYS file at 
  4. Update CHANGES.txt to reflect release date
  5. Update the RADIX script to pull the new version of OODT you are about to release. e.g., for 0.9:

    Update RADIX
    mvn archetype:generate -DarchetypeGroupId=org.apache.oodt \
        -DarchetypeArtifactId=radix-archetype -DarchetypeVersion=1.0 \ // update -DarchetypeVersion value
        -Doodt=0.9 -DgroupId=com.mycompany \                  // update -Doodt value
        -DartifactId=oodt -Dversion=0.1
  6. Commit these changes
  7. Verify RAT license checks

    mvn -Paudit package
  8. if all well from preceding step then move onto next step, else let folks know and file JIRA issues; fix them (wink)
  9. Test out the code and make sure tests pass
  10. mvn test && cd agility && python test
  11. 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 (smile) NOTE: if you are following these instructions word for word (e.g.: building on 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! (smile)
  12. Git checkout latest master


    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". You may also need to set MAVEN_OPTS instead to "-Xmx1024m -XX:MaxPermSize=256m" (seen with the 0.7 release on Mac OS X 10.8.5, Java build 1.7.0_25-b15 and Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500).

  13. mvn release:prepare

    - 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.

  14. mvn release:perform

    (this will create a X.Y release tag in Git that you can use for VOTE'ing in your VOTE email. It will also create a staged repository at Check the staged repository and if all looks well, close the repository, but don't release it yet).


    Per we have new RC upload guidance!

  15. svn co
  16. cd oodt
  17. svn add the <version> tag CHANGES.txt file (and rename it with the appropriate <version>) there
  18. mkdir tmp
  19. 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> and copy it to tmp.
  20. 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).
  21. cd tmp
  22. unzip oodt-<version> and repackage it as apache-oodt-<version>
  23.  unzip oodt-<version>; mv oodt-<version>-source-release apache-oodt-<version>-src ; zip -r apache-oodt-<version> apache-oodt-<version>-src
  24. Add sha256 and sha512 checksums for the file. Suffix each checksum with .sha256  or .sha512  accordingly. See for more information

  25. svn add .
  26. svn commit
  27. Send an email like the following (with subject line: VOTE Apache OODT <version> release) to

    Hi Folks,
    I have posted a [Nth] release candidate for the Apache OODT <version> release. The
    source code is at:
    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:
    The release was made from the OODT <version> tag (r<number>) at:<version>/
    A staged Maven repository is available at:
    <paste link to link here>
    Please vote on releasing these packages as Apache OODT <version>. The vote is
    open for at least 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...
    <Signed Release Manager>
    P.S. Here is my +1.
  28. If VOTE passes with 3+ OODT PMC votes, move onto next step. If VOTE does not pass, repeat steps 3-on until it does.
  29. Publish to PyPi

    cd $OODT/agility
    python egg_info -Rb '' sdist register upload
  30. Publish to Maven Central
    visit and click Release on your staged repository.
  31. svn move source zip, CHANGES file, checksums (sha1, and md5), and keysign file (asc) from to
  32. As per, we should include the KEYS  file in the mirror sites. Therefore, add and commit the KEYS  file to the directory.
  33. Wait for versions to hit the mirrors (hint: keep checking until you see something).
  34. 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 email address or the email will bounce from the announce list. Gmail forwarding can help here and is a snap to set up ( It's even easier then the instructions there as it will recognize your email address and default to Apache settings. It is important to include a description of what OODT is as well as a link to the updated DOAP within the release announcement, this is so others know what OODT is.
  35. Update the website with instructions from How to Publish the OODT Web Site
  • No labels