How to Release PI

Releasing PI with SCRAM

This instructions provide a procedure to build a release of PI at CERN using SCRAM.
If these instructions do not work, please 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, collecting the CVS tag of all the subsystems (or packages) and tagging the release.

When you plan to make a release, please send a notification to PI developers a few days in advance.

Collect then tags for the release and check out 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 . Normally you should take the full head of configuration and documentation and the received tags for the other subsystems.
Before tagging the release, you need first to update and tag the configuration and to update the documentation. You need to follow these steps: 

cvs co -d scram pi/config/scram
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 PI_X_Y_Z src") and retag. If there is any doubt that wrong code has been tagged, always remove the tag completely -- do not patch up!


Build the release

The command does the following steps:

In case of problems, you might want to run these steps separatly.
The build log information is contained in a file in the /logs directory ($RELEASE_ARCH.log)

Test the release

In case of problems and when you need to apply modifications to the code you need to start over from the beginning.

Install and announcing the release

Once the release is completed and tested, install it in the scram project database, with the command

scram install PI PI_X_Y_Z

Be sure to have the SCRAM_ARCH environment variable set correctly, otherwise it will not install the release correctly. If you do not have permission to do that, you can send a request to the librarian.

Next update the PI web page by adding a new entry for the new release PI_X_Y_Z. Commit the changes to CVS, they will be visible on the next snapshot update. 
Add update the link to the release examples

Finally, send a mail to the PI developers ( and to other interested mailing lists) to announce the release, appending a link to the release notes.