IGUANA
Interactive Graphics for User ANAlysis - (Version 6.13.0.g4.81)
Guide > Developer > How to > Release IGUANA
 

Valid XHTML 1.0 Transitional
Valid CSS!
Browser compatibility
tested on:
Opera/9.10
Firefox/1.5.0.7
Safari/2.0.4
IE/6.0.2900



Releasing IGUANA with SCRAM

Building IGUANA reference releases at CERN needs to be 100% reproducible, and as a means of guaranteeing that, please alway follow the prodecure described below. Should the build fail for any reason, even for a triviality such as running out of disk space, start from scratch. If these instruction do not work, update the build scripts or these instructions.

Prepare for the release

The first step of the release build is to get prepared. This involves announcing the intention to release to the other developers, requesting an AFS volume and tagging the release.
When you plan to make a release, please send a notification to IGUANA developers a few days in advance. Collect tags for the release and check the code and the build procedure in your developer's area. Run the integration tests as they would be run in the release. The easiest way to do all this is to build as if in the release area.
To tag the release, check out the code you want to go into the release in config and src directories. Normally you should take the full head of the tree except for the top-level Ig_Utilities and domain directories. Before you tag, you need to make a few updates, and then tag the code:
  • Update the config directory
    • Update BootStrapFile and BootStrapFileSRC to specify the correct CVS tags and version numbers. Tags and version numbers should be IGUANA_6_13_0_g4_81.
    • Update RequirementsDoc to refer to the correct CMS configuration (CMS_XX_1).
    • Update scram_version if necessary.
    • Commit the changes:
      cvs ci -m "Configuration for IGUANA_6_13_0_g4_81"
      									
  • Update Ig_Documentation/IgDoxygen/doc/html/main/relnotes.html. The notes should include a paragraph that gives a succint summary of all the changes, and then a bullet for each changed package together with a brief summary of the changes.

  • Update Ig_Documentation/IgDoxygen/doc/html/devguide/deps.html to have a link for each SCRAM architecture for which this IGUANA version is going to be release.

  • Tag the tree:
    cvs tag IGUANA_6_13_0_g4_81 config src
    							
  • If there are post-tag commits to catch up with, move the tag with:
    cvs tag -F IGUANA_6_13_0_g4_81
    							
    If any non-trivial changes are required to the tag, that is, anything more than moving the tag for one or two fiels, remove the tag completely (with "cvs rtag -d IGUANA_6_13_0_g4_81 IGUANA config") and retag. If there is any doubt that wrong code has been tagged, always remove the tag completely -- do not patch up!
Each IGUANA release is built on an AFS volume of its own. Request a new 1 GB AFS volume /afs/cern.ch/cms/Releases/IGUANA/IGUANA_6_13_0_g4_81 with permissions identical to the parent directory.

Login on the main build machine

Login as cmscan on a linux host (on lxplus for the CERN reference builds).

Build the release

cd /afs/cern.ch/cms/Releases/IGUANA
cmscvsroot IGUANA
cvs co -p -r IGUANA_6_13_0_g4_81 \
	Ig_Infrastructure/IgBuildScripts/src/make-release > make-release    
sh ./make-release IGUANA_6_13_0_g4_81
				
This updates the config directory in the current directory for IGUANA 6.13.0.g4.81, does scram project using BootStrapFileSRC to create the release directory. Note that creating the AFS volume above creates a directory which you should not remove; to clear up, delete all its contents but not the volume mount point itself.
It then launches the full build on the current host. Once the build is complete, it will run all the test programs; you'll need an X display for these. Documentation is built automatically, and at the end, it cleans up the tmp tree and write-protects the directories against accidental modification. The script has a number of options to skip specific steps to do only a partial build. Do not use them with the CERN reference builds; for other builds you will normally want to first do the project checkout and interactive setup and only then go to the full build, as follows (again, the last step will require an X display):
# 1) Project checkout and setup on linux host (linuxhost)
sh ./make-release -s -b -t -d -c IGUANA_6_13_0_g4_81
				

Test the release

This step applies only to the reference builds at CERN. Before releasing IGUANA, check the log files in the IGUANA_6_13_0_g4_81/logs directory for any errors, make sure all the test programs run correctly during the release build. If the IGUANA release fails to work correctly, blast it and the associated tags away, make the required corrections in a private development area and roll out a new release once all works correctly. The things that are required to work are:
  • Test all basic dialogs (setting background colours, ...)
  • Test saving and printing of scenes.

Install and announce the release

Once the release is complete and tested, install it in the SCRAM project database. At CERN reference builds, send a request to the librarian. Otherwise simply invoke scram install in the project release.
Notify the AFS volume maintainer (Anita Bjorkebo) that the release volume is now static and free space can be reclaimed.
Next, update Ig_Documentation/IgDoxygen/doc/html/releases.html and commit the change. The top web pages will update on the next snapshot update. You can force the update by running this as cmscan:
cd /afs/cern.ch/cms/Releases/IGUANA/snapshot/src && scram b snapshot
				
Finally, send a mail to iguana-developers@cern.ch to announce the release. Append the release notes to the mail; easiest way to capture them is the use a text browser such as w3m with about 70 character-wide terminal and paste the formatted text into the mail editor.