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, denoising, clas12root] }
    curl:              { dependents: [] }
    davix:             { dependents: [root] }
    diffutils:         { dependents: [] }
    emacs:             { dependents: [] }
    fish:              { dependents: [] }
    fzf:               { dependents: [] }
    gcc-fortran:       { dependents: [] }
    gcc:               { dependents: [] }
    git:               { dependents: [] }
    git-lfs:           { dependents: [] }
    glew:              { dependents: [root] }
    glu:               { dependents: [root] }
    groovy:            { dependents: [] }
    gsl:               { dependents: [root] }
    inetutils:         { dependents: [] }
    jdk21-openjdk:     { dependents: [] }
    jq:                { dependents: [] }
    julia:             { dependents: [] }
    libx11:            { dependents: [root] }
    libxext:           { dependents: [root] }
    libxft:            { dependents: [root] }
    libxpm:            { dependents: [root] }
    llvm:              { dependents: [] }
    make:              { dependents: [] }
    man-db:            { dependents: [] }
    man-pages:         { dependents: [] }
    mariadb:           { dependents: [rcdb, ccdb] }
    maven:             { dependents: [] }
    meson:             { dependents: [] }
    nano:              { 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-xeyes:        { dependents: [] } # for graphics testing
    xrootd:            { dependents: [] }
    yq:                { dependents: [] }
    zsh:               { dependents: [] }
  builds:
    asprof: { version: v4.2,     dependents: [] }
    rcdb:   { version: 8f797c632f1891b5efd8fc331e1ccf7a4cf7911c,   dependents: [coatjava, iguana, clas12root] } # 1.99.7 with C++ SqLiteProvider fix
    ccdb:   { version: 1.99.6,   dependents: [coatjava, clas12root] }
    qadb:   { version: v3.4.0,   dependents: [clas12root] }
    hipo:   { version: 4.3.0,    dependents: [denoising] }

base_root:
  from: base
  template: build
  description: 'same as `base` image, but with ROOT'
  builds:
    root: { version: v6-36-04, dependents: [iguana, clas12root, hipo] }
    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-04, dependents: [iguana, clas12root, hipo] }
    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:
    fmt:               { dependents: [iguana] }
    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] }
    # clas12-mcgen:  { version: v3.17,  dependents: [] } # disabled, because https://github.com/JeffersonLab/clas12-mcgen/issues/60
    clas12root:    { version: 1.8.6b, dependents: [] }
    coatjava:      { version: 13.4.0, dependents: [] }
    denoising:     { version: 974e4cd303d13174cc75e2138d53c52a5f6282f7,  dependents: [] } # 4.2.3 with cmake v4 fix
    iguana:        { version: v1.0.0, dependents: [clas12root] }
    hipopy:        { version: v2.0.1, dependents: [] }