Project

General

Profile

Notes for NuTools release managers » History » Version 18

« Previous - Version 18/50 (diff) - Next » - Current version
Lynn Garren, 01/15/2020 02:32 PM


Notes for NuTools release managers

Updating one package

  • If you only need a new version of a single package, such as nugen, then simply checkout that package, edit, tag and build.
  • If you want a complete nulite distribution with the new package, then you would also checkout nutools and follow the instructions for updating the nu suite.

The nu suite

The nu suite consists of nutools, nuevdb, nug4, nugen, nurandom, and nusimdata.

Tools

  • mrb v3_04_03 or later
    • This version adds the nu_suite gitCheckout option.
  • buildFW (used by the Jenkins build)
  • copyFromJenkins
  • copyToSciSoft
  • pullProducts
  • pullPackage
  • larreltools v1_06_00 or later
    • This package was created for LArSoft, but contains common tools.
    • dogit
    • makeNuLiteWorkDir
    • updateVersion

Updating the nutools suite for LArSoft

These instructions presume that the work is done on scisoftbuild01.fnal.gov. These instructions also presume that the head of develop will be used. If the tag will be made on a branch, refer to the NOvA instructions.

update "third party" products

Before building the nu suite, new releases of "third party" products need to be available. Our definition of "third party products" is any product that does not use cetbuildtools or cetmodules.

This example updates the nu suite to use art 3.04.00. python3 is the default. This means that the py3 qualifier is no longer used. Instead, the py2 qualifier is used to specify a build with python v2_7_15a. Because of this change, root has been updated to v6_18_04c. Many products in the nulite distribution will need new releases with updated table files.

setup the working environment

source /products/setup
setup mrb
setup larreltools
export PATH=$LARRELTOOLS_DIR/expert:${PATH}
export MRB_PROJECT=nu

make a working directory and checkout the code

makeNuLiteWorkDir `pwd` v3_06_00 e19
makeNuLiteWorkDir `pwd` v3_06_00 c7

update, build, and test the code

Create a temporary release branch. This workflow mimics, but does not use, gitflow. This allows us more flexibility when dealing with multiple repositories.

source v3_06_00/e19p/localProducts_nu_v3_06_00_e19_prof/setup
cd $MRB_SOURCE
tagLAr start $MRB_PROJECT_VERSION

Now, we update the code. This example updates the head of the nutools suite to use art 3.04.
mrb uv canvas_root_io v1_05_00
mrb uv art v3_04_00
mrb uv art_root_io v1_02_00
mrb uv gallery v1_14_00
mrb uv toyExperiment v0_05_00
mrb uv version_set s94

Updating the nutools suite for NOvA

All NOvA releases are tagged and built off a special branch.

setup the working environment

source /cvmfs/nova.opensciencegrid.org/externals/setup
export PRODUCTS=$PRODUCTS:/cvmfs/larsoft.opensciencegrid.org/products
setup mrb
setup larreltools
export PATH=$LARRELTOOLS_DIR/expert:${PATH}
export MRB_PROJECT=nu

make a working directory and checkout the code

makeNuLiteWorkDir `pwd` v3_01_04 e17
makeNuLiteWorkDir `pwd` v3_01_04 c2

just saving for reference

  • If you want a complete nulite distribution with the new package, then you would also checkout nutools and follow the instructions for updating the nu suite.
    • Edit the package version and the nudist version in nutools/bundle/CMakeLists.txt.
    • The nudist version must be the same as the nutools version, but with an alphabet character added to the end.
      • For instance, v3_01_03 would become v3_01_03a, v3_01_03b would become v3_01_03c, etc.
    • Build nutools and use the generated nutools/bundle/nu* files. (See below for more information.)