Difference: LbScriptsRelease (1 vs. 32)

Revision 322018-01-26 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 34 to 34
 

Releasing the files

The files stored on the build machine need to be copied to the RPM repo.

Deleted:
<
<
  • Login to lhcb-archive and switch to the dev evrsion of LbScripts
 
Changed:
<
<

 ssh lhcb-archive.cern.ch
bash
. /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/dev/InstallArea/scripts/LbLogin.sh

  • Identify the build_id from the nightlies release page
  • try to copy the RPMs to the repository
    build_id=1234
    lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /eos/project/l/lhcbwebsites/www/lhcb-nightlies-artifacts/release/lhcb-release/$build_id/rpms
    
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
      lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /eos/project/l/lhcbwebsites/www/lhcb-nightlies-artifacts/release/lhcb-release/$build_id/rpms
      

BE CAREFUL: Since 20141010, the release procedure automatically bumps up the release number for packages for which there is already a version in the RPM repo. If your slot contains more projects that the ones requested for release, you need to ONLY copy the needed ones to the RPM repo. In that case the --rpm-regex option of lb-release-rpm should be used.

Copy the tar files * try to copy the RPMs to the repository

build_id=1234
lb-release-oldtar /data/archive/artifacts/release/lhcb-release/$build_id/olddist
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
      lb-release-oldtar --copy /data/archive/artifacts/release/lhcb-release/$build_id/olddist
      

Install on AFS

This has to be done from an SLC6 node.

  • install on AFS
    • First, set some environment variables that define the project name and version to be installed. Used in the following commands (so you can simply cut and paste them directly). Works for bash shells, so recommend switching to this if it isn't your default.
      MyProject=<ProjectName>
      MyVersion=vXrY
      
      To check the following commands will work for you, now run
      echo ${MyProject^^}
      
      which should return the project name, in upper case.
    • prepare the AFS volume
      lb-project-manage-volume -c $MyProject $MyVersion
      
    • install the new project
       /afs/cern.ch/lhcb/software/lbinstall/afslbinstall install ${MyProject^^}_${MyVersion}
      

or

/afs/cern.ch/lhcb/software/rpmrel/rpmextractor.py -v ${LHCBTAR}/rpm/lhcb/${MyProject^^}_${MyVersion}[-_]*

    • Rebuild the project to get the proper hardoded paths in LbLogin.sh and such files.
      cd /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/LBSCRIPTS_${MyVersion}/LbScriptsSys/cmt
      cmt br cmt make
      

  • ALERT! Add CVMFS to the CMAKE_PREFIX_PATH

Add the following LbLogin.sh

export CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external

And to LbLogin.csh:

setenv CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external

  • ALERT! Don't forget to edit/fix the environment cache files

Two cache files have to be edited, for both sh and csh.

This means: * Removing the COMPILER_PATH env variable * Adjusting the PATH and LD_LIBRARY_PATH

A quickcheck of the consistency of the two files can be done using:

EnvCompare.py `envcache v7r5 sh` `envcache v7r6 sh`
EnvCompare.py `envcache v7r5 csh` `envcache v7r6 csh`

  • release and lock the AFS volume
    lb-project-manage-volume -r $MyProject $MyVersion
    lb-project-manage-volume -l $MyProject $MyVersion
    
  • prepare the web pages links
    $LHCBDOC/scripts/addrel.py $MyProject $MyVersion
    
>
>
Follow the recipe to deploy the RPMs to a repository, as mentioned in ProjectRelease
 

Creating the links RPMs

Line: 159 to 63
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2018 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2018 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 
Line: 192 to 96
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2018 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2018 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 
Line: 340 to 244
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2018 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 

And install the RPM in the RPM database (just the metadata) e.g.

Line: 505 to 409
  InstallProjectWithRPM
Added:
>
>

Troubleshooting and special installations

Install on AFS

This has to be done from an SLC6 node.

  • install on AFS
    • First, set some environment variables that define the project name and version to be installed. Used in the following commands (so you can simply cut and paste them directly). Works for bash shells, so recommend switching to this if it isn't your default.
      MyProject=<ProjectName>
      MyVersion=vXrY
      
      To check the following commands will work for you, now run
      echo ${MyProject^^}
      
      which should return the project name, in upper case.
    • prepare the AFS volume
      lb-project-manage-volume -c $MyProject $MyVersion
      
    • install the new project
       /afs/cern.ch/lhcb/software/lbinstall/afslbinstall install ${MyProject^^}_${MyVersion}
      

or

/afs/cern.ch/lhcb/software/rpmrel/rpmextractor.py -v ${LHCBTAR}/rpm/lhcb/${MyProject^^}_${MyVersion}[-_]*

    • Rebuild the project to get the proper hardoded paths in LbLogin.sh and such files.
      cd /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/LBSCRIPTS_${MyVersion}/LbScriptsSys/cmt
      cmt br cmt make
      

  • ALERT! Add CVMFS to the CMAKE_PREFIX_PATH

