ATLAS Computing
NICOS manual for ATLAS use case
US ATLAS Computing

This document describes how to use the NICOS (NIghtly COntrol MANagement) tool for ATLAS nightly builds. The similar information and additional concrete recipes are posted on NICOS wiki page.

  • Principles of NICOS design
  • NICOS location
  • NICOS executable, environment, and files
  • NICOS configuration file
  • NICOS database file
  • NICOS 1.0 new features


    Principles of NICOS design
    BACK TO TOP

    NICOS (NIghtly COntrol MANagement) facilitates nightly builds of software projects. Nightly builds are common in software project involving multiple developers. NICOS is the system originally developed for ATLAS nightly builds. It was evolved in the independent software package that can be applied to more than one experiment or application.

    NICOS performs nightly build processes in distinctive steps. Each step allows plug-ins and can be configured for particular use case. The compilation itself is one of initial steps followed by tests, analysis of errors, and creating web pages with build summaries. Developers are notified about problems with their packages via e-mail.

    NICOS supports the organization when the releases are built on a local disk (usually fast and reliable) and then copied to a distributed file system (e.g. AFS). The builds can be incremental, i.e. when only new versions of packages are compiled, or from scratch. While NICOS is originally developed as the nightly build control system it can also build stable and local "personal" releases (in latter case the release contents is determined by a developer).

    NICOS allows to build the chain of nightly projects. In this case the projects are built in the certain order determined by declared projects dependencies.

    NICOS core does not contain ATLAS specific features. For convenience of ATLAS software infrastructure management the scripts with self-evident (and long) names for typical tasks are added to NICOS distribution. These scripts require very few parameters and allow to run NICOS without reading manuals.

    NICOS location

    The most recent version of NICOS is installed in
    /afs/cern.ch/atlas/software/dist/nightlies/nicos.
    ATLAS nightlies use this installation. ATLAS software releases (and ATLAS CVS repository) contain NICOS in
    AtlasTest/NightlyTestTools/Nicos.
    ATLAS plug-ins and extensions are collected in atlas and the scripts for typical atlas tasks in atlasjobs subdirectories.

    NICOS executable, environment, and files
    BACK TO TOP

    NICOS executable is nicos_job (or similar name), a Bourne shell script. Before running NICOS the following three variables must be defined:

    NICOS uses three configuration files (see descriptions and examples below).

    Once the above-mentioned variables are defined and nicos_cache is configured the nicos job can be started with
    ${NICOS_HOME}/nicos_job [OPTIONS]

    The options are

    NICOS configuration file
    BACK TO TOP

    This file in XML-like format contains all necessary configuration parameters. Each build step is associated with Markup tag that is followed by environment definitions and commands for particular step. Markup tag can contain some name or base directory definitions. Below are the examples from ATLAS nightly builds configuration files with commentaries.

    NICOS database file
    BACK TO TOP

    NICOS database file is a text file. Each line contains name of package, tag of package, and e-mail addresses of developers (could be multiple) separated by unlimited number of spaces. For example:

    FileCatalog    FileCatalog-0-0-1   developer1@cern.ch developer2@bnl.gov
    Utilities/FileCatalog    Utilites-0-0-1   developer1@cern.ch 
    
    Note that the second line describes a package inside container, so checkout is performed for Utilities/FileCatalog.

    There are several options for tags:

    1. Exact tag or the first symbols of the tag. In latter case the latest tag with indicated symbols will be selected. For instance if FileCatalog is specified as a tag then the latest tag with name starting with FileCatalog will be selected (e.g. FileCatalog-89-99-99).
    2. recent : the recent CVS submission is selected (not necessarily tagged).
    3. development : the latest tagged CVS version is selected, the format of tag name is not restricted.
    4. official : the latest tag in the format <package name>-[0-9][0-9]-[0-9][0-9]-[0-9][0-9] or <package name>-[0-9]-[0-9]-[0-9] is selected.


    NICOS 1.0 new features




    Send comments or questions