lhcbstacks
This project contains the configuration for the LHCb software stacks, and the software to present this metadata in the format required by the build tools.
Project structure
-
data
: directory structure containing the LHCb stack definitions in YAML format -
src
,tests
: python package to manage the data and associated tests
Stack metadata file structure
Inside the data/stacks
directory we have one subdirectory per application
containing one stack definition YAML file per logical version of the
application (for example DaVinci/v53r0.yml
or Moore/22.06-FEST.yml
).
The stack definition should follow the example below:
type: lhcbcmake
projects:
Analysis: v32r0
Phys: v31r1
Rec: v31r1
Lbcom: v31r1
LHCb: v51r1
Gaudi: v33r2
Detector: v0r5
DaVinci: v52r1
toolchain:
type: LCG
version: 97a
platforms:
- x86_64+avx2+fma-centos7-gcc9-opt
- x86_64-centos7-clang8-dbg
- x86_64-centos7-clang8-opt
- x86_64-centos7-gcc9-dbg
- x86_64-centos7-gcc9-do0
- x86_64-centos7-gcc9-opt
tags:
- Run3
The type
can be:
- lhcbcmake
- cmt
The project list should contain all LHCb project needed in the stack.
The toolchain refers to the release of the external software used by this stack (e.g. LCG 97a in the example).
The tags list is a free list that can be used by software querying this metadata.
Validation and development
This packages uses pre-commit to manage its pre-commit hooks. Make sure that this python package is avalilable (for example from the LHcb environment LbEnv) and to install the hooks in the git clone with:
pre-commit install