Add the following LbLogin.sh

export CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external

And to LbLogin.csh:

setenv CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external

  • ALERT! Don't forget to edit/fix the environment cache files

Two cache files have to be edited, for both sh and csh.

This means: * Removing the COMPILER_PATH env variable * Adjusting the PATH and LD_LIBRARY_PATH

A quickcheck of the consistency of the two files can be done using:

EnvCompare.py `envcache v7r5 sh` `envcache v7r6 sh`
EnvCompare.py `envcache v7r5 csh` `envcache v7r6 csh`

  • release and lock the AFS volume
    lb-project-manage-volume -r $MyProject $MyVersion
    lb-project-manage-volume -l $MyProject $MyVersion
    
  • prepare the web pages links
    $LHCBDOC/scripts/addrel.py $MyProject $MyVersion
    

 -- BenjaminCouturier - 13-Feb-2012 \ No newline at end of file

Revision 312017-11-15 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 96 to 96
 cmt br cmt make
Added:
>
>
  • ALERT! Add CVMFS to the CMAKE_PREFIX_PATH

Add the following LbLogin.sh

export CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external

And to LbLogin.csh:

setenv CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH}:/cvmfs/lhcb.cern.ch/lib/lhcb:/cvmfs/lhcb.cern.ch/lib/lcg/releases:/cvmfs/lhcb.cern.ch/lib/lcg/app/releases:/cvmfs/lhcb.cern.ch/lib/lcg/external
 
  • ALERT! Don't forget to edit/fix the environment cache files

Revision 302017-11-14 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 47 to 47
 
  • Identify the build_id from the nightlies release page
  • try to copy the RPMs to the repository
    build_id=1234
Changed:
<
<
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /data/archive/artifacts/release/lhcb-release/$build_id
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /eos/project/l/lhcbwebsites/www/lhcb-nightlies-artifacts/release/lhcb-release/$build_id/rpms
 
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
Changed:
<
<
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /data/archive/artifacts/release/lhcb-release/$build_id
>
>
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /eos/project/l/lhcbwebsites/www/lhcb-nightlies-artifacts/release/lhcb-release/$build_id/rpms
 

BE CAREFUL: Since 20141010, the release procedure automatically bumps up the release number for packages for which there is already a version in the RPM repo.

Revision 292017-10-19 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 34 to 34
 

Releasing the files

The files stored on the build machine need to be copied to the RPM repo.

Changed:
<
<
  • Login to lhcb-archive
>
>
  • Login to lhcb-archive and switch to the dev evrsion of LbScripts


 ssh lhcb-archive.cern.ch
bash
. /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/dev/InstallArea/scripts/LbLogin.sh

 
  • Identify the build_id from the nightlies release page
  • try to copy the RPMs to the repository
    build_id=1234
Line: 115 to 124
 

Creating the links RPMs

Deleted:
<
<
You need get a copy of the NightlyTools repository:
mkdir -p $TMPDIR/build
cd  $TMPDIR/build
git clone https://gitlab.cern.ch/lhcb-core/LbNightlyTools.git
cd LbNightlyTools
. setup.sh
  Then you build the RPMs like so:
Line: 132 to 133
 
Added:
>
>

Setting the new release as the "dev" version

 To create the meta RPM to put that version as the dev one:
lbn-generate-lbscriptsspec ${MyVersion} --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
Line: 143 to 151
 lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
Deleted:
<
<
And install the RPM in the RPM database (just the metadata) e.g.
 
Added:
>
>
And install the RPM in the RPM database
 $LHCBHOME/software/lbinstall/afslbinstall update LBSCRIPTSDEV
Added:
>
>
To install on CVMFS log-in as cvllhcb on cvmfs-lhcb and run:
cvmfs_transaction
cvmfslbinstall update LBSCRIPTSDEV
 
Changed:
<
<

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASES/LBSCRIPTS/dev:

>
>
ALERT! IN CASE OF PROBLEMS, you can force the link by hand
 
cd $LHCBRELEASES/LBSCRIPTS 
ln -nsf LBSCRIPTS_vXrYpZ dev
Line: 161 to 171
 

Switching the production release to a new version

Deleted:
<
<
A "prod" symbolic link exists on AFS that points to the production version of LbScripts.
 
Changed:
<
<
ALERT! When putting a release in production, the link has to be updated by doing:
>
>
To create the meta RPM to put that version as the dev one:
lbn-generate-lbscriptsspec ${MyVersion} --prod -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
 
Added:
>
>
Then copy the files to the RPM repository:
 
Changed:
<
<
cd $LHCBRELEASES/LBSCRIPTS ln -nsf LBSCRIPTS_vXrYpZ prod
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 
Deleted:
<
<
The links should be updated on CVMFS and on local install by install project itself.
 
Changed:
<
<
Upon going to production, you need to create the prod meta RPM and install the packages with the -justdb option in lppkr e.g.
>
>
And install the RPM in the RPM database on AFS:
 
Changed:
<
<
cd /afs/cern.ch/lhcb/software/rpmrel ./afslbpkr rpm -- -ivh --justdb tmp/LBSCRIPTS-X.Y.Z-1.rpm
>
>
$LHCBHOME/software/lbinstall/afslbinstall update LBSCRIPT
 
Added:
>
>
To install on CVMFS log-in as cvllhcb on cvmfs-lhcb and run:
cvmfs_transaction
cvmfslbinstall update LBSCRIPTS

ALERT! IN CASE OF PROBLEMS when putting a release in production, the link can be updated by doing:

cd $LHCBRELEASES/LBSCRIPTS 
ln -nsf LBSCRIPTS_vXrYpZ prod
 

Revision 282017-10-18 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 38 to 38
 
  • Identify the build_id from the nightlies release page
  • try to copy the RPMs to the repository
    build_id=1234
Changed:
<
<
lb-release-rpm /data/archive/artifacts/release/lhcb-release/$build_id
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /data/archive/artifacts/release/lhcb-release/$build_id
 
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
Changed:
<
<
lb-release-rpm --copy /data/archive/artifacts/release/lhcb-release/$build_id
>
>
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 /data/archive/artifacts/release/lhcb-release/$build_id
 

BE CAREFUL: Since 20141010, the release procedure automatically bumps up the release number for packages for which there is already a version in the RPM repo.

Line: 139 to 139
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy $TMPDIR/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/ lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 

And install the RPM in the RPM database (just the metadata) e.g.

Line: 302 to 302
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm --copy $TMPDIR/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --copy --rpm-dir=/eos/project/l/lhcbwebsites/www/lhcb-rpm/lhcb2017 $TMPDIR/toto/rpmbuild/RPMS/noarch/
 

And install the RPM in the RPM database (just the metadata) e.g.

Revision 272017-01-20 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 139 to 139
  Then copy the files to the RPM repository:
Added:
>
>
lb-release-rpm $TMPDIR/toto/rpmbuild/RPMS/noarch/
 lb-release-rpm --copy $TMPDIR/toto/rpmbuild/RPMS/noarch/

And install the RPM in the RPM database (just the metadata) e.g.

Changed:
<
<
$LHCBHOME/software/lbinstall/afslbinstall --just-db install LBSCRIPTSDEV $LHCBHOME/software/rpmrel/afslbpkr rpm -- -Uvh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTSDEV-X.Y.Z-1.noarch.rpm
>
>
$LHCBHOME/software/lbinstall/afslbinstall update LBSCRIPTSDEV
 

Revision 262016-10-19 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 22 to 22
 

Building

  • Trigger by hand the release Jenkins job:
Changed:
<
<
>
>
 
    • add LbScripts in the field projects_list
    • click on the Build button (leave all the others fields empty)
Line: 49 to 49
 If your slot contains more projects that the ones requested for release, you need to ONLY copy the needed ones to the RPM repo. In that case the --rpm-regex option of lb-release-rpm should be used.
Added:
>
>
Copy the tar files * try to copy the RPMs to the repository
build_id=1234
lb-release-oldtar /data/archive/artifacts/release/lhcb-release/$build_id/olddist
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
      lb-release-oldtar --copy /data/archive/artifacts/release/lhcb-release/$build_id/olddist
      
 

Install on AFS

Line: 66 to 75
 lb-project-manage-volume -c $MyProject $MyVersion
    • install the new project
Changed:
<
<
/afs/cern.ch/lhcb/software/lbinstall/lbinstall install ${MyProject^^}_${MyVersion}
>
>
/afs/cern.ch/lhcb/software/lbinstall/afslbinstall install ${MyProject^^}_${MyVersion}
 

or

Line: 102 to 111
 
  • prepare the web pages links
    $LHCBDOC/scripts/addrel.py $MyProject $MyVersion
    
Deleted:
<
<
  • create the old tarballs
    cd $LHCBRELEASES
    mkLHCbtar -p $MyProject -v $MyVersion
    
 

Creating the links RPMs

Line: 140 to 144
  And install the RPM in the RPM database (just the metadata) e.g.
Added:
>
>
$LHCBHOME/software/lbinstall/afslbinstall --just-db install LBSCRIPTSDEV
 $LHCBHOME/software/rpmrel/afslbpkr rpm -- -Uvh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTSDEV-X.Y.Z-1.noarch.rpm

Revision 252016-10-12 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 66 to 66
 lb-project-manage-volume -c $MyProject $MyVersion
    • install the new project
Changed:
<
<
/afs/cern.ch/lhcb/software/rpmrel/afslbpkr install ${MyProject^^}_${MyVersion}
>
>
/afs/cern.ch/lhcb/software/lbinstall/lbinstall install ${MyProject^^}_${MyVersion}
 

or

Revision 242016-09-29 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 69 to 69
  /afs/cern.ch/lhcb/software/rpmrel/afslbpkr install ${MyProject^^}_${MyVersion}
Added:
>
>
or
/afs/cern.ch/lhcb/software/rpmrel/rpmextractor.py -v ${LHCBTAR}/rpm/lhcb/${MyProject^^}_${MyVersion}[-_]*
 
    • Rebuild the project to get the proper hardoded paths in LbLogin.sh and such files.
      cd /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/LBSCRIPTS_${MyVersion}/LbScriptsSys/cmt
      cmt br cmt make

Revision 232016-01-28 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 120 to 120
  To create the meta RPM to put that version as the prod one:
Changed:
<
<
lbn-generate-lbscriptsspec vXrYpZ --prod -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
>
>
lbn-generate-lbscriptsspec ${MyVersion} --prod -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
 

To create the meta RPM to put that version as the dev one:

Changed:
<
<
lbn-generate-lbscriptsspec vXrYpZ --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
>
>
lbn-generate-lbscriptsspec ${MyVersion} --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
 

Then copy the files to the RPM repository:

Revision 222016-01-21 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 11 to 11
 To work on the clone, fork it in Gitlab and create Merge requests with new features. Once done, just tag the code as for any GIT project and push the tag to the main repo.
Changed:
<
<
>
>
To generate the release notes: [... sync you branch with origin master here] cd LbScriptsSys/doc ./getreleasenotes.sh > release.notes git add release.notes git commit -m "Added release notes" git push origin master
 

Building

Line: 68 to 74
 cmt br cmt make
Deleted:
<
<
    • Update release notes in LbScriptsSys (until an automated solution is found).
 
  • ALERT! Don't forget to edit/fix the environment cache files
Line: 96 to 100
 
  • create the old tarballs
Changed:
<
<
mkLHCbtar $MyProject $MyVersion
>
>
cd $LHCBRELEASES mkLHCbtar -p $MyProject -v $MyVersion
 
Line: 111 to 116
 . setup.sh
Changed:
<
<
Then you build the RPM like so:

lbn-generate-lbscriptsspec vXrYpz  -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
>
>
Then you build the RPMs like so:
  To create the meta RPM to put that version as the prod one:

Revision 212016-01-11 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Added:
>
>

Updating/Tagging the sources

The GIT repository used for the sources is:

ssh://git@gitlab.cern.ch:7999/lhcb-core/LbScripts.git

To work on the clone, fork it in Gitlab and create Merge requests with new features. Once done, just tag the code as for any GIT project and push the tag to the main repo.

Building

  • Once the build is completed, check the checkout log

Releasing the files

The files stored on the build machine need to be copied to the RPM repo.

  • Login to lhcb-archive
  • Identify the build_id from the nightlies release page
  • try to copy the RPMs to the repository
    build_id=1234
    lb-release-rpm /data/archive/artifacts/release/lhcb-release/$build_id
    
    • if everything is fine, do the real copy and update the repository info
      build_id=XXX
      lb-release-rpm --copy /data/archive/artifacts/release/lhcb-release/$build_id
      

BE CAREFUL: Since 20141010, the release procedure automatically bumps up the release number for packages for which there is already a version in the RPM repo. If your slot contains more projects that the ones requested for release, you need to ONLY copy the needed ones to the RPM repo. In that case the --rpm-regex option of lb-release-rpm should be used.

Install on AFS

This has to be done from an SLC6 node.

  • install on AFS
    • First, set some environment variables that define the project name and version to be installed. Used in the following commands (so you can simply cut and paste them directly). Works for bash shells, so recommend switching to this if it isn't your default.
      MyProject=<ProjectName>
      MyVersion=vXrY
      
      To check the following commands will work for you, now run
      echo ${MyProject^^}
      
      which should return the project name, in upper case.
    • prepare the AFS volume
      lb-project-manage-volume -c $MyProject $MyVersion
      
    • install the new project
       /afs/cern.ch/lhcb/software/rpmrel/afslbpkr install ${MyProject^^}_${MyVersion}
      

    • Rebuild the project to get the proper hardoded paths in LbLogin.sh and such files.
      cd /afs/cern.ch/lhcb/software/releases/LBSCRIPTS/LBSCRIPTS_${MyVersion}/LbScriptsSys/cmt
      cmt br cmt make
      

    • Update release notes in LbScriptsSys (until an automated solution is found).

  • ALERT! Don't forget to edit/fix the environment cache files

Two cache files have to be edited, for both sh and csh.

This means: * Removing the COMPILER_PATH env variable * Adjusting the PATH and LD_LIBRARY_PATH

A quickcheck of the consistency of the two files can be done using:

