Installing a dune-artdaq development area is done by running a script called, which you pull off the web. Step-by-step instructions are given below, but first be aware that the script will exit out without doing anything unless the following conditions are met:
  • It needs to be run on np04-srv-023. This is because it's on this node that the local /scratch disk where your code will go is located
  • It needs to be run in a directory which doesn't have any other files in it
  • It needs to be up-to-date - i.e., checks to see that it's identical to the in Fermilab's central repository. If it isn't, it won't run. This prevents recycling of old scripts, which may have out-of-date assumptions.
  • It needs to be run under an account that's not np04daq. This is because np04daq is meant only for running the DAQ, not for code development.
  • It needs to be run in a subdirectory of /nfs/sw/work_dirs - preferably /nfs/sw/work_dirs/<your username>

Passing all these requirements is simple. Log into np04-srv-023 under your own account, and then follow the instructions below. Note the steps vary depending on whether or not you're able to push code changes to the central repository; this ability is highly recommended, and how you can do it can be found elsewhere on this TWiki in the Deployment section. Be aware that in the box below containing the commands, there's a scroll bar which allows you to display a full line even if it's wider than your browser window

# Quantities expressed in brackets are variables meant to be replaced when you type in the commands
mkdir -p /nfs/sw/work_dirs/<your username>/your_new_directory
cd /nfs/sw/work_dirs/<your username>/your_new_directory
source ~np04daq/bin/    # Only necessary if you can't push code changes
chmod +x
./ --use-dune-artdaq-branch <existing dune-artdaq branch> --use-dune-raw-data-branch <existing dune-raw-data branch> --not-dune-artdaq-developer  # The "--not-dune-artdaq-developer" option is unnecessary if you're able to push code changes will install and build dune-artdaq (and dune-raw-data, which it depends on) from the head of the branches whose names you supplied. Note that if you are set up to push code that when the dune-artdaq package gets cloned you'll be prompted a couple of times during installation for the password you created when first following the Deployment instructions. Be alert for when this happens so you can enter the password because otherwise it can time out, which essentially means you'll need to delete what's been installed already and go back through these instructions.

Currently, if you leave out one or both of the branch arguments, you'll get default branches - the "develop" branch for dune-artdaq, and the "for_dune-artdaq" branch for dune-raw-data. Since you shouldn't do code development on either of these branches, you'd only want to install a default branch for a package you were going to code in if you were going to create a new feature branch not yet in the central repo, and wanted to fork off the default. Note that you can't pass the name of a branch which doesn't exist; you'll need to check out a new branch after installation if you want to do this. Also note that while the code on dune-artdaq's develop branch and dune-raw-data's for_dune-artdaq branch have undergone testing so that they'll install correctly, this guarantee doesn't exist when you choose other branches - in particular, the package dependencies for dune-artdaq and dune-raw-data can get out of sync if you don't choose the branches carefully.

When finishes running, there will be two directories of interest:

  • The directory out of which you ran this script. This directory is visible on all nodes, and is the one you want to select when in the "artdaq folder selection" region of the Run Control interface if you wish to use your code in a run. Once you've run, in general you don't need to do any further work in this directory, unless you want to activate TRACEs in your code.
  • The directory out of which you'll code, and perform your builds. This is located in np04-srv-023:/scratch/, using the same subdirectory tree you used relative to /nfs/sw/work_dirs. For example, if you ran out of /nfs/sw/work_dirs/<your username>/your_new_directory, then the area where you'll code and rebuild is /scratch/<your username>/your_new_directory.

For information on how to rebuild the code after you've made modifications, look at the Building section of this TWiki.

-- JohnChristianFreeman - 2019-11-11

Edit | Attach | Watch | Print version | History: r18 < r17 < r16 < r15 < r14 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r18 - 2019-11-11 - JohnChristianFreeman
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CENF All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback