|How to Release PI|
This instructions provide a procedure to build a release of PI at CERN
If these instructions do not work, please update the build scripts or these instructions.
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:
- Check out the configuration directory :cvs co -d scram pi/config/scram
- Update the config directory:
- Update BootStrapFile and BootStrapFileSRC to specify the correct CVS tags and version numbers. Tags should be PI_X_Y_Z and version numbers X.Y.Z.
- Update RequirementsDoc to refer to the correct LCG configuration (LCG_XX_YY). You can find about the LCG configuration and the corresponding version (CVS tags) looking at the LCG scram ToolBox. PI should use a configuration consistent with SEAL. Typically, if SEAL uses LCG_XX, PI will use LCG_XX_1, which will contain, in addition to LCG_XX, the SEAL release itself.
- Add new tools if needed by PI in the RequirementsDoc.
- If scram will have a problem finding a tool, check also that the site/tools-CERN.conf is equivalent to the file: /afs/cern.ch/sw/lcg/app/spi/scram/toolbox/LCG_XX/tools-CERN.conf where LCG_XX is the chosen LCG configuration.
- Update scram_version if necessary.
- Update the ChangeLog file
- Commit the changes:cvs ci -m "Configuration for PI_X_Y_Z"
- Tag the new configuration:cvs tag "PI_X_Y_Z"
- Before using scram, you need to run the script provided by SPI to set the correct environment for building the release:
- Define also the architecture where you are building your release. For example, for redhat73 with the compiler gcc 3.2, do:
- Bootstrap PI using your new tagged configuration. You need here to use scram, if you don't have in your path run before the script provided by SPI to set the correct environment:
scram project file:scram/BootStrapFile; cd PI_X_Y_Z
- Check out the code you want to go in the release using the tag given you for each subsystem (or package).
cvs co -d src -r Subsystem_X_Y_Z pi/Subsystem
- Check out also the head of the Documentation
cvs co -d src pi/Documentation
Update pi/Documentation/WebSite/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 change.
- Now you can tag all the PI source code:
cvs tag PI_X_Y_Z src
If there are post-tag commits to catch up with, move the tag with:
cvs tag -F PI_X_Y_Z src
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!
cvs co -d scram -r PI_X_Y_Z pi/config/scram
scram project file:scram/BootStrapFileSRC
scram b release
The command does the following steps:
- full clean up of the release area (scram b release-reset-arch)
- build the source (scram b release-build) including tests and copying binary, library, header files and scripts in the release export area
- run the PI tests (scram b release-check)
- build the documentation (scram b release-docs)
- freeze the directory (scram b release-freeze)
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)
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.