Skip to content

Image Specification

The following YAML file specifies the images and their included software. See the Developer Guide for more information, or the Image Dependency Graph for a diagrammatic view.

Note

Many images are based on other images, therefore software that is found in any image includes software that is found in its base image(s).

images.yaml
base:
  include_this_yaml: true
  template: base
  description: 'base image with software commonly used by all images'
  upstream:
    bash:              { dependents: [] }
    bc:                { dependents: [] }
    binutils:          { dependents: [root] }
    clang:             { dependents: [] }
    cmake:             { dependents: [root, ccdb, clas12root] }
    curl:              { dependents: [] }
    davix:             { dependents: [root] }
    diffutils:         { dependents: [] }
    emacs-nox:         { dependents: [] }
    expac:             { dependents: [] }
    fish:              { dependents: [] }
    fmt:               { dependents: [iguana, clas12-mcgen] }
    fzf:               { dependents: [] }
    gcc-fortran:       { dependents: [] }
    gcc:               { dependents: [] }
    git-lfs:           { dependents: [] }
    git:               { dependents: [] }
    glew:              { dependents: [root] }
    glu:               { dependents: [root] }
    gradle:            { dependents: [] }
    groovy:            { dependents: [] }
    gsl:               { dependents: [root] }
    inetutils:         { dependents: [] }
    jdk21-openjdk:     { dependents: [] }
    jq:                { dependents: [] }
    libx11:            { dependents: [root] }
    libxext:           { dependents: [root] }
    libxft:            { dependents: [root] }
    libxpm:            { dependents: [root] }
    llvm:              { dependents: [] }
    make:              { dependents: [] }
    man-db:            { dependents: [] }
    man-pages:         { dependents: [] }
    mariadb-clients:   { dependents: [rcdb, ccdb] }
    maven:             { dependents: [] }
    meson:             { dependents: [] }
    nano:              { dependents: [] }
    ncdu:              { dependents: [] }
    ninja:             { dependents: [] }
    nvim:              { dependents: [] }
    openssl:           { dependents: [root] }
    patch:             { dependents: [] }
    pkgconf:           { dependents: [] }
    plocate:           { dependents: [] }
    python-pip:        { dependents: [] }
    python-sqlalchemy: { dependents: [ccdb] }
    python:            { dependents: [] }
    ripgrep:           { dependents: [] }
    rsync:             { dependents: [] }
    ruby:              { dependents: [] }
    scons:             { dependents: [] }
    sqlite:            { dependents: [rcdb, ccdb] }
    tcsh:              { dependents: [] }
    tree:              { dependents: [] }
    vim:               { dependents: [] }
    wget:              { dependents: [] }
    which:             { dependents: [] }
    xorg-server-xvfb:  { dependents: [] }
    xorg-xeyes:        { dependents: [] } # for graphics testing
    yq:                { dependents: [] }
    zsh:               { dependents: [] }
  builds:
    asprof: { version: 'v4.2',     dependents: [] }
    rcdb:   { version: '8f797c632f1891b5efd8fc331e1ccf7a4cf7911c', semver: [['^.*$', '1.99.7']], dependents: [coatjava, iguana, clas12root] }
    ccdb:   { version: '1.99.6',   dependents: [coatjava, clas12root] }
    qadb:   { version: 'v3.4.1',   dependents: [clas12root] }
    hipo:   { version: '4.3.0',    dependents: [clas12root, iguana] }

base_root:
  from: base
  template: build
  description: 'same as `base` image, but with ROOT'
  builds:
    root: { version: 'v6-36-06', semver: [['^v',''], ['-','.']], dependents: [iguana, clas12root, hipo, clas12-mcgen] }
    hipo: { version: '4.3.0',    dependents: [iguana, clas12root] } # rebuild for ROOT-dependent libs

base_root_debug:
  from: base
  template: build
  description: 'same as `base_root` image, but built with debugging symbols; the performance will be slower than `base_root`'
  builds:
    root: { version: 'v6-36-06', semver: [['^v',''], ['-','.']], dependents: [] }
    hipo: { version: '4.3.0',    dependents: [iguana, clas12root] } # rebuild for ROOT-dependent libs

analysis:
  from: base_root
  template: build
  description: 'software for reconstruction and analysis'
  upstream:
    python-awkward:    { dependents: [] }
    python-matplotlib: { dependents: [] }
    python-numpy:      { dependents: [] }
    python-pandas:     { dependents: [] }
    python-seaborn:    { dependents: [] }
    python-uproot:     { dependents: [] }
    python-vector:     { dependents: [] }
    yaml-cpp:          { dependents: [iguana] }
  builds:
    clara:         { version: 'main',   dependents: [coatjava] }
    clas12-config: { version: 'main',   dependents: [coatjava] }
    clas12root:    { version: '1.9.0',  dependents: [] }
    coatjava:      { version: '13.5.1', dependents: [] }
    iguana:        { version: 'v1.1.0', dependents: [] }
    hipopy:        { version: 'v2.0.1', dependents: [] }

simulation:
  from: base_root
  template: build
  description: 'software for simulation'
  upstream:
    boost:     { dependents: [geant4] }
    onetbb:    { dependents: [geant4] }
    openmotif: { dependents: [geant4] }
    qt5-base:  { dependents: [geant4] }
    qt5-tools: { dependents: [scons_bm] }
    soqt:      { dependents: [geant4] }
    xerces-c:  { dependents: [geant4] }
  builds:
    clas12-mcgen:
      version: '65b3fbfa824cd58f9d04d7b631da99ee250e4779'
      semver: [['^.*$', '3.18']]
      dependents: []
    clhep:
      version: 'CLHEP_2_4_7_2'
      semver: [['CLHEP_',''], ['_','.']]
      dependents: [geant4, mlibrary, scons_bm, gemc]
    geant4:
      version: 'v10.7.4' # NOTE: version v11.x will require:
                         # - change upstream dependency `qt5*` -> `qt6*`
                         # - add build option `-D GEANT4_USE_QT_QT6=ON`, if needed
      dependents: [scons_bm, mlibrary, gemc]
    clas12-cmag:
      version: 'v1.1'
      dependents: [scons_bm, gemc]
    scons_bm:
      version: 'a177f194fe9494316cd26a9eed70f21714314fef'
      semver: [['^.*$', '1.14']]
      dependents: [mlibrary, gemc]
    mlibrary:
      version: 'cf4b5069b2ab0aebef9fe676a25c73850112e658'
      semver: [['^.*$', '1.9']]
      dependents: [gemc]
    magfield:
      version: '3f0f87364e7f1552bef5cc1255afbf6deba34936' # from `ceInstall`, NOT the LFS repo
      semver: [['^', 'ceInstall@']]
      dependents: [gemc]
    gemc:
      version: '5.12'
      dependents: []