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.
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.
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.