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:
| Number | Component | Directory | Executable |
| 1 | Pom | /pom | no |
| 2 | Project Directory | /pd | no |
| 3 | Element Store | /es | yes |
| 4 | Model | /model | no |
| 5 | Commons | /commons | no |
| 6 | yes | ||
| 7 | Element Store Admin | /esadmin | yes |
| 8 | Rational Analysis Tool | /rat | yes |
| 9 | Request | /req | yes |
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
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
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"