Releasing Sysiphus

We use the maven2 Release Plugin to create releases. Each Sysiphus component like the ElementStore, the Model Layer, or RAT gets released independently. This site describes the main commands to create a release. As the different Sysiphus components depend on each other it is useful to release them in a certain order:

NumberComponentDirectoryExecutable
1Pom/pomno
2Project Directory/pdno
3Element Store/esyes
4Model/modelno
5Commons/commonsno
6Mail/mailyes
7Element Store Admin/esadminyes
8Rational Analysis Tool/ratyes
9Request/reqyes

Notes: * To be able to release you need a settings file in your local Maven 2 repository for authorization. * It might be neccessary to increase the memory available to Maven by adding an environment variable MAVEN_OPTS and setting it to -Xmx512M

1. Prepare the component for the release

  • 1. Make sure to update any revision number dependent code (e.g. ES: DBUgraders)
  • 2. Commit or remove all local changes of a component. The release does not work if you have changes in your local working space.
  • 3. All components must not depend on any jar library that is in a SNAPSHOT version. The release does not succeed with SNAPSHOT dependencies. Change the dependencies to the latest released version. You also need to change the parent pom dependency.
  • 4. Commit the modified pom.xml

2. Create the SCM release preparation

The command mvn release:prepare changes the version of the component's pom to the next release and creates a new release tag in the svn repository. If you do a beta release, add a "b" to the version number (x.x.xb), otherwise you can use the defaults.

If you have to change anything after the release-prepare, you have to erase the created TAG for this component in the svn repository. Also the default version numbers will be wrong and you need to enter them manually.

You can dry run the preparation with the command mvn release:prepare -DdryRun=true. If you want to cleanup the local workspace from the changes, use mvn release:clean. You should not run cleanup if you want to invoke mvn release:perform

3. Perform the release

The next step checks out the complete source of the component from the svn repository in the release version. The tag was created with mvn release:prepare. Then, the code is compiled and packaged, depending on the components setting. In general, one jar file gets created for the components compiled classes, one jar file for the source code and one jar file containing the javadoc. The result is uploaded to the sysiphus maven repository.

Use mvn release:perform to create the release.

If you want to include the executable application in the sysiphus repository, so that the executable applications can be downloaded use the command

mvn release:perform -Dgoals="install assembly:attached deploy site-deploy"

And for Request: mvn release:perform -Dgoals="install package deploy site-deploy"

4. Update the downloads webpage for all downloadable components