Updating the UPS Product » History » Version 21

« Previous - Version 21/26 (diff) - Next » - Current version
Serdar Kurbanov, 09/09/2015 04:10 PM

Updating the UPS Product

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.

Building the Products

Here's how to build NOvA DDT products

0. Go to /nova/app/users/<user> without executing setup_nova

cd /nova/app/users/<user>

1. Make changes and commit it to trunk

<changes changes changes...>
svn commit <>

2. Checkout NOvA DDT release:

svn co svn+ssh:// novaddt

3. Renaming version in trunk:

cd <your build dir>/novaddt/ups
chmod +x 
./ <new version> (example: ./ v03_04_06)

4. Build novaddt with mrb

mkdir <builddir>
cd <builddir>
. /grid/fermiapp/products/nova/externals/setup
setup mrb
export MRB_PROJECT=nova
mrb newDev -v <new version> -q e6:on:prof (example: mrb newDev -v v03_04_06 -q e6:on:prof)
source localProducts_nova_<new version>_e6_on_prof/setup (example: source localProducts_nova_v03_04_06_e6_on_prof/setup)
cd srcs
svn co svn+ssh://<new version>  novaddt (example: svn co svn+ssh://  novaddt)
>> [
>> if there's a problem with some dependencies, say *novaddtdeps*, you'll need to do ... and then go back to *mrbsetenv* step
>> useful commands:
>> ups list -aK+ <package name> (example: ups list -aK+ <novaddtdeps>) - to list versions of that package available
>> ]
mrb uc
mrb i -j8 --tee

5. Test if new version works as intended

cd <your build dir>
. /grid/fermiapp/products/nova/externals/setup
export PRODUCTS=<your build dir>/localProducts_nova_<new version>_e6_on_prof/:$PRODUCTS
cd ddt_release_02.09.2015/product/
setup novaddt <new version> -q e6:on:prof (example: setup novaddt v03_04_06 -q e6:on:prof)
>> uncomment DDTGlobalConfiguration-FD.fcl after "# if using nova binary:" 
nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl

Deploying the Products

Install build to FD.

1. Ssh to FD server

ssh novadaq@novadaq-far-master

2. Copy new build ot FD server (from gpvm node, from your build directory)

rsync -avP localProducts_nova_v03_04_06_e6_on_prof/novaddt novadaq@novadaq-far-master:/ddt/externals/.

3. Check that code works

. /ddt/externals/setup
setup novaddt v03_04_06 -q e6:on:prof
>> (a bit questionable) nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl

Start changes in control room

(Make track of what you'r doing n ECL)
Stop run
Start DAQ config editor on Monitor1
Config is FarDetGlobalConfigP1
Change build version manually
Start new run

Building with Jenkins

Using Jenkins simplifies build process.

1. Get certificate to enter Jenkins if you don't have one

General instructions:
Get KCA server CA (
Get KCA certificate. For SL6 x86 this link helped me, since yum install krb5-fermi-getcert didn't work. Install packages krb5-fermi-*.

2. Go to Jenkins

3. Go to build configuration

NOvA -> novaddt_build -> Configure

4. Make changes in version. For unclear dependensies go to novaddt/novaddtdeps repo -> tags -> tag you search -> ups -> product_deps

5. Make build (build with parameters)

6. Debug if any problem appears

Deploying products after Jenkins

Do same steps as deploying after mrb build, but downloading to FD server looks differently:
1. Ssh to FD server

ssh novadaq@novadaq-far-master

2. Get link from Jenkins

Jenkins->novaddt_build_output->Last successful atrifacts->link for zip)

3. Download build to download area

cd <download folder>
wget <link from Jenkins>

4. Unzip and untar link from Jenkins to /ddt/externals

5. Check that code works

6. Go to control room to make changes