Java CoG Kit Release Process Guide

From Java CoG Kit

Jump to: navigation, search

Gregor von Laszewski

Software Version: 4.1.5

Last update: April 17, 2006

Contents

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

Image:task.png 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

  1. decide that a release is necessary
  2. decide for a relase version
  3. freeze the code, documentation, and Web development
  4. test if the code is working
  5. update the file Changes.txt
  6. derive a release tag for the CVS for the release version. cog_4_1_5_rc1
  7. tag the CVS with a RC version
  8. tag the SVN with a RC version
  9. 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.
  10. generate the new bundles
  11. publish the new bundels
  12. publish the JavaDoc documentation
  13. test the release candidate, e.g. test if you can download and install the bundels
  14. make improvements and goto Step 4 in case of failure
  15. rename the release candidate tag to cog_4.1.5 for the CVS archives
  16. remove the release candidate tags
  17. publish the new code
  18. add to the old release page the message that a new version has been released
  19. generate and publish the JavaDoc
  20. update the doumentation on the Wiki
    1. update http://wiki.cogkit.org/index.php/Table
    2. 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
  21. add the release number to bugzilla
  22. 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.
  23. update the Web page by setting redirect to point to the new version
  24. test the Web page for acuracy
  25. test the release
  26. 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

  1. 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
  2. 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)
[x] 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.

  1. Update the Documentation Page
  2. Edit each document once and assign it a version tag in the comment field
  3. 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.
  1. Put an announcement at in the News category
  2. Change the template:VERSION
  3. Change the template:VERSIONU
  4. Change the template:COGVERSION
  5. Fix all broken broken redirects on the Wiki.
  6. 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:

  1. 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)
  2. look at the copied pages and resolve any missing templates
  3. create links to the roots of all the documents on http://wiki.cogkit.org/index.php/V:<version>
  4. create a link to the the above on http://wiki.cogkit.org/index.php/Versions
  5. 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)
[x] make sure that the Java doc is also created and published. you can use a second command such as make javadoc if needed. (Deepti)
[x] We need to update the scripts to publish the JavaDoc documents onto the Web server. This needs to be documented here. (Deepti)
[x] 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
Changelog
http://www.cogkit.org/viewcvs/viewcvs.cgi/src/cog/CHANGES.txt?rev=HEAD&content-type=text/vnd.viewcvs-markup
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
Changes
image:alert.gif THIS NEEDS TO BE FILLED OUT
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>

Personal tools
Collaboration and Jobs