FOray Users
Module Users

FOray Dev: Release Mechanics


This page is a checklist of things that should be done for each code release.


  1. Make sure all tests pass.
  2. Make sure that org.foray.core.Application.getVersion() has the correct version number.
  3. Make sure that the build script build-common has the correct value for the property "version".
  4. Update the release notes. Commit, but don't publish yet.
  5. Lock the repository or at least make a note of the repository revision number which should be tagged: _________________.


  1. Run the "distribution" target of the build script. The distributable output should be in build/distribution.
  2. The output should contain three files:
    • foray-[version]
    • foray-[version]
    • foray-[version]
  3. Run the shell script. This script looks for potential problems in the distribution files. If any problems are reported, fix them before proceeding.
  4. Unzip the "bin-all" distribution file, and run both the foray-test.bat batch file and shell script to ensure basic runnability.


  1. Tag the repository, by copying the trunk revision to tags/rel_[revision], where [revision] is the id of the release being created, periods being converted to underscores. For example, for the 1.0 release, the trunk revision should be copied to "tags/rel_1_0". Enter the name of the tag here: _________________________.
  2. Unlock the repository, if it was locked above.
  3. Upload distribution file to sourceforge.
  4. Download releases and make sure downloaded files are identical to uploaded files.
  5. Publish website to get the new release notes updated.
  6. Announce the release at:
    1. The foray-announce (foray-announce at, foray-developer (foray-developer at, and foray-support (foray-support at mailing lists.
    4. Add "News" item to the SourceForge system announcing the release.
    5. Consider adding "News" item to the project home page.
  7. Update org.foray.core.Application.getVersion() and the build.common.xml "version" property to the next release level, with a "-dev" suffix.