Athena releases and nightly builds

Last update: 05 Apr 2024 [History] [Edit]

Release Numbers

When a particular build of an Athena project is deemed ready for production it will be installed as a numbered release onto the ATLAS production CVMFS server.

ATLAS software is numbered according to the following scheme:

A.B.X[.Y]

A refers to the release series, e.g., release series 23 is used for Run 3 simulation and data taking 2023. NB that the release series matching the data taking year is here coincidental, and does not represent a convention.

B is the release flavour and usually corresponds to a particular branch in the git repository for which the code base needs to be different. e.g., 24.0 is the release series for MC23 simulation, and 2023 Tier-0 reconstruction & Trigger, while 25.2 is the release series for analysis.

Principle release flavours are:

Flavour Purpose
0 Tier-0 reconstruction, trigger, and corresponding simulation production
2 Derivations and Analysis
6 Event Generation

The numbering scheme reflects historical releases where a larger number of different flavours were created. These have been consolidated since release 22.0 resulting in fewer projects, but the numbering for those that remain was kept the same to remain consistent.

Note that while there is a strong correspondence between release flavour and Athena Project, it is not absolute: e.g., AthDerivation and AthAnalysisBase would both be built from flavour 2.

X is the major release number, monotonically increasing as code is developed with bugs fixed and enhancements added.

Occasionally, Y will be used is a minor release number is required for developments that branched from an older major release. e.g., 21.0.20.Y contained any fixes required for MC16a, as releases 21.0.21 onwards contained incompatible changes for MC16c. Most releases will not have a minor release number, and so A.B.X is fully sufficient.

Setting Up A Release

To setup a production release the release number and project need to be specified to asetup, e.g.,

asetup Athena,23.0.11

Release History

24.0

Release 24.0 is the current release for 2023 data taking, trigger, reprocessing, and MC production. It is a largely technical update with respect to 22.0, in order to provide a stable release through to the end of Run3, and provides full backwards-compatibility with outputs produced in that release. Switching between 22.0 and 24.0 should therefore require only minor adaptations if any.

Some key features are:

  • Use of HEPMC3 and 64-bit event numbers, allowing for compatibility with future generator versions and larger event generation files to be produced, respectively.
  • Updated the LCG version (LCG_102b) used for providing common libraries such as ROOT, allowing for future compatibility with Centos9s/AlmaLinux9/RHEL9 operating systems.
  • Extensive availability of ComponentAccumulator-based job configuration.

AOD files produced in 24.0 can be used to produce derivations in 24.0-series releases (see the description in earlier section)

22.0

Release 22.0 was the release used for initial Run3 data taking, trigger, reprocessing, and MC production in 2022. It represents the culmination of a multi-year development program:

  • It was the first Athena release to fully support AthenaMT for multi-threaded event processing
  • It also features numerous other improvements to reconstruction, including significant speed-ups of Inner Detector tracking allowing inclusion of dedicated tracking for long-lived particles as part of the standard chain
  • It includes reconstruction and simulation of the Muon New Small Wheel
  • Additionally, it is the first release series where Run4 detectors can be simulated and reconstructed in the same release as the current detectors.

AOD files produced in 22.0 can be used to produce derivations in 23.0-series releases (up to 23.0.11)

21.0

Release 21.0 was the release for Run2 data taking, trigger, reprocessing, and MC production. It was the release series in which the current CMake-based build system, and gitlab-based code versioning, were first used.

NB future reprocessings of Run2 data, and associated MC productions, will be performed in 23.0 (or newer)

Releases prior to 21.0 used an entirely different release building and versioning infrastructure, and so are not covered here.

Finding Releases and Release Information

It is very easy to see which production releases are available, just by looking in CVMFS, e.g.,

$ ls /cvmfs/atlas.cern.ch/repo/sw/software/23.0/Athena
23.0.0  23.0.1  23.0.10  23.0.11  23.0.2  23.0.3  23.0.4  23.0.5  23.0.6  23.0.7  23.0.8  23.0.9

Where the release series and flavour are encoded in the highest level directory, then the project, then the release number (/cvmfs/atlas.cern.ch/repo/sw/software/A.B/PROJECT/RELEASE_NUMBER).

See the full asetup users guide for further options.

Release Notes

When a git tag is made for a production release the release coordinator will add some release notes to the tag, which you can read directly in GitLab (just navigate to the tag of interest) or through the git command line:

$ git show release/23.0.11
tag release/23.0.11
Tagger: Tadej Novak <tadej.novak@cern.ch>
Date:   Wed Dec 7 13:27:09 2022 +0100

Release for derivations production and physics validation
commit 115629ba8b6a28ad16c5c09dff994a3c43339faf (tag: release/23.0.11, tag: release/22.6.26, tag: nightly/master/2022-12-07T0501, tag: nightly/master/2022-12-07T0313, tag: nightly/master/2022-12-07T0220, tag: nightly/master/2022-12-07T0001, tag: nightly/master/2022-12-06T2300, tag: nightly/master/2022-12-06T2101, tag: nightly/master/2022-12-06T2001, tag: nightly/master/2022-12-06T2000)
Merge: e823350ccd3 7681d5affec
...