EnvCompare.py `envcache v7r5 sh` `envcache v7r6 sh`
EnvCompare.py `envcache v7r5 csh` `envcache v7r6 csh`

  • release and lock the AFS volume
    lb-project-manage-volume -r $MyProject $MyVersion
    lb-project-manage-volume -l $MyProject $MyVersion
    
  • prepare the web pages links
    $LHCBDOC/scripts/addrel.py $MyProject $MyVersion
    
  • create the old tarballs
    mkLHCbtar $MyProject $MyVersion
    

Creating the links RPMs

You need get a copy of the NightlyTools repository:

mkdir -p $TMPDIR/build
cd  $TMPDIR/build
git clone https://gitlab.cern.ch/lhcb-core/LbNightlyTools.git
cd LbNightlyTools
. setup.sh

Then you build the RPM like so:

lbn-generate-lbscriptsspec vXrYpz  -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec

To create the meta RPM to put that version as the prod one:

lbn-generate-lbscriptsspec vXrYpZ --prod -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec

To create the meta RPM to put that version as the dev one:

lbn-generate-lbscriptsspec vXrYpZ --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec

Then copy the files to the RPM repository:

lb-release-rpm --copy $TMPDIR/toto/rpmbuild/RPMS/noarch/

And install the RPM in the RPM database (just the metadata) e.g.

$LHCBHOME/software/rpmrel/afslbpkr rpm -- -Uvh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTSDEV-X.Y.Z-1.noarch.rpm

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASES/LBSCRIPTS/dev:

cd $LHCBRELEASES/LBSCRIPTS 
ln -nsf LBSCRIPTS_vXrYpZ dev

Switching the production release to a new version

A "prod" symbolic link exists on AFS that points to the production version of LbScripts.

ALERT! When putting a release in production, the link has to be updated by doing:

cd $LHCBRELEASES/LBSCRIPTS 
ln -nsf LBSCRIPTS_vXrYpZ prod

The links should be updated on CVMFS and on local install by install project itself.

Upon going to production, you need to create the prod meta RPM and install the packages with the -justdb option in lppkr e.g.

cd /afs/cern.ch/lhcb/software/rpmrel
./afslbpkr rpm -- -ivh --justdb tmp/LBSCRIPTS-X.Y.Z-1.rpm

==========================================================================================================

For LBSCRIPTS in SVN - Valid until LbScripts v8r4x - Obsolete afterwards

==========================================================================================================

 

Release tools

LbScripts can be released with the same tools as for all other projects, but some extra steps are needed for install project.

Revision 202015-11-25 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 76 to 76
 
mkdir -p $TMPDIR/build
cd  $TMPDIR/build
Changed:
<
<
git clone http://git.cern.ch/pub/LbNightlyTools
>
>
git clone https://gitlab.cern.ch/lhcb-core/LbNightlyTools.git
 cd LbNightlyTools . setup.sh

Revision 192015-09-01 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 42 to 42
 

Building the release

Changed:
<
<
cd $LHCBRELEASE
>
>
cd $LHCBRELEASES
 mkproject -p LbScripts -v vXrYpZ --not-parallel
Line: 113 to 113
 

Setting the new release as the "dev" version

Changed:
<
<
Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:
>
>
Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASES/LBSCRIPTS/dev:
 
Changed:
<
<
cd $LHCBRELEASE/LBSCRIPTS
>
>
cd $LHCBRELEASES/LBSCRIPTS
 rm dev && ln -s LBSCRIPTS_vXrYpZ dev

or

Changed:
<
<
cd $LHCBRELEASE/LBSCRIPTS
>
>
cd $LHCBRELEASES/LBSCRIPTS
 ln -nsf LBSCRIPTS_vXrYpZ dev
Line: 133 to 133
 ALERT! When putting a release in production, the link has to be updated by doing:
Changed:
<
<
cd $LHCBRELEASE/LBSCRIPTS
>
>
cd $LHCBRELEASES/LBSCRIPTS
 rm prod && ln -s LBSCRIPTS_vXrYpZ prod

Revision 182015-06-30 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 74 to 74
  You need get a copy of the NightlyTools repository:
Changed:
<
<
mkdir -p /build/$USER cd /build/$USER
>
>
mkdir -p $TMPDIR/build cd $TMPDIR/build
 git clone http://git.cern.ch/pub/LbNightlyTools cd LbNightlyTools . setup.sh
Line: 100 to 100
  Then copy the files to the RPM repository:
Changed:
<
<
lb-release-rpm --copy /tmp/bcouturi/toto/rpmbuild/RPMS/noarch/
>
>
lb-release-rpm --copy $TMPDIR/toto/rpmbuild/RPMS/noarch/
 

And install the RPM in the RPM database (just the metadata) e.g.

Revision 172015-06-23 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 105 to 105
  And install the RPM in the RPM database (just the metadata) e.g.
Changed:
<
<
$LHCBHOME/software/rpmrel/afslbpkr rpm -ivh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTS_v8r4-1.0.0-1.noarch.rpm
>
>
$LHCBHOME/software/rpmrel/afslbpkr rpm -- -ivh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTS_v8r4-1.0.0-1.noarch.rpm
 $LHCBHOME/software/rpmrel/afslbpkr rpm -- -Uvh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTSDEV-8.4.0-1.noarch.rpm

