r4 - 04 Oct 2007 - 15:06:06 - StianSoilandYou are here: myGrid wiki >  Mygrid Web  > BuildingTaverna > ReleaseProcedure

ReleaseProcedure

How to build and publish a release of Taverna.

This is not the real procedure, ask Stuart for the real details. This is a rough outline over what we have to do:

  • Update manual for changes and new features, including version numbers
  • Tag HEAD as Root-Taverna-1-6-2 (Eclipse might be dodgy on this, retry a few times or increase the CVS timeout value)
  • Make a new branch in CVS, Taverna-1-6-2 based on tag Root-Taverna-1-6-2
  • Eclipse should now have switched to the branch for you
  • Update absolutely all version numbers in pom.xml, profiles and source code for the branch.
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -name pom.xml) ; 
do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done

# What's left with old version number? Ignore compiled binaries
: stain@mira ~/Documents/workspace/taverna1.x;grep -ri 1.6-SNAPSHOT . | grep -v Binary | grep -v target | grep -v /bin
./examples/workflowlauncher/src/main/java/net/sf/taverna/example/WorkflowLauncherWrapper.java:  public static final String TAVERNA_BASE_VERSION = "1.6-SNAPSHOT";
./raven/src/main/java/net/sf/taverna/raven/repository/impl/LocalRepository.java:        private final String RAVEN_VERSION="1.6-SNAPSHOT";
./src/main/resources/workbench/conf/raven.properties:raven.loader.version = 1.6-SNAPSHOT
./src/main/resources/workbench/conf/raven.properties:raven.profilelist=http://www.mygrid.org.uk/taverna-tests/testprofiles/taverna-1.6-SNAPSHOT-profiles.xml http://www.mygrid.org.uk/taverna/updates/1.5.2/taverna-1.5.2-profiles.xml http://bioinf.ncl.ac.uk/mirror/taverna/updates/1.5.2/taverna-1.5.2-profiles.xml http://mirror.omii.ac.uk/taverna/updates/1.5.2/taverna-1.5.2-profiles.xml
./src/main/resources/workbench/dataviewer.bat:java %ARGS% -jar "%~dp0\taverna-bootstrap-1.6-SNAPSHOT.jar" %*
...


# Repeat sed-replace for other file types
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -type f -name '*xml') ; do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -type f -name '*java') ; do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -type f -name '*bat') ; do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -type f -name '*sh') ; do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done
: stain@mira ~/Documents/workspace/taverna1.x;for file in $(find . -type f -name '*properties') ; do cat $file | sed "s/1.6-SNAPSHOT/1.6.2.0/g" > /tmp/$$ && cat /tmp/$$ > $file; done

: stain@mira ~/Documents/workspace/taverna1.x;grep -ri 1.6-SNAPSHOT . | grep -v Binary | grep -v target | grep -v /bin
: stain@mira ~/Documents/workspace/taverna1.x; # ie. nothing more found

: stain@mira ~/Documents/workspace/taverna1.x;vim taverna-enactor/pom.xml
   # Change version number of freefluo-taverna-exts, should be version 1.6.2, not 1.6.2.0
    
      uk.org.mygrid.resources
      freefluo-taverna-exts
      1.6.2
    
(TODO: Make it so that freefluo-taverna-exts also has a full version number, to avoid confusion)

  • Deploy a new version of freefluo-taverna-exts by downloading and modifying the version numbers of an older release. (The only change is the Taverna dependency):

: stain@mira ~/92;wget http://www.mygrid.org.uk/maven/repository/uk/org/mygrid/resources/freefluo-taverna-exts/1.6.2/freefluo-taverna-exts-1.6.2.jar
: stain@mira ~/92;wget http://www.mygrid.org.uk/maven/repository/uk/org/mygrid/resources/freefluo-taverna-exts/1.6.2/freefluo-taverna-exts-1.6.2.pom
: stain@mira ~/92;vim freefluo-taverna-exts-1.6.2.pom 
  # Make sure scufl-model and taverna-enactor are versioned fully, say 1.6.2.0, while the version of freefluo-taverna-exts don't include the minor number, so it's 1.6.2.

