Project

General

Profile

Updating the UPS Product » History » Version 20

Serdar Kurbanov, 09/04/2015 11:39 AM

1 1 Martin Frank
h1. Updating the UPS Product
2 1 Martin Frank
3 1 Martin Frank
This page describes how to build a new version of the novaddt UPS product together with the packages that it depends on and how to roll these new products out on the detectors.
4 1 Martin Frank
5 1 Martin Frank
h2. Building the Products
6 1 Martin Frank
7 2 Serdar Kurbanov
Here's how to build NOvA DDT products
8 2 Serdar Kurbanov
9 7 Serdar Kurbanov
0. Go to /nova/app/users/<user> without executing setup_nova
10 7 Serdar Kurbanov
> cd /nova/app/users/<user>
11 7 Serdar Kurbanov
12 3 Serdar Kurbanov
1. Make changes and commit it to trunk
13 9 Serdar Kurbanov
<pre>
14 9 Serdar Kurbanov
<changes changes changes...>
15 9 Serdar Kurbanov
svn commit <some_file.cc>
16 9 Serdar Kurbanov
</pre>
17 1 Martin Frank
18 1 Martin Frank
2. Checkout NOvA DDT release:
19 9 Serdar Kurbanov
<pre>
20 9 Serdar Kurbanov
svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/trunk novaddt
21 9 Serdar Kurbanov
</pre>
22 1 Martin Frank
23 1 Martin Frank
3. Renaming version in trunk:
24 8 Serdar Kurbanov
<pre>
25 8 Serdar Kurbanov
cd <your build dir>/novaddt/ups
26 8 Serdar Kurbanov
chmod +x ups_product_tag.sh 
27 8 Serdar Kurbanov
./ups_product_tag.sh <new version> (example: ./ups_product_tag.sh v03_04_06)
28 8 Serdar Kurbanov
</pre>
29 1 Martin Frank
30 15 Serdar Kurbanov
4. Build novaddt with mrb
31 13 Serdar Kurbanov
<pre>
32 13 Serdar Kurbanov
mkdir <builddir>
33 13 Serdar Kurbanov
cd <builddir>
34 13 Serdar Kurbanov
. /grid/fermiapp/products/nova/externals/setup
35 13 Serdar Kurbanov
setup mrb
36 13 Serdar Kurbanov
export MRB_PROJECT=nova
37 13 Serdar Kurbanov
mrb newDev -v <new version> -q e6:on:prof (example: mrb newDev -v v03_04_06 -q e6:on:prof)
38 13 Serdar Kurbanov
source localProducts_nova_<new version>_e6_on_prof/setup (example: source localProducts_nova_v03_04_06_e6_on_prof/setup)
39 13 Serdar Kurbanov
cd srcs
40 13 Serdar Kurbanov
svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/tags/<new version>  novaddt (example: svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/tags/v03_04_06  novaddt)
41 1 Martin Frank
>> [
42 6 Serdar Kurbanov
>> if there's a problem with some dependencies, say *novaddtdeps*, you'll need to do ... and then go back to *mrbsetenv* step
43 6 Serdar Kurbanov
>> useful commands:
44 6 Serdar Kurbanov
>> ups list -aK+ <package name> (example: ups list -aK+ <novaddtdeps>) - to list versions of that package available
45 6 Serdar Kurbanov
>> 
46 6 Serdar Kurbanov
>> ]
47 15 Serdar Kurbanov
cd $MRB_BUILDDIR
48 13 Serdar Kurbanov
mrbsetenv
49 13 Serdar Kurbanov
mrb i -j8 --tee
50 13 Serdar Kurbanov
</pre>
51 1 Martin Frank
52 9 Serdar Kurbanov
5. Test if new version works as intended
53 12 Serdar Kurbanov
<pre>
54 12 Serdar Kurbanov
cd <your build dir>
55 12 Serdar Kurbanov
. /grid/fermiapp/products/nova/externals/setup
56 12 Serdar Kurbanov
export PRODUCTS=<your build dir>/localProducts_nova_<new version>_e6_on_prof/:$PRODUCTS
57 12 Serdar Kurbanov
cd ddt_release_02.09.2015/product/
58 12 Serdar Kurbanov
setup novaddt <new version> -q e6:on:prof (example: setup novaddt v03_04_06 -q e6:on:prof)
59 1 Martin Frank
>> uncomment DDTGlobalConfiguration-FD.fcl after "# if using nova binary:"
60 12 Serdar Kurbanov
nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl
61 12 Serdar Kurbanov
</pre> 
62 1 Martin Frank
63 1 Martin Frank
64 1 Martin Frank
65 1 Martin Frank
h2. Deploying the Products
66 1 Martin Frank
67 1 Martin Frank
Install build to FD.
68 1 Martin Frank
69 15 Serdar Kurbanov
1. Ssh to FD server
70 15 Serdar Kurbanov
<pre>
71 1 Martin Frank
ssh novadaq@novadaq-far-master
72 15 Serdar Kurbanov
</pre>
73 5 Serdar Kurbanov
74 1 Martin Frank
2. Copy new build ot FD server (from gpvm node, from your build directory)
75 15 Serdar Kurbanov
<pre>
76 12 Serdar Kurbanov
rsync -avP localProducts_nova_v03_04_06_e6_on_prof/novaddt novadaq@novadaq-far-master:/ddt/externals/.
77 15 Serdar Kurbanov
</pre>
78 12 Serdar Kurbanov
79 1 Martin Frank
3. Check that code works
80 15 Serdar Kurbanov
<pre>
81 13 Serdar Kurbanov
. /ddt/externals/setup
82 13 Serdar Kurbanov
setup novaddt v03_04_06 -q e6:on:prof
83 15 Serdar Kurbanov
>> (a bit questionable) nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl
84 15 Serdar Kurbanov
</pre>
85 11 Serdar Kurbanov
86 18 Serdar Kurbanov
h2. Start changes in control room
87 11 Serdar Kurbanov
> (Make track of what you'r doing n ECL)
88 11 Serdar Kurbanov
> Stop run
89 16 Serdar Kurbanov
> Start DAQ config editor on Monitor1
90 11 Serdar Kurbanov
> Config is FarDetGlobalConfigP1
91 11 Serdar Kurbanov
> Change build version manually
92 11 Serdar Kurbanov
> Enter
93 1 Martin Frank
> Start new run
94 18 Serdar Kurbanov
95 18 Serdar Kurbanov
96 19 Serdar Kurbanov
h2. Building with Jenkins
97 18 Serdar Kurbanov
98 18 Serdar Kurbanov
Using Jenkins simplifies build process.
99 18 Serdar Kurbanov
100 18 Serdar Kurbanov
1. Get certificate to enter Jenkins if you don't have one
101 20 Serdar Kurbanov
> General instructions: https://fermi.service-now.com/kb_view_customer.do?sysparm_article=KB0010657
102 20 Serdar Kurbanov
> Get KCA server CA (https://security.fnal.gov/pki/fermi-kca-ca.pemcertificate)
103 20 Serdar Kurbanov
> Get KCA certificate. For SL6 x86 this link helped me, since yum install krb5-fermi-getcert didn't work. Install packages krb5-fermi-*. http://ftp.scientificlinux.org/linux/fermi/slf6x/i386/os/FermiPackages/
104 18 Serdar Kurbanov
105 18 Serdar Kurbanov
2. Go to Jenkins
106 18 Serdar Kurbanov
> https://buildmaster.fnal.gov/view/Nova/
107 18 Serdar Kurbanov
108 18 Serdar Kurbanov
3. Go to build configuration
109 18 Serdar Kurbanov
> NOvA -> novaddt_build -> Configure
110 18 Serdar Kurbanov
111 18 Serdar Kurbanov
4. Make changes in version. For unclear dependensies go to novaddt/novaddtdeps repo -> tags -> tag you search -> ups -> product_deps
112 18 Serdar Kurbanov
113 18 Serdar Kurbanov
5. Make build (build with parameters)
114 18 Serdar Kurbanov
115 18 Serdar Kurbanov
6. Debug if any problem appears
116 18 Serdar Kurbanov
117 18 Serdar Kurbanov
118 18 Serdar Kurbanov
h2. Deploying products after Jenkins
119 18 Serdar Kurbanov
120 18 Serdar Kurbanov
Do same steps as deploying after mrb build, but downloading to FD server looks differently:
121 18 Serdar Kurbanov
1. Ssh to FD server
122 18 Serdar Kurbanov
<pre>
123 18 Serdar Kurbanov
ssh novadaq@novadaq-far-master
124 18 Serdar Kurbanov
</pre>
125 18 Serdar Kurbanov
126 18 Serdar Kurbanov
2. Get link from Jenkins 
127 18 Serdar Kurbanov
> Jenkins->novaddt_build_output->Last successful atrifacts->link for zip)
128 18 Serdar Kurbanov
129 18 Serdar Kurbanov
3. Download build to download area
130 18 Serdar Kurbanov
<pre>
131 18 Serdar Kurbanov
cd <download folder>
132 18 Serdar Kurbanov
wget <link from Jenkins>
133 18 Serdar Kurbanov
</pre>
134 18 Serdar Kurbanov
135 18 Serdar Kurbanov
4. Unzip and untar link from Jenkins to /ddt/externals
136 18 Serdar Kurbanov
137 18 Serdar Kurbanov
5. Check that code works
138 18 Serdar Kurbanov
139 18 Serdar Kurbanov
6. Go to control room to make changes