Revision 162015-05-27 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 98 to 98
 lbn-generate-lbscriptsspec v8r1p1 --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
Added:
>
>
Then copy the files to the RPM repository:
lb-release-rpm --copy /tmp/bcouturi/toto/rpmbuild/RPMS/noarch/

And install the RPM in the RPM database (just the metadata) e.g.

$LHCBHOME/software/rpmrel/afslbpkr rpm -ivh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTS_v8r4-1.0.0-1.noarch.rpm 
$LHCBHOME/software/rpmrel/afslbpkr rpm -- -Uvh --justdb $LHCBTAR/rpm/lhcb/LBSCRIPTSDEV-8.4.0-1.noarch.rpm

 

Setting the new release as the "dev" version

Revision 152015-05-21 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 127 to 127
  The links should be updated on CVMFS and on local install by install project itself.
Added:
>
>
Upon going to production, you need to create the prod meta RPM and install the packages with the -justdb option in lppkr e.g.
cd /afs/cern.ch/lhcb/software/rpmrel
./afslbpkr rpm -- -ivh --justdb tmp/LBSCRIPTS-8.3.1-1.rpm
./afslbpkr rpm -- -Uvh --justdb tmp/LBSCRIPTS-8.3.1-1.rpm

 

Test uses cases

Revision 142014-12-05 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 69 to 69
 mkproject -p LbScripts -v vXrYpZ -a K
Added:
>
>

Creating the RPMs

You need get a copy of the NightlyTools repository:

mkdir -p /build/$USER
cd /build/$USER
git clone http://git.cern.ch/pub/LbNightlyTools
cd LbNightlyTools
. setup.sh

Then you build the RPM like so:

lbn-generate-lbscriptsspec v8r1p1  -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec

To create the meta RPM to put that version as the prod one:

lbn-generate-lbscriptsspec v8r1p1 --prod -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec

To create the meta RPM to put that version as the dev one:

lbn-generate-lbscriptsspec v8r1p1 --dev -o lb.spec -b $TMPDIR/toto && rpmbuild -bb lb.spec
 

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:

Revision 132014-12-01 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 78 to 78
 rm dev && ln -s LBSCRIPTS_vXrYpZ dev
Added:
>
>
or
cd $LHCBRELEASE/LBSCRIPTS 
ln -nsf LBSCRIPTS_vXrYpZ dev
 

Switching the production release to a new version

Revision 122013-01-22 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 49 to 49
  ALERT! Don't forget to edit/fix the environment cache files
Added:
>
>
Two cache files have to be edited, for both sh and csh.

This means: * Removing the COMPILER_PATH env variable * Adjusting the PATH and LD_LIBRARY_PATH

A quickcheck of the consistency of the two files can be done using:

EnvCompare.py `envcache v7r5 sh` `envcache v7r6 sh`
EnvCompare.py `envcache v7r5 csh` `envcache v7r6 csh`

The release also needs to be locked:

mkproject -p LbScripts -v vXrYpZ -a K 
 

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:

Revision 112012-11-01 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 47 to 47
 
Added:
>
>
ALERT! Don't forget to edit/fix the environment cache files
 

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:

Revision 102012-10-08 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 109 to 109
 export CMTCONFIG=x86_64-slc5-gcc43-opt
Changed:
<
<
N.B. In order to test LbScripts before the release of a new version, it is necessary to invoke lbLogin with the following options:
>
>
N.B. In order to test LbScripts before the release of a new version, it is necessary to invoke LbLogin with the following options:
 
LbLogin --user-area-scripts --scripts-version=""
Line: 120 to 120
 * Install a version of Gaudi and check logs and presence of files
Changed:
<
<
python install_project.py -b Gaudi v23r1
>
>
python install_project.py -b Gaudi v23r4
 

* Use install project to check that the software is installed

Changed:
<
<
python install_project.py -b --check Gaudi v23r1
>
>
python install_project.py -b --check Gaudi v23r14
 

* Check group permissions on repositories (XXX check what they should be)

Line: 138 to 138
  * install Brunel
Changed:
<
<
python install_project.py -b Brunel
>
>
python install_project.py -b Brunel v44r0
 

* Setup the Brunel environment and run the SAM test

Line: 149 to 149
 cmt TestPackage sam
Added:
>
>
* Try SetupProject with --use
python install_project.py AppConfig v3r147
SetupProject --debug --use="AppConfig v3r147"  Brunel v44r0
 

Chained area

Line: 156 to 161
 
export MYSITEROOT=/opt/install/joblocal:/opt/install/shared
Changed:
<
<
In this configuration, for the tests to be more realistics, it is necessary to make sure that the test cannot modify files in the shared area (e.g. chaining with cvmfs with give that effect).
>
>
In this configuration, for the tests to be more realistics, it is necessary to make sure that the test cannot modify files in the shared area (e.g. chaining with cvmfs with give that effect). e.g. using two different accounts on lxplus (with /tmp/lben/siteroot containing the previous installation).

