« Previous -
Next » -
Lynn Garren, 05/06/2019 05:58 PM
What Lynn does¶
Build "third party" ups products as needed for art and larsoft¶
- We have a defined procedure that uses a number of scriptlets found in the ssibuildshims product.
- Each product has a tiny redmine repository for the build and bootstrap scripts.
- Scripts include autobuild.sh, bootstrap.sh, build_xxx.sh, and usually ups/xxx.table, where xxx is the product name.
- We sometimes need patch files.
- Other scripts are occasionally included, such as bootstrap_datasets.sh for geant4.
- We tag these repositories with the product version.
- To ensure reproducible builds, we only build from tagged releases. In rare cases, we use a commit hash.
- We require that the source code be captured in a source code tarball for reproducible builds.
- We bootstrap and run local test builds for the supported compiler options. This is a rapid turnaround development step.
- Whenever possible, we run unit tests and require that these tests pass.
- Once everything looks good, the source code tarball is uploaded to SciSoft.
Build art releases after they are tagged.¶
- Kyle sends around an email to the SciSoft Team when a release is tagged.
- Update information in build-framework/CMakeLists.txt
- There are multiple branches for different product configurations
- Run cmake to get the new build configuration files.
- Check the new config files.
- Always compare against the previous release.
- If they are OK, use copyToSciSoft to install ONLY the appropriate build configuration files on SciSoft. There are html files for each release that also need to be installed.
- Start a Jenkins build
- Sometimes there are problems with the build.
- Investigate and fix.
- A local test build is sometimes helpful, depending on the problem.
- Once the build has completed successfully, download the tarballs locally and then upload them to SciSoft.
- Work in an empty directory
- copyFromJenkins -N -q c2 -q c7 -q e17 -q e19 critic-all
- copyToSciSoft *
Build mu distributions¶
- The mu distribution is basically an art distribution with a few additional products.
Build nutools releases and the nu or nulite distributions.¶
- Both NOvA and LArSoft can drive the need for a new release of nutools.
- NOvA uses the full nu distribution.
- LArSoft now uses the nulite distribution which ignores packages that are NOvA specific.
- Discussion will start soon on a plan to split nutools into modular components.
- Presently nutools contains, a genie interface, a geant4 interface, a random number interface, and other bits. Updates are needed on different timescales and we would like to decouple them.
LArSoft release management¶
- Advise and collect information for each weekly release.