Instructions for building and releasing CORAL |
The first step for releasing CORAL is to prepare the directory under afs where CORAL is to be released.
In case of an internal release this step can be ommitted since all
releases are build under
/afs/cern.ch/sw/lcg/app/releases/CORAL/internal.
In case of an official release, submit a request via the web form under
https://spi.cern.ch/login/requestAfsSpaceForm.php
The page prompts you to specify the project name (choose CORAL from
the existing menu) and the version in the form X.Y.Z
Within a few minutes a new afs volume will be allocated for the
project and mounted under the newly created directory
/afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z
Check with SPI which is the LCG configuration for the external dependencies that should be used. For normal releases this is LCGCMT_XX, where XX is an integer number. For testing against a new configuration use LCGCMT_preview or LCGCMT_HEAD.
Check out the ReleaseTools:
cvs -d :kserver:coral.cvs.cern.ch:/cvs/coral co -d ReleaseTools coral/config/ReleaseTools
and enter the directory
cd ReleaseTools
Edit the file coral_config.py
The first lines specify the CORAL version (CORAL_X_Y_Z) and the LCG
configuration tag (LCGCMT_XX).
The next lines define the packages, tests and the versions (cvs tags)
to be used for the release.
Commit the changes.
Run the tool coral_prepare_release.py specifying the
parent of the release directory.
In case of an internal release this should be
/afs/cern.ch/sw/lcg/app/releases/CORAL/internal otherwise
/afs/cern.ch/sw/lcg/app/releases/CORAL:
./coral_prepare_release.py /afs/cern.ch/sw/lcg/app/releases/CORAL
This is going to bootstrap the project area in the correct directory
and export the sources.
In case of errors the output will specify at the end the location of the error logs. In this case once the necessary corrective action has been taken, empty the release directory (but do not remove it!) and re-run the script.
For each of the platforms to be built perform the following:
The win32 binaries are built on a linux box with wine (and the VC compiler) installed.
While the build procedures are running it is a good time to update the global documentation.
Check out the doc module:
cvs -d :kserver:coral.cvs.cern.ch:/cvs/coral co doc
and enter the UserGuide sub-directory:
cd doc/UserGuide
Edit the files UserGuide.xml (update the CORAL version), and in case the external configuration or the platform list has changed, edit the DevelopingClientComponents.xml (update the External Dependencies section) as well.
Commit the changes back into the CVS repository:
cvs ci -m "Preparing for CORAL_X_Y_Z"
Go back to the checkout directory of the ReleaseTools and run the
tool coral_build_user_guide.py against the release directory:
./coral_build_user_guide.py /afs/cern.ch/sw/lcg/app/releases/CORAL/CORAL_X_Y_Z
This is going to check out the head of the user guide master files,
collect the documentation fragments from the exported sources of each
package and build the user guide and the component description documents.
This part consists mainly of writing the release notes and updating the CORAL version number in the master index file.
Go to the www sub-directory of the checked out doc
module.
Edit the index.html file (update the CORAL version and release date).
Edit the ReleaseNotes.html file (add in the begining a new
section for the new release and type the release notes).
Finally commit the changes back to CVS.