setenv MYSITEROOT '/tmp/benlhcb/LocalArea:/tmp/lben/siteroot'
cd /tmp/benlhcb/LocalArea
python ./install_project.py AppConfig v3r146
source ./LbLogin.csh

Check that AppConfig v3r146 is in /tmp/benlhcb/LocalArea/lhcb/EXTRAPACKAGES/

SetupProject --debug --use="AppConfig v3r146"  Brunel v44r0

Run Brunel with a few events

gaudirun.py $APPCONFIGOPTS/Brunel/DataType-2012.py $BRUNELROOT/options/COLLISION12-Beam4000GeV-VeloClosed-MagDown.py --option="from Configurables import Brunel; Brunel().EvtMax=10"

  The same tests as for a single area should be re-run.

Revision 92012-04-30 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 43 to 43
 
cd $LHCBRELEASE 
Changed:
<
<
mkproject -p LBSCRIPTS -v vXrYpZ --not-parallel
>
>
mkproject -p LbScripts -v vXrYpZ --not-parallel
 

Revision 82012-04-25 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 160 to 160
  The same tests as for a single area should be re-run.
Added:
>
>
InstallProjectWithRPM
 -- BenjaminCouturier - 13-Feb-2012 \ No newline at end of file

Revision 72012-04-13 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 158 to 158
  In this configuration, for the tests to be more realistics, it is necessary to make sure that the test cannot modify files in the shared area (e.g. chaining with cvmfs with give that effect).
Added:
>
>
The same tests as for a single area should be re-run.
 -- BenjaminCouturier - 13-Feb-2012 \ No newline at end of file

Revision 62012-04-12 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 32 to 32
 
Added:
>
>
Once all packages have been tagged individually, call:
tag_package -P LbScripts version

 

Building the release

cd $LHCBRELEASE 
Changed:
<
<
mkproject -p LBSCRIPTS -v vXrYpZ -not-parallel
>
>
mkproject -p LBSCRIPTS -v vXrYpZ --not-parallel
 

Revision 52012-03-26 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 103 to 102
 export CMTCONFIG=x86_64-slc5-gcc43-opt
Added:
>
>
N.B. In order to test LbScripts before the release of a new version, it is necessary to invoke lbLogin with the following options:
LbLogin --user-area-scripts --scripts-version=""
 

Single area

Revision 42012-03-09 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"
Changed:
<
<

Preparing the release

>
>

Preparing the release

 

Release tools

LbScripts can be released with the same tools as for all other projects, but some extra steps are needed for install project.
Line: 31 to 31
 lbscripts_version = "v6r6p4"
Changed:
<
<

Setting the new release as the "dev" version

>
>

Building the release

cd $LHCBRELEASE 
mkproject -p LBSCRIPTS -v vXrYpZ -not-parallel

Setting the new release as the "dev" version

  Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:
Line: 41 to 50
 
Changed:
<
<

Switching the production release to a new version

>
>

Switching the production release to a new version

  A "prod" symbolic link exists on AFS that points to the production version of LbScripts.
Line: 55 to 64
 The links should be updated on CVMFS and on local install by install project itself.
Added:
>
>

Test uses cases

This section provides some (incomplete) information about the scenarios that should be tested when releasing a new version of LbScripts.

Main types of installations: * Single repository: Used for normal installations on a mahine without AFS or CVMFS * Chained repositories: Used for grid jobs which use software from a shared area, but also install software in their local disk space

Main use case: * Install some new software * Add versions/new projects to an existing area * Check whether a project is installed * Check whether the SQLDDDB data package is installed (this is a special case)

Prerequisites

Make sure that the account used for testing does not have the LHCb environment already set up ! The variables CMTSITE and CMTPROJECTPATH especially ! For accounts linked to group z5, touch the file ".nogrouplogin" to avoid invoking the group scripts automatically !

A version of LbScripts is needed. For the production version:

wget http://lhcbproject.web.cern.ch/lhcbproject/dist/install_project.py
For the dev version:
wget http://lhcbproject.web.cern.ch/lhcbproject/dist/devel/install_project.py

If a version of install_project is already there, it is also possible to use the --dev-install option to switch to the "dev" version of install project.

MYSITEROOT and CMTCONFIG must be defined, e.g.

export MYSITEROOT=/opt/install/lib
export CMTCONFIG=x86_64-slc5-gcc43-opt

Single area

* Install a version of Gaudi and check logs and presence of files

python install_project.py -b Gaudi v23r1 

* Use install project to check that the software is installed

python install_project.py -b --check Gaudi v23r1 

* Check group permissions on repositories (XXX check what they should be)

 
Added:
>
>
* Check that --check on SQLDDDB is always false
python install_project.py --check SQLDDDB

