This document describes the steps for building Taverna 2 as of 2008-12-09. The table below explains the steps that have to be done on each deployed module and the order in which the modules need to be deployed.
Set-up
You would normally do:
- Get a copy of the latest CVS repository from Sourceforge locally
- Create a local svn repository where you'll deploy stuff (e.g. /Users/alex/T2Build-2008-12-08/repository/) and check out from the rosalind's svn repository with:
The svn repository on rosalind is located in /local/svn and this is where you'll commit stuff from your local svn after deploying to in.
To have a look at that repository do:
- There is a web directory at rosalind located in /var/www/mygrid/maven/repository where you'll copy over the rosalind's svn repository after committing the changes in the local svn repository with:
This directory is visible from the Internet and is used by Taverna to download stuff it needs.
Other Useful Commands
- List all files starting from the current directory, then exclude lines containing words /target/, CVS and /bin/, and finally look for occurrences of the word 'SNAPSHOT' in the remaining files:
- Deploy whatever is in the current directory to the local svn repository located in /Users/alex/T2Build-2008-12-08/repository/:
- To see what was actually modified in the svn repository and make sure you are not updating something that is already there:
- To schedule all that has changed in the svn repository for committing:
- To commit all changes in the current directory to the svn repository
- To have maven check for missing or unused dependencies
- To create MD5 and SHA-1 checksums of files
Modules & Operations
| Module name | Stable POM version of the module |
Latest dependencies of the module |
Grep for SNAPSHOT | mvn clean install works? |
mvn deploy to the local svn repository (see command 2 above) |
svn add+commit to our svn repository on rosalind (see command 3 above) |
Commit stable POMs of the module and all changes to CVS | Tag stable module version in CVS | Update the module with new SNAPSHOT POMs | Grep for old versions in POMs and other files | mvn clean install works with new SNAPSHOT versions? | Commit new POMs and changes in CVS | Do svn update on the web version of repository (rosalind:/local/www/mygrid/maven/repository) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| utils/jedit-syntax |
2.2.2-taverna-2008-11-28 | None | None | Yes | Yes | Yes | Yes | jedit-syntax-2-2-2-taverna-2008-11-28 | jedit-syntax 2.2.2-taverna-SNAPSHOT | None | yes | yes | ||
| utils/lang | 0.4 | lang 0.4 |
None | yes |
Yes |
yes |
yes | lang-0-4 |
lang 0-5-SNAPSHOT |
None | yes |
yes |
yes |
|
| utils/raven-parent | 1.9 | raven 1.9 |
Changed LocalRepository, ApplicationRuntime |
yes |
yes |
yes | yes | raven-1-9 |
raven 1.10-SNAPSHOT |
None |
yes | yes | yes | |
| utils/spi-discovery-api | 0.4 |
raven 1.9 observer 0.4 |
None |
yes |
yes | yes | yes | spi-discovery-0-4 |
spi-discovery 0.5-SNAPSHOT 0.5-SNAPSHOT observer 0.5-SNAPSHOT raven 1.10-SNAPSHOT |
None |
yes |
yes |
yes | |
| taverna1.0 | 1.7.2 | raven 1.9 zaria 1.9 raven-log4j 1.9 arhetypes-perspective 1.0.1 archetypes-localworker 1.3 workflowlauncher 0.1.3 |
None (ignored jdepend-maven-plugin 2.0-beta-1-SNAPSHOT) |
yes | yes | yes | yes | taverna-1-7-2-0 | taverna 1.7.2.1-SNAPSHOT arhetypes-perspective 1.0.2-SNAPSHOT archetypes-localworker 1.4-SNAPSHOT workflowlauncher 0.1.4-SNAPSHOT Left old versions of: raven 1.9 zaria 1.9 raven-log4j 1.9 |
None | yes | yes | yes | |
| wsdl-generic |
1.3 |
taverna1.0 (only for tests) 1.7.2.0 |
None |
yes |
yes |
yes |
yes |
wsdl-generic-1-3 |
wsdl-generic-1-3-SNAPSHOT taverna 1.7.2.1-SNAPSHOT |
None |
yes |
yes |
yes | |
| t2platform | 0.2 | raven 1.9 |
None | yes | yes | yes | yes | t2platform-0-2 | t2platform 0.3-SNAPSHOT raven 1.10-SNAPSHOT |
None | yes | yes | yes | |
| t2reference | 0.2 | t2platform 0.2 |
None |
yes | yes | yes | yes | t2reference-0-2 | t2reference 0.3-SNAPSHOT t2platform 0.3-SNAPSHOT |
None | yes | yes | yes | |
| t2referene-testhelpers | 0.2 | t2reference-api 0.2 | None |
yes | yes | yes | yes |
t2reference-testhelpers-0-2 |
t2referene-testhelpers 0.3-SNAPSHOT t2reference-api 0.3-SNAPSHOT |
None |
yes | yes | yes | |
| t2reference-integration-tests | 0.2 | t2reference-api 0.2 t2platform 0.2 t2reference-core-extensions 0.2 t2reference-impl 0.2 t2reference-testhelpers 0.2 raven 1.9 |
None |
yes |
yes |
yes |
|
|
t2reference-integration-tests 0.3-SNAPSHOT t2reference-api 0.3-SNAPSHOT t2platform 0.3-SNAPSHOT t2reference-core-extensions 0.3-SNAPSHOT t2reference-impl 0.3-SNAPSHOT t2reference-testhelpers 0.3-SNAPSHOT raven 1.10-SNAPSHOT |
None |
yes |
yes |
yes | |
| t2reference-ui |
0.3 |
... |
None |
yes |
yes |
yes |
yes |
t2reference-ui-0-3 |
t2reference-ui 0.4-SNAPSHOT |
None |
yes |
yes |
yes | |
| t2core |
0.4 |
spidiscovery 0.4 raven 1.9 taverna1.0 1.7.2.0 t2security 0.4 (ref. to workflowmodel-api 0.4, workflowmodel-impl 0.4, t2reference-api 0.2, t2reference-impl 0.2, platform 0.2, raven 1.9, raven-log4j 1.9 from some xml files) |
None | yes | yes |
yes | yes |
t2core-0-4 | t2core 0.5-SNAPSHOT spidiscovery 0.5-SNAPSHOT raven 1.10-SNAPSHOT taverna1.0 1.7.2.1-SNAPSHOT t2security 0.5-SNAPSHOT (ref. to workflowmodel-api 0.5-SNAPSHOT, workflowmodel-impl 0.5-SNAPSHOT, t2reference-api 0.3-SNAPSHOT, t2reference-impl 0.3-SNAPSHOT, platform 0.3-SNAPSHOT, raven 1.10-SNAPSHOT, raven-log4j 1.10-SNAPSHOT from some xml files) |
yes | ||||
| security-profiles | 0.2 |
raven-parent/appconfig 1.9 |
None |
yes | yes | yes |
yes | security-profiles-0-2 | security-profiles 0.3-SNAPSHOT raven-parent/appconfig 1.10-SNAPSHOT |
yes |
yes |
yes | yes | |
| t2security-agents |
0.2 |
security-profiles 0.2 |
None |
yes | yes |
yes |
yes | t2security-agents-0-2 | t2security-agents-0-3-SNAPSHOT security-profiles 0.3-SNAPSHOT |
yes | yes |
yes |
yes | |
| credential-manager |
0.2 |
raven-parent/appconfig 1.9 t2security-agents 0.2 |
None | yes |
yes | yes | yes |
credential-manager-0-2 | credential-manager 0-3-SNAPSHOT raven-parent/appconfig 1.10-SNAPSHOT t2security-agents 0.3-SNAPSHOT |
yes |
yes |
yes |
yes | |
| t2workbench | 0.2 | credential-manager 0.2 ... change prelauncher in run.sh and run.bat |
None |
yes |
yes |
yes |
yes | t2workbench-0-2 | ... |
None |
yes |
yes |
yes | |
| derby-provenance |
0.1 |
t2core/provenanceconnector-impl 0.4 |
None |
yes |
yes |
yes |
yes |
derby-provenance-0-1 |
derby-provenance 0.2-SNAPSHOT t2core/provenanceconnector-impl 0.5-SNAPSHOT |
None |
yes |
yes |
yes |
|
| martservice |
0.7.1 |
None |
None |
yes |
yes | yes |
yes |
martservice-0-7-1 |
martservice 0.7.2-SNAPSHOT |
None |
yes |
yes |
yes | |
| t2activities |
0.4 |
martservice 0.7.1 ... |
None |
yes |
yes |
yes |
yes |
t2workbench-0-4 |
t2workbench 0.5-SNAPSHOT martservice 0.7.2-SNAPSHOT ... |
None |
yes |
yes |
yes | |
| t2workbench-extension |
0.2 |
t2workbench 0.2 t2activities 0.4 t2core 0.4 utils/lang/ui 0.4 utils/lang/observer 0.4 |
None |
yes |
yes |
yes |
yes |
t2workbench-extensions-0-2 |
t2workbench 0.3-SNAPSHOT t2activities 0.5-SNAPSHOT t2core 0.5-SNAPSHOT utils/lang/ui 0.5-SNAPSHOT utils/lang/observer 0.5-SNAPSHOT |
None |
yes |
yes |
yes |
Assemble the Application
After all the modules have been deployed, you have to make sure you have the tagged version of t2workbench (i.e. not the one with SHANPSHOT poms) - in this case it was tagged as t2workbench-0-2, as this is where the application assembly is taking place. Go to t2workbench/application and do:
This should build an application directory inside t2workbench/application/target with application-XXX-bin.zip. Copy it somewhere and unzip it - go inside the application-XXX dir and run it with run.sh/run.bat.
Create Release for Various OS Versions
Go to the Library/Application Support/taverna ... (on Mac OS) and copy the freshly downloaded repository (when starting the application for the first time) to the directory where you unzipped the above assembled zip. This way we ship the repository as well so it will not take so much time to start Taverna up for the first time.
Add README.txt.
Make sure splash screen is OK.
Change plugins-sites.xml to have the right url.
Rezip the whole directory where you unzipped application-XXX-bin.zip, now with the new repository:
- Linux/Unix: just create tar.gz file of the above application-XXX directory
- Windows: use NullSoft Scriptable Install System (NSIS) to create an executable zip.
- Mac OS: basically copy the previous .app template and change the prelauncher version and other bits in Info.plist, copy the new repository, conf, lib, etc. directories from application/target/application-XXXX-bin.dir/ and use Disk Utility to create a new disk image (had to create one with 150 MB to be big enought to hold the Taverna2.0.app) and then add the new .app to it and that's it. However, this does not create the fancy Application folder where user can just drag the app - see http://www.mygrid.org.uk/wiki/Mygrid/MacRelease
for instructions.