-
Notifications
You must be signed in to change notification settings - Fork 0
Building ifdhc for SciSoft
Marc Mengel edited this page Feb 13, 2025
·
1 revision
{{>TOC}}
Ifdhc is treated as a third party product by the SciSoft build system. This means that after tagging ifdhc, the build scripts must also be updated.
- Use git flow from the head of develop
- git flow release start
<tag>{=html} - Make sure the version in util/ifdh_version.h is correct
- Commit changes
- git flow release finish
<tag>{=html} - git push origin develop master
<tag>{=html}
- git clone
ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-ifdhc-ssi-build
- This repository works directly from the master branch.
- Update origpkgver in both bootstrap.sh and build_ifdhc.sh
- This is often the only required change.
- There are patch files. Unless there are major changes in ifdhc, the patch files probably do not need to be updated.
- source /cvmfs/larsoft.opensciencegrid.org/products/setup
- ./bootstrap.sh
<path to some local product directory>{=html}- This step makes a source code tarball, which must be tested.
- ./build_ifdhc.sh
<path to some local product directory>{=html} e17:p2715a prof >& log.e17 &- This is a test build. You can run it from the same directory as the bootstrap.
- Fix problems if necessary. (Lynn Garren or Chris Green may be available for consultation.)
- If you change anything, run bootstrap again to make a new source code tarball.
- commit changes and tag using the same tag as on ifdhc
- git push origin master
<tag>{=html} - Only do this after you have successful builds with at least e17:p2715a and c2:p2715a
- git push origin master
- ./build_ifdhc.sh
<path to some local product directory>{=html} e17:p2715a prof tar- Again, only do this after you have successful builds.
- This step makes the ifdhc_config tarball
- copyToSciSoft
<path to some local product directory>{=html}/ifdhc-<dot_version>{=html}-source.source.tar.bz2 - copyToSciSoft
<path to some local product directory>{=html}/ifdhc_config-<dot_version>{=html}-noarch.source.tar.bz2 - IMPORTANT: Although you might produce a flavored tarball during testing, please do not upload it to scisoft. All flavored builds should be produced on Jenkins.
- The ifbeam repository works directly from the master branch.
- Edit ups/ifbeam.table to use the new release of ifdhc.
- commit and tag
- git push origin master
<tag>{=html} - git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-ifbeam-ssi-build
- Update origpkgver in bootstrap.sh and build_ifbeam.sh.
- Make a test build as per ifdhc.
- When you are happy, upload the source code tarball with copyToSciSoft.
- The nucondb repository works directly from the master branch.
- Edit ups/nucondb.table to use the new release of ifdhc.
- commit and tag
- git push origin master
<tag>{=html} - git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework-nucondb-ssi-build
- Update origpkgver in bootstrap.sh and build_nucondb.sh.
- Make a test build as per ifdhc.
- When you are happy, upload the source code tarball with copyToSciSoft.
- ifdh_art uses cetbuildtools and is handled like any other package which uses art.
- Note that a given release of ifdh_art may be built against other compatible releases of art.
- This package contains branches used for different dependency sets.
- The head of develop is compatible with art v3_03. It is not compatible with older releases.
- The branch for_art_v3_02 is compatible with art v3_02.
- The branch v2_07_for_art_v2 is compatible with art v2_13_00 and art v3_01. This branch is maintained for NOvA.
- Consult Lynn Garren or Kyle Knopfel for help with this package.
- It can be useful to create a SciSoft ifdh distribution.
- This step is optional.
- Do this after tags are in place for libwda, ifdhc, ifbeam, nucondb, and ifdh_art.
- git clone ssh://p-build-framework@cdcvs.fnal.gov/cvs/projects/build-framework
- git checkout for_art_v3_02
- This is the branch used for nutools v3_02_00 with genie v2.
- Note that for_art_v3_02_and_genie_v3 is available for nutools v3_02_01 and genie v3.
- Edit the versions of libwda, ifdhc, ifbeam, nucondb, and ifdh_art in
the top level CMakeLists.txt
- Do not change anything else.
- You may need to setup a cmake product - any release will work.
- cd some empty directory
- cmake
<path to the build-framework clone>{=html} - cd art_externals
- copyToSciSoft ifdh-cfg-
<dot version>{=html}- The dot version will match the ifdh_art version
- Start a Jenkins build
- Use https://buildmaster.fnal.gov/buildmaster/view/Art/job/build-ifdh/
- When the build finishes download the results into an empty directory with copyFromJenkins
- copyFromJenkins -N -q c2 -q c7 -q e17 -q e19 build-ifdh
- copyToSciSoft .bz2.txt
- copyToSciSoft and copyFromJenkins can be downloaded from https://scisoft.fnal.gov/scisoft/bundles/tools/
- copyToSciSoft uses scisoftportal.fnal.gov to install files on SciSoft.
- Once a file has been uploaded to SciSoft, copyToSciSoft will NOT
allow a replacement.
- Usually this is a good thing and we use it to our advantage.
- If necessary, login to scisoftportal and very carefully remove only the file in question from /nasroot/SciSoft/.
- You will need valid Kerberos credentials, an authorized FermiCloud account, and write permissions for SciSoft.
- See the scisoft:SciSoft wiki page.
- LArSoft includes the latest available ifdhc_config in their release distributions.
- The version of ifdhc_config is updated in
larsoft/releaseDB/CMakeLists.txt
- This step is usually done by the larsoft release manager.
- Note that a new release of ifdhc will require new releases of other packages such as nugen and an updated nulite distribution. This will generally be handled by the SciSoft team.