* install Brunel

python install_project.py -b Brunel 

* Setup the Brunel environment and run the SAM test

. ./LbLogin.sh
SetupProject Brunel 
cd $BRUNELSYSROOT/cmt
cmt TestPackage sam

Chained area

In this configuration, the MYSITEROOT contains several repositories (2 normally) separated by a colon like a PATH.

export MYSITEROOT=/opt/install/joblocal:/opt/install/shared
In this configuration, for the tests to be more realistics, it is necessary to make sure that the test cannot modify files in the shared area (e.g. chaining with cvmfs with give that effect).
  -- BenjaminCouturier - 13-Feb-2012

Revision 32012-02-20 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Line: 43 to 43
 

Switching the production release to a new version

Changed:
<
<
A "prod" symbolic link exists BOTH on AFS and CVMFS that points to the production version of LbScripts.
>
>
A "prod" symbolic link exists on AFS that points to the production version of LbScripts.
 
Changed:
<
<
ALERT! When putting a release in production, both links have to be updated at the same time by doing:
>
>
ALERT! When putting a release in production, the link has to be updated by doing:
 
cd $LHCBRELEASE/LBSCRIPTS 
rm prod && ln -s LBSCRIPTS_vXrYpZ prod
Changed:
<
<
In the case of CVMFS, the same operation is needed a call to cvmfs-update-client is needed after the modifications (c.f. ProjectRelease#Installation_on_CERNVM)
>
>
The links should be updated on CVMFS and on local install by install project itself.
 

Revision 22012-02-13 - BenjaminCouturier

Line: 1 to 1
 
META TOPICPARENT name="ProjectRelease"

Preparing the release

Release tools

LbScripts can be released with the same tools as for all other projects, but some extra steps are needed for install project.
Deleted:
<
<
Furthermore, a cached version of the environment is set, so it necessary to make sure that you do not have LbScripts in your User_release_area when performing the release.
 
Added:
>
>
ALERT! a cached version of the environment is generated, so it is necessary to make sure that you do not have LbScripts in your User_release_area when performing the release.
 
Changed:
<
<

install_projects specific steps

>
>

LbConfiguration

The LbConfiguration package generates the LbLogin script whichs contains the name of the released version.

ALERT! Therefore, LbConfiguration must ALWAYS be released with the same version as LbScripts itself !

LbLegacy / install_projects specific steps

  When releasing LbLegacy, install_project.py must be updated at each new release of LbScripts in order to make sure that the auto-update mechanism of install_project and LbScripts works correctly. In this scripts the script_version variable must be set to the day of the release with the following pattern: YYMMDD, e.g.:
Line: 36 to 43
 

Switching the production release to a new version

Changed:
<
<
A "prod" symbolic link exists both on AFS and CVMFS that points to the production version of LbScripts. When putting in production, both links have to be updated at the same time by doing:
>
>
A "prod" symbolic link exists BOTH on AFS and CVMFS that points to the production version of LbScripts.
 
Changed:
<
<
Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:
>
>
ALERT! When putting a release in production, both links have to be updated at the same time by doing:
 
cd $LHCBRELEASE/LBSCRIPTS 

Revision 12012-02-13 - BenjaminCouturier

Line: 1 to 1
Added:
>
>
META TOPICPARENT name="ProjectRelease"

Preparing the release

Release tools

LbScripts can be released with the same tools as for all other projects, but some extra steps are needed for install project. Furthermore, a cached version of the environment is set, so it necessary to make sure that you do not have LbScripts in your User_release_area when performing the release.

install_projects specific steps

When releasing LbLegacy, install_project.py must be updated at each new release of LbScripts in order to make sure that the auto-update mechanism of install_project and LbScripts works correctly. In this scripts the script_version variable must be set to the day of the release with the following pattern: YYMMDD, e.g.:

script_version = '120206'

It should increase monotonously, as install_project uses this variable to check wherther a new version is available.

The LbScripts version should be set to the version of LbScripts to be released as this is used to choose the version to e downloaded from the repository e.g

lbscripts_version = "v6r6p4"

Setting the new release as the "dev" version

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:

cd $LHCBRELEASE/LBSCRIPTS 
rm dev && ln -s LBSCRIPTS_vXrYpZ dev

Switching the production release to a new version

A "prod" symbolic link exists both on AFS and CVMFS that points to the production version of LbScripts. When putting in production, both links have to be updated at the same time by doing:

Once the release of LbScripts vXrYpZ has been deployed to the the release area, it is necessary to change the link $LHCBRELEASE/LBSCRIPTS/dev:

cd $LHCBRELEASE/LBSCRIPTS 
rm prod && ln -s LBSCRIPTS_vXrYpZ prod

In the case of CVMFS, the same operation is needed a call to cvmfs-update-client is needed after the modifications (c.f. ProjectRelease#Installation_on_CERNVM)

-- BenjaminCouturier - 13-Feb-2012

 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback