Java CoG Kit Release Process Guide
From Java CoG Kit
Gregor von Laszewski
Software Version: 4.1.5
Last update: April 17, 2006
About this Document
This document includes basic information about the Java CoG Kit release process.
Format
We have augmented the document with comments/tasks at places where we found issues. Our intend is to address these issues in a future release. A task will appear as follows
Text describing the task (wiki account name the task is assigned to)
In case you have a wiki account, you can add new tasks to the Documentation as documented in our Wiki Help.
Introduction
As we are an open source project, we like to present you with some information about our release process. This is important as we like you to contribute to our efforts and help us streamlining the process and be part of it.
The following list specifies the approximate steps of our release process.
We assume the the version number is 4.1.5
- decide that a release is necessary
- decide for a relase version
- freeze the code, documentation, and Web development
- test if the code is working
- update the file Changes.txt
- derive a release tag for the CVS for the release version. cog_4_1_5_rc1
- tag the CVS with a RC version
- tag the SVN with a RC version
- do a release candidate of the release and verify that the dryrun of the release works. This is done in a preliminary non public release space.
- generate the new bundles
- publish the new bundels
- publish the JavaDoc documentation
- test the release candidate, e.g. test if you can download and install the bundels
- make improvements and goto Step 4 in case of failure
- rename the release candidate tag to cog_4.1.5 for the CVS archives
- remove the release candidate tags
- publish the new code
- add to the old release page the message that a new version has been released
- generate and publish the JavaDoc
- update the doumentation on the Wiki
- update http://wiki.cogkit.org/index.php/Table
- create a redirect from http://www.cogkit.org/release/4_1_5 to http://wiki.cogkit.org/index.php/V:4.1.5/Java_CoG_Kit_Release_Page
- add the release number to bugzilla
- Update the registration script: Go to the web server and edit register/index.html and add the new version number. go to php/download and update the scripts there. Do not forget to update the code in the Java CoG Kit in cog-setup. (do this before you release the code ;-)) Idially this should be done outomatically by reusing the VERSION.txt variable in the code.
- update the Web page by setting redirect to point to the new version
- test the Web page for acuracy
- test the release
- make announcements
Decide for a release
We will make a joint decission in the Java CoG Kit team when a release is necessary. Usually, we expect one major release per year, but in case major upgrades are done we will make additional releases available. Additionally, we like to allign our release wit the Globus Toolkit releases. However, in the past these releases have been irregular. Once a toolkit is release we attempt our best to produce a Java CoG Kit release within two month.
Even numbers at the end are considered to be production releases. Uneven numbers are considered development versions.
In the year 2005 we are currently planing the following releases:
- (done) Mar: Java CoG Kit version 4.0.a
- (done) June: A non public Java CoG kit version 4.0.1 for friends
- (done) July: Java CoG Kit version 4.1.2
- (done) Oct: Java CoG Kit version 4.1.3
In 2006
- Apr: Java CoG Kit version 4.1.4
Code Freeze
Before a release tag is assigned to the CVS a development freeze is announced to the development list at
- gridnauts@globus.org
- developers@cogkit.org
- team@cogkit.org
Naming the Version
- The Java CoG Kit version number follows currently a simple pattern. We distinguish major, minor, and tiny release numbers. Major release numbers are done when major changes occur.
- <major>.<minor>.<tiny>
- <major>:= [4-9][0-9]*
- <minor>:= [0-9]+
- <tiny>:= [a-d]*[1-9][0-9]*
These numbers are also tags within the CVS and can be used to download the code.
The tags are created as follows:
- cog_<major>_<minor>_<tiny>
However, not every tag will be distributed as packages. All other versions must be retrieved from CVS at this time.
- IMPORTANT: Update the VERSION file in src/cog appropriately.
Checking the CVS tags
- go to http://www.cogkit.org/viewcvs/viewcvs.cgi/src/cog/ and click on show files using tags. Make sure you see cog_4_1_5
- go to http://viewcvs.globus.org/viewcvs.cgi/jglobus/?cvsroot=Java+COG and click on show files using tags. Make sure you see cog_4_1_5
If you already see this version, this step has either been completed, or you need a different version number.
Tagging the CVS archive
As we have a number of CVS modules we need to carefully tag them. This should only be done by Gregor and Mike and should be coordinated with them. Below we give the example on how to tag the release for the version 4_1_5.
USER=‘whoami‘ cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 www cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 doc cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 src/cog cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 src/tools cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 src/jglobus-fx cvs -d$USER@cvs.cogkit.org:/cvs/cogkit rtag cog_4_1_5 src/matlab cvs -d$USER@globus.org:/homes/dsl/cog/CVS rtag cog_4_1_5 jglobus
we also need to tag the svn and need a documentation on that in the list of things above. for 4.1.4 we will ignore this (Deepti)
Generate a release bundle
Release file are generated using the makefile in src/cog/bin/release. In order to get a release going, do the following:
- cvs -d :pserver:anonymous@cvs.cogkit.org:/cvs/cogkit co src/cog/bin/release
- This will check out the release files
- cd src/cog/bin/release
- Edit the Makefile. You should probably edit the following variables:
- TAG
- the tag the release is going to be made of. Leave it at now to release the current CVS version. Make sure you are adding the "-r" before the TAG if you are not using "now".
- EXCLUDEMODULES
- what CoG modules to exclude from the release
- PROVIDERS
- the list of providers that will be compiled as separate providers. The names reflect module names.
- PUBLISHHOST
- the host things are going to be published on. Change to username@www.cogkit.org (since scp is going to be used for it). Keep it to localhost for testing purposes.
- PUBLISHROOT
- The directory where all releases are. Change to /www/www.cogkit.org/release. The files will be published in $PUBLISHROOT/$VERSION
- make release
- This will checkout the CoG and generate all packages and files, including documentation and release web pages in the out directory. You should be seeing something like this
Version: 4_1_4 Distname: cog-4_1_4 Cleaning previous checkout Checking out current src/cog from :pserver:anonymous@cvs.cogkit.org:/cvs/cogkit Removing excluded modules make /home/Deepti/cog-release/src/cog/bin/release/out/cog-4_1_4-src.tar.gz make[1]: Entering directory `/home/Deepti/cog-release/src/cog/bin/release' Generating source tar.gz package make[1]: Leaving directory `/home/Deepti/cog-release/src/cog/bin/release' make /home/Deepti/cog-release/src/cog/bin/release/out/cog-4_1_4-src.zip make[1]: Entering directory `/home/Deepti/cog-release/src/cog/bin/release' Generating source zip package make[1]: Leaving directory `/home/Deepti/cog-release/src/cog/bin/release' Building full CoG ..... Generating full binary tar.gz package Generating full binary zip package Building CoG without providers and so on
- make publish
- Will publish all the files on the $PUBLISHHOST in $PUBLISHROOT/$VERSION. Be careful with this.
- make lock
- This will make all files on $PUBLISHHOST in $PUBLISHROOT/$VERSION read-only. Run this after it’s decided that the release is final.
we also need to tag the svn and need a documentation on that in the list of things above. for 4.1.4 we will ignore this (Deepti)
make sure that the Java doc is also created and published. you can use a second command such as make javadoc if needed. (Deepti)
Set the current directory on the Web Server
The Web page contains a soft link to the current release. This softlink needs to be updated To do so
- log into the cvs.cogkit.org
- cd /www/www.cogkit.org
- rm current
- ln -s release/4_1_3 current
- cd release
- ln -s 4_1_3 current
Update the Wiki
We need to update our Wiki to reflect the new release. This is done by updating the version number.
- Update the Documentation Page
- Edit each document once and assign it a version tag in the comment field
- Edit each document again and query replace the version number and the version directory number with the new number. Example: assume your were in version 4.1.3 and the new version is 4.1.4, than query replace 4.1.3 with 4.1.4 and 4_1_3 with 4_1_4.
- Put an announcement at in the News category
- Change the template:VERSION
- Change the template:VERSIONU
- Change the template:COGVERSION
- Fix all broken broken redirects on the Wiki.
- Fix all double redirects on the Wiki where appropriate.
Using the version namespace (V:)
To make a release copy from the current head, do the following:
- recursively copy the contents of each page in V:Head to V:<version>. For example, http://wiki.cogkit.org/index.php/V:Head/Karajan:Embedding would be copied to http://wiki.cogkit.org/index.php/V:4.1.4/Karajan:Embedding (for the 4.1.4 release)
- look at the copied pages and resolve any missing templates
- create links to the roots of all the documents on http://wiki.cogkit.org/index.php/V:<version>
- create a link to the the above on http://wiki.cogkit.org/index.php/Versions
- set a redirect using the following for the main page to point to the correct version.
#REDIRECT[[V:<cog-version>/<pagename>]]
we also need to tag the svn and need a documentation on that in the list of things above. for 4.1.4 we will ignore this (Deepti)
make sure that the Java doc is also created and published. you can use a second command such as make javadoc if needed. (Deepti)
We need to update the scripts to publish the JavaDoc documents onto the Web server. This needs to be documented here. (Deepti)
Mikes files are done differently. Mike needs to document what needs to be done, so someone else can do it. (Mike)
Announcements
The following is a suggestion for an announcement:
The CoG Kit team is happy to announce a new version of the Java CoG Kit. The version is 4_1_3. More information about this version can be found at
http://www.cogkit.org/release/4_1_3
Some of the features included in this release are:
- Updates to the Karajan/GridAnt Grid workflow system
- Introduction of a provider concept that allows easy adaptation to different Grid middleware
- Execution providers for GT2, GT3, and SSH
- File transfer providers for GridFTP, FTP, WebDAV, and SSH
This release was tested with Java version 1.4.2.
Anouncement Opportunities
freshmeat
The link to the project is http://freshmeat.net/projects/javacogkit/
there is also one at
http://freshmeat.net/projects/cogkit/
i probably have to delet one
Follow to http://freshmeat.net/add-branch/59742/ to update the branch in case of a new release. The project id is ID 59742
- The information for freshmeat is as follows
- Generic project information
- Section to submit to
- Unix [x]
- Full project name
- Java CoG Kit
- Short project name
- cogkit
- Full description
The Java CoG Kit is provides convenient access to Grid middleware through the Java framework. It contains a Grid workflow programming paradigm, Grid middleware abstractions, a Grid shell, and graphical components. It can be used to build grid portals.
It is most useful for Grid users that focus on file transfer, job submission, and authentication.
- Short description
- Simple access to Grid workflows and middleware through Java
- Name of author
- Gregor von Laszewski & CoG Team
- Email address
- gregor@mcs.anl.gov
Default branch information
- Branch name
- Branch description
- License
- Apache License
- Homepage
- http://www.cogkit.org
- Tar/GZ
- Tar/BZ2
- Zip
- RPM package
- Debian package
- OS X package
- BSD Ports URL
- Purchase
- free
- CVS tree (cvsweb)
- http://www.cogkit.org/viewcvs/viewcvs.cgi/src/cog/
- Bug tracker
- http://www-unix.globus.org/cog/contact/bugs/
- Mailing list archive
- http://www-unix.globus.org/mail_archive/java/maillist.html
- Mirror site
- Demo site
- http://www.cogkit.org
- Version
- \COGVERSION
- Release focus
- 1
- Hide from frontpage
- no
Other Announcements
- source forge
- java@globus.org
- cog-news@globus.org
- discuss@globus.org
- in case gt4 changes took place also
- gt4-friends@globus.org
Release tags: jglobus
Jglobus has two tags generated. those starting with globus_ are globus toolkit related releases. Those starting with cog_ correspond to releases that are related to the Java CoG Kit and are documented in this release guide.
Every time we decide for a release, we must also tag the jglobus library. This must be done in coordination with Gregor as he is ethe only one allowed to set the jglobus release tags.
The release tag for jglobus is done as follows:
1 TAG=cog_‘head -1 ../VERSION.txt‘ 2 cvs -d:pserver:$CVS checkout -r $TAG papers/bib
References
[1] G. von Laszewski, I. Foster, J. Gawor, and P. Lane, “A Java Commodity Grid Kit,” Concurrency and Computation: Practice and Experience, vol. 13, no. 8-9, pp. 643–662, 2001. [Online]. Available: http://www.mcs.anl.gov/~gregor/papers/vonLaszewski--cog-cpe-final.pdf
[2] “Java CoG Kit Wiki,” 2004. [Online]. Available: http://www.cogkit.org/wiki
[3] “Java CoG Kit Registration,” 2004. [Online]. Available: http://www.cogkit.org/register
Additional publications about the Java CoG Kit can be found as part of the vita of Gregor von Laszewski http://www-unix.mcs.anl.gov/~laszewsk/vita.pdf. Most documents are avalable online if you follow the links. In future we intend to provide this information without Gregors vita data.
If you need to cite the Java CoG Kit, please use [1].
Appendix
A Documentation
The Java CoG Kit documentation is distributed as a series of guides available here.
B Downloads
Before downloading the Java CoG Kit, users should read the “Guide to Installing the Java CoG Kit” [PDF] [HTML]. We hope that you will find this guide useful to decide which bundles you need. For the more experienced user, we provide the following index.
C Availability of the Document
The newest version of this document can be downloaded by the developers from
1. cvs -d:pserver:anonymous@cvs.cogkit.org:/cvs/cogkit checkout manual/guide
It is not allowed to reproduce this document or the source. This documentation is copyrighted and is not distributed under the CoG Kit license.
D Bugs
We use Bugzilla for tracking bugs and for enhancement suggestions. It is located in the bugzilla.globus.org, but you may find it easier to use one of the following quick links:
- Submit new bug report
- List current bugs
- Make a simple query
- Make an advanced query
- Create a new account
E Administrative Contact
The Java CoG Kit project has been initiated and is managed by Gregor von Laszewski. To contact him, please use the information below.
Gregor von Laszewski Argonne National Laboratory Mathematics and Computer Science Division 9700 South Cass Avenue Argonne, IL 60439 Phone: (630) 252 0472 Fax: (630) 252 1997 gregor@mcs.anl.gov</tasks>
