Skip to content

Building ifdhc for SciSoft

Marc Mengel edited this page Feb 13, 2025 · 1 revision

Building ifdhc for SciSoft

{{>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.

Tag ifdhc

  • 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}

Update the build scripts

  • 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
  • ./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.

ifbeam

  • 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.

nucondb

  • 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

  • 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.

Making an ifdh distribution

  • 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

About copyToSciSoft

  • 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.

ifdhc_config and LArSoft

  • 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.

Clone this wiki locally