Project

General

Profile

Notes for NuTools release managers » History » Version 14

Lynn Garren, 01/14/2020 01:30 PM

1 1 Lynn Garren
h1. Notes for NuTools release managers
2 1 Lynn Garren
3 4 Lynn Garren
{{>TOC}}
4 4 Lynn Garren
5 6 Lynn Garren
h2(count). Updating one package
6 1 Lynn Garren
7 1 Lynn Garren
* If you only need a new version of a single package, such as nugen, then simply checkout that package, edit, tag and build.
8 1 Lynn Garren
9 5 Lynn Garren
* 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.
10 2 Lynn Garren
11 2 Lynn Garren
h2(count). The nu suite
12 2 Lynn Garren
13 2 Lynn Garren
The nu suite consists of nutools, nuevdb, nug4, nugen, nurandom, and nusimdata.
14 2 Lynn Garren
15 2 Lynn Garren
h2(count).  Tools
16 2 Lynn Garren
17 2 Lynn Garren
* mrb v3_04_03 or later 
18 3 Lynn Garren
** This version adds the nu_suite gitCheckout option.
19 2 Lynn Garren
* buildFW (used by the Jenkins build)
20 7 Lynn Garren
* copyFromJenkins
21 7 Lynn Garren
* copyToSciSoft
22 8 Lynn Garren
* pullProducts
23 7 Lynn Garren
* pullPackage
24 1 Lynn Garren
* larreltools v1_06_00 or later
25 1 Lynn Garren
** This package was created for LArSoft, but contains common tools.
26 1 Lynn Garren
** dogit
27 1 Lynn Garren
** makeNuLiteWorkDir
28 1 Lynn Garren
** updateVersion
29 5 Lynn Garren
30 9 Lynn Garren
h2(count). Updating the nutools suite for LArSoft
31 9 Lynn Garren
32 12 Lynn Garren
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.
33 10 Lynn Garren
34 14 Lynn Garren
h3(count).  update "third party" products
35 14 Lynn Garren
36 14 Lynn Garren
This example updates the nu suite to use art 3.04.00.  There is a new version of root.  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.
37 14 Lynn Garren
38 10 Lynn Garren
h3(count). setup the working environment
39 10 Lynn Garren
40 9 Lynn Garren
<pre>
41 9 Lynn Garren
source /products/setup
42 9 Lynn Garren
setup mrb
43 9 Lynn Garren
setup larreltools
44 9 Lynn Garren
export PATH=$LARRELTOOLS_DIR/expert:${PATH}
45 9 Lynn Garren
export MRB_PROJECT=nu
46 9 Lynn Garren
</pre>
47 9 Lynn Garren
48 10 Lynn Garren
h3(count). make a working directory and checkout the code
49 10 Lynn Garren
50 10 Lynn Garren
<pre>
51 1 Lynn Garren
makeNuLiteWorkDir `pwd` v3_06_00 e19
52 13 Lynn Garren
makeNuLiteWorkDir `pwd` v3_06_00 c7
53 13 Lynn Garren
</pre>
54 13 Lynn Garren
55 13 Lynn Garren
56 12 Lynn Garren
h3(count). update, build, and test the code
57 12 Lynn Garren
58 12 Lynn Garren
Create a temporary release branch.  This workflow mimics, but does not use, gitflow.  This allows us more flexibility when dealing with multiple repositories.
59 12 Lynn Garren
<pre>
60 12 Lynn Garren
source v3_06_00/e19p/localProducts_nu_v3_06_00_e19_prof/setup
61 12 Lynn Garren
cd $MRB_SOURCE
62 12 Lynn Garren
tagLAr start $MRB_PROJECT_VERSION
63 12 Lynn Garren
</pre>
64 12 Lynn Garren
Now, we update the code.  This example updates the head of the nutools suite to use art 3.04.
65 13 Lynn Garren
<pre>
66 13 Lynn Garren
mrb uv canvas_root_io v1_05_00
67 13 Lynn Garren
mrb uv art_root_io v1_02_00
68 13 Lynn Garren
</pre>
69 12 Lynn Garren
70 1 Lynn Garren
h2(count). Updating the nutools suite for NOvA
71 12 Lynn Garren
72 12 Lynn Garren
All NOvA releases are tagged and built off a special branch.
73 9 Lynn Garren
74 11 Lynn Garren
h3(count). setup the working environment
75 9 Lynn Garren
76 9 Lynn Garren
<pre>
77 9 Lynn Garren
source /cvmfs/nova.opensciencegrid.org/externals/setup
78 9 Lynn Garren
export PRODUCTS=$PRODUCTS:/cvmfs/larsoft.opensciencegrid.org/products
79 9 Lynn Garren
setup mrb
80 9 Lynn Garren
setup larreltools
81 9 Lynn Garren
export PATH=$LARRELTOOLS_DIR/expert:${PATH}
82 9 Lynn Garren
export MRB_PROJECT=nu
83 9 Lynn Garren
</pre>
84 10 Lynn Garren
85 10 Lynn Garren
h3(count). make a working directory and checkout the code
86 10 Lynn Garren
87 10 Lynn Garren
<pre>
88 10 Lynn Garren
makeNuLiteWorkDir `pwd` v3_01_04 e17
89 10 Lynn Garren
makeNuLiteWorkDir `pwd` v3_01_04 c2
90 10 Lynn Garren
</pre>
91 10 Lynn Garren
92 9 Lynn Garren
93 9 Lynn Garren
94 9 Lynn Garren
95 5 Lynn Garren
h2(count). just saving for reference
96 5 Lynn Garren
97 5 Lynn Garren
* 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.
98 5 Lynn Garren
** Edit the package version and the nudist version in nutools/bundle/CMakeLists.txt.
99 5 Lynn Garren
** The nudist version must be the same as the nutools version, but with an alphabet character added to the end.
100 5 Lynn Garren
*** For instance, v3_01_03 would become v3_01_03a, v3_01_03b would become v3_01_03c, etc.
101 5 Lynn Garren
** Build nutools and use the generated nutools/bundle/nu* files. (See below for more information.)