: stain@mira ~/92;mvn deploy:deploy-file -Durl=scpexe://rosalind.cs.man.ac.uk/local/www/mygrid/maven/repository -DrepositoryId=mygrid-repository -Dfile=freefluo-taverna-exts-1.6.2.jar -DpomFile=freefluo-taverna-exts-1.6.2.pom 
[INFO] Scanning for projects...
..
[INFO] [deploy:deploy-file]
Uploading: scpexe://rosalind.cs.man.ac.uk/local/www/mygrid/maven/repository/uk/org/mygrid/resources/freefluo-taverna-exts/1.6.2/freefluo-taverna-exts-1.6.2.jar
[INFO] Retrieving previous metadata from mygrid-repository
[INFO] Uploading repository metadata for: 'artifact uk.org.mygrid.resources:freefluo-taverna-exts'
[INFO] Retrieving previous metadata from mygrid-repository
[INFO] Uploading project information for freefluo-taverna-exts 1.6.2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
..
  • Modify net.sf.taverna.tools.Repositories to read from users' local repositories in home directory named after previous version. So for the 1.6.2 release, we'll need to add the 1.6.1 repository:
		String [] applications=new String[]{"Taverna","Taverna-1.5.2","Taverna-1.6.0"};
to:
		String [] applications=new String[]{"Taverna","Taverna-1.5.2","Taverna-1.6.0","Taverna-1.6.1"};

  • Check that the src/main/resources/workbench/conf/raven.properties specifies the correct version for the artifacts and profile lists, say:
raven.loader.groupid = uk.org.mygrid.taverna.raven
raven.loader.artifactid = raven
raven.loader.version = 1.6.2.0
..
raven.target.groupid = uk.org.mygrid.taverna
raven.target.artifactid = taverna-workbench
raven.target.version = 1.6.2.0
..
raven.profilelist=http://www.mygrid.org.uk/taverna/updates/1.6.2/taverna-1.6.2-profiles.xml http://bioinf.ncl.ac.uk/mirror/taverna/updates/1.6.2/taverna-1.6.2-profiles.xml http://mirror.omii.ac.uk/taverna/updates/1.6.2/taverna-1.6.2-profiles.xml
..
raven.pluginsite.1=http://www.mygrid.org.uk/taverna/updates/1.6.2/plugins/ http://bioinf.ncl.ac.uk/mirror/taverna/updates/1.6.2/plugins/ http://mirror.omii.ac.uk/taverna/updates/1.6.2/plugins/
Remove any references to test profiles or test repositories.

  • Do a full, clean build to ensure the new version number works
: stain@mira ~/Documents/workspace/taverna1.x;mvn clean install
[INFO] Scanning for projects...
[INFO] Reactor build order: 
[INFO]   Taverna
...
[INFO] Taverna Scavenger UI .................................. SUCCESS [0.534s]
[INFO] Taverna Workbench ..................................... SUCCESS [0.698s]
[INFO] Taverna tools ......................................... SUCCESS [0.569s]
[INFO] Taverna Contrib ....................................... SUCCESS [45.874s]
[INFO] Workflow launcher example ............................. SUCCESS [0.332s]
[INFO] Example code .......................................... SUCCESS [0.022s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 minutes 15 seconds
[INFO] Finished at: Thu Oct 04 14:40:44 WEST 2007
[INFO] Final Memory: 21M/44M
[INFO] ------------------------------------------------------------------------

  • Double-check that the profile in taverna-bootstrap/src/main/resources/default-profile.xml depends on taverna artifacts of the version to be released, and that the profile itself is of that version. Example:
<profile version="1.6.2.0" name="Taverna Workbench">

    <!--  processors -->
    <artifact groupId="uk.org.mygrid.taverna.processors" artifactId="taverna-biomart-processor" version="1.6.2.0"/>
    <artifact groupId="uk.org.mygrid.taverna.processors" artifactId="taverna-localworkers" version="1.6.2.0"/>
    ..
    <!-- raven -->
    <artifact groupId="uk.org.mygrid.taverna.raven" artifactId="raven" version="1.6.2.0"/>

    <!-- system sax parser -->
    <artifact groupId="xerces" artifactId="xercesImpl" version="2.6.2" system="true"/>
    ..
    <!-- system log4j for Raven's Log4jLog proxy -->
    <artifact groupId="log4j" artifactId="log4j" version="1.2.12" system="true"/>
</profile>

  • Check in net.sf.taverna.tools.Bootstrap that APPLICATION is without the minor version number, as this will determine the name for the user home directory. Example:
	public static final String VERSION = "1.6.2";

	public static final String APPLICATION = "Taverna-" + VERSION;

  • For a new bootstrapper, do mvn package assembly:assembly, as described in BuildingTaverna.

: stain@mira ~/Documents/workspace/taverna1.x;mvn package assembly:assembly
..
[INFO] [assembly:assembly]
[INFO] Building zip: /Users/.stain/unencrypted/workspace/taverna1.x/target/taverna-1.6.2.0-bin.zip
..
[INFO] BUILD SUCCESSFUL
..

: stain@mira ~/Documents/workspace/taverna1.x/taverna-bootstrap/src/main/resources;scp default-profile.xml rosalind:
default-profile.xml                                       100% 3590     3.5KB/s   00:00    

: stain@mira ~/Documents/workspace/taverna1.x/taverna-bootstrap/src/main/resources;ssh rosalind
Last login: Thu Oct  4 15:47:36 2007 from webcam3
Your Operating System is Linux
Welcome to ... the research domain
WD=/home/ssoiland
ssoiland@rosalind-) cd /local/www/mygrid/taverna/updates
ssoiland@rosalind-) ls
1.5  1.5.2  1.6.0  1.6.1
ssoiland@rosalind-) mkdir 1.6.2
ssoiland@rosalind-) cd 1.6.2/
taverna-1.6.1-profiles.xml  taverna-1.6.1.1-profile.xml
ssoiland@rosalind-) cp /home/ssoiland/default-profile.xml taverna-1.6.2.0-profile.xml
ssoiland@rosalind-) cp ../1.6.1/*profiles.xml .
ssoiland@rosalind-) mv taverna-1.6.1-profiles.xml taverna-1.6.2-profiles.xml
ssoiland@rosalind-) vim taverna-1.6.2-profiles.xml 
<profilesversions>
    <profile>
        <version>1.6.2.0</version>
        <name>Taverna Workbench</name>
        <location>taverna-1.6.2.0-profile.xml</location>
        <description>The initial Taverna 1.6.2 release.</description>
    </profile>
</profilesversions>

Check that the location filename matches the profile filename. Check permissions that the directory is readable and executable for others, and the profiles are readable others:

ssoiland@rosalind-) ls -al  
total 16
drwxr-sr-x 2 ssoiland taverna 4096 Oct  4 15:52 .
drwxrwsr-x 7 root     taverna 4096 Oct  4 15:50 ..
-rwxr-xr-x 1 ssoiland taverna  240 Oct  4 15:52 taverna-1.6.2-profiles.xml
-rw-r--r-- 1 ssoiland taverna 3590 Oct  4 15:50 taverna-1.6.2.0-profile.xml
Double-check in a browser that you can access both files. Note that if you are adding a minor version (say 1.6.2.1), don't modify xx-profiles.xml yet, as it would appear as an update for existing Taverna users.

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | More topic actions
 
Powered by myGrid wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding myGrid wiki? Send feedback