Mapping Releases to Nightly Builds

If you need to find out which nightly build (see below) corresponded to a particular release the ReleaseData file contains useful information:

$ cat /cvmfs/atlas.cern.ch/repo/sw/software/23.0/Athena/23.0.11/InstallArea/x86_64-centos7-gcc11-opt/ReleaseData 
[release_metadata]
release:23.0.11
nightly name:master
project name:Athena
nightly release:115629ba8b6
date:2022-12-06T2101
compiler:GNU-11.2.0
cuda:NVIDIA-11.7.99
cxxpath:/cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-8a51a/x86_64-centos7/bin/g++
cudapath:/cvmfs/sft.cern.ch/lcg/releases/LCG_102b_ATLAS_6/cuda/11.7.1/x86_64-centos7-gcc11-opt/bin/nvcc
cmake:3.21.3

You can also search for references with the right tag or hash in git using git describe:

$ git describe --tags --match 'release/*' nightly/22.0/2022-11-01T2101
release/22.0.101

$ git describe --tags --match 'nightly/*' release/22.0.101            
nightly/22.0/2022-11-01T2101

$ git describe --tags --match 'nightly/*' 5a344df38c0
nightly/22.0/2022-11-01T2101

Nightly builds

For all of the major branches in git, significant projects will always be built from the HEAD once a day. Colloquially these are known as nightly builds, but they might well happen during daylight hours.

Each ‘nightly’ is date stamped with the time at which the build started, in the form

YYYY-MM-DDTHHMM

e.g., 2017-04-26T0710 is the build which began on the 26th of April 2017 at 0710 (CERN localtime is used).

To make it easier to identify the precise set of code that was used for a build, a git tag is created with the format nightly/BRANCH/YYYY-MM-DDTHHMM. e.g., nightly/21.0/2017-04-26T0710.

The results of a nightly build (cmake configuration, build status and tests) is accessible via the NICOS nightly build page.

After the release has been built it will be installed on the nightlies CVMFS server for use.

These nightly builds are usually used as a base on which to develop code changes, so knowing how to set them up is important.

Setting Up A Nightly Release

To setup a nightly release it is necessary to give the git branch, the project and the timestamp to asetup, e.g.,

asetup 21.0,Athena,r2017-04-26T0710

Note that the datestamp should be prefixed by r (nightly release).

To make life easier asetup will accept an abbreviated form for the datestamp:

Form Example Comment
rYYYY-MM-DD r2017-04-26 Default is to take the oldest time
rMM-DD r04-26 No year means this year
rDD (zero padded) r26 or r01 No month or year means this month, this year

See the full asetup users guide for further details.

To see which nightly releases are installed it’s possible just to browse CVMFS:

atmic001:~$ ls /cvmfs/atlas-nightlies.cern.ch/repo/sw/main/
2017-03-08T2245  2017-03-21T2225  2017-04-03T2225  2017-04-17T2225
2017-03-09T2245  2017-03-22T2225  2017-04-04T2225  2017-04-18T2225
2017-03-10T2125  2017-03-23T2225  2017-04-05T2225  2017-04-19T2225
2017-03-11T2125  2017-03-24T2225  2017-04-07T2225  2017-04-20T2225
2017-03-12T2125  2017-03-25T2225  2017-04-08T2225  2017-04-21T2225
2017-03-13T2225  2017-03-26T2225  2017-04-09T2225  2017-04-22T2225
2017-03-14T2225  2017-03-27T2225  2017-04-10T2225  2017-04-23T2225
2017-03-15T2225  2017-03-28T2225  2017-04-11T2225  Geant4
2017-03-16T2225  2017-03-29T2225  2017-04-12T2225  atlas
2017-03-17T2225  2017-03-30T2225  2017-04-13T2225  dqm-common
2017-03-18T2225  2017-03-31T2225  2017-04-14T2225  latest-Athena
2017-03-19T2225  2017-04-01T2225  2017-04-15T2225  sw
2017-03-20T2225  2017-04-02T2225  2017-04-16T2225  tdaq-common

shows all the nightly builds available for the main branch (along with some common software installation paths).

The project is installed within the datestamped directory, along with supporting code (AthenaExternals, Gaudi and some installation logs).

For branches that may build more than one project the timestamps for each project are probably different. The abbreviated asetup commands will handle this smoothly, but do watch out for it if you are directory browsing.

Release Candidate Numbers

Each nightly build is also a release candidate for the next release number for its project. i.e., if the last release of Tier-0 Athena was 21.0.26 then the nightly build will have a release candidate number of 21.0.27.

Release candidate numbers are stored in the version.txt file in the git repository itself, e.g., this is the release candidate number for MC16 and Tier-0 2017 data taking.

The release candidate number is buried in the CMVFS installation path, e.g.,

$ ls /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2017-04-23T2225/Athena
22.0.0

But as explained above it isn’t actually needed for setting up a nightly build.