Skip to content

Commit 99be5f4

Browse files
committed
Merge v19.0.0
2 parents 00249b0 + 078d8f1 commit 99be5f4

1,455 files changed

Lines changed: 206073 additions & 10009 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ BasedOnStyle: Mozilla
44

55
AllowAllParametersOfDeclarationOnNextLine: false
66
AllowShortBlocksOnASingleLine: Empty
7+
AllowShortEnumsOnASingleLine: false
78
AllowShortFunctionsOnASingleLine: Inline
89
AllowShortIfStatementsOnASingleLine: Never
910
AllowShortLambdasOnASingleLine: All
@@ -18,7 +19,9 @@ BreakBeforeBinaryOperators: NonAssignment
1819
BreakBeforeBraces: Custom
1920
BraceWrapping:
2021
AfterClass: true
22+
AfterEnum: true
2123
AfterFunction: true
24+
AfterNamespace: true
2225
AfterStruct: true
2326
SplitEmptyFunction: false
2427
SplitEmptyRecord: false

.clang-tidy

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,26 @@
22
HeaderFilterRegex: '.*'
33
# disable clang-analyzer-core.UndefinedBinaryOperatorResult
44
# ROOT throws lots of them in their headers
5-
# enable cppcoreguidelines-virtual-class-destructor
5+
# Bugprone:
6+
# These could cause actual bugs.
7+
# C++ Core Guidelines
8+
# * cppcoreguidelines-virtual-class-destructor
69
# Avoid undefined behaviour
10+
# * cppcoreguidelines-pro-type-cstyle-cast
11+
# Avoid C-Style Casts which might be problematic
712
# enable google-build-using-namespace
813
# "using namespace" imports a changing amount of symbols, avoid it
914
# improve readability:
1015
# readability-simplify-boolean-expr
1116
Checks: >-
1217
-clang-analyzer-core.UndefinedBinaryOperatorResult,
18+
bugprone-*,
19+
-bugprone-easily-swappable-parameters,
20+
-bugprone-narrowing-conversions,
21+
-bugprone-virtual-near-miss,
22+
-bugprone-unhandled-self-assignment,
23+
-bugprone-reserved-identifier,
24+
cppcoreguidelines-pro-type-cstyle-cast,
1325
cppcoreguidelines-virtual-class-destructor,
1426
modernize-make-unique,
1527
google-build-using-namespace,
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# SPDX-FileCopyrightText: 2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH, Darmstadt, Germany
2+
#
3+
# SPDX-License-Identifier: CC0-1.0
4+
5+
name: Check AUTHORS and CONTRIBUTORS in metadata
6+
7+
on:
8+
push:
9+
paths:
10+
- AUTHORS
11+
- CONTRIBUTORS
12+
- codemeta.json
13+
- .zenodo.json
14+
pull_request:
15+
paths:
16+
- AUTHORS
17+
- CONTRIBUTORS
18+
- codemeta.json
19+
- .zenodo.json
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v4
26+
- name: Try updating metadata
27+
run: python meta_update.py
28+
- name: Check for Updates
29+
run: git diff --exit-code

.github/workflows/codemeta_validate.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ jobs:
1616
container:
1717
image: gitlab-registry.in2p3.fr/escape2020/wp3/eossr:v1.0
1818
steps:
19-
- uses: actions/checkout@v3
19+
- uses: actions/checkout@v4
2020
- name: validate codemeta
2121
run: eossr-metadata-validator codemeta.json

AUTHORS

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Al-Turany, Mohammad
2-
Karabowicz, Radoslaw
3-
Klein, Dennis
4-
Kresan, Dmytro
5-
Rybalchenko, Alexey
6-
Tacke, Christian
7-
Uhlig, Florian
1+
Al-Turany, Mohammad [https://orcid.org/0000-0002-8071-4497]
2+
Karabowicz, Radoslaw [https://orcid.org/0009-0005-4083-2711]
3+
Klein, Dennis [https://orcid.org/0000-0003-3787-1910]
4+
Kresan, Dmytro [https://orcid.org/0000-0002-7537-2875]
5+
Rybalchenko, Alexey [https://orcid.org/0000-0002-6249-155X]
6+
Tacke, Christian [https://orcid.org/0000-0002-5321-8404]
7+
Uhlig, Florian [https://orcid.org/0009-0005-3057-8561]

CHANGELOG.md

Lines changed: 109 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,110 @@ All notable changes to FairRoot will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

7-
## 18.8.2 - 2023-03-01
7+
## 19.0.0 - 2024-05-17
8+
9+
### Breaking Changes
10+
11+
* CMake
12+
* Dropped [our custom `FindROOT.cmake`](https://github.com/FairRootGroup/FairRoot/commit/764b2c66432d2e63f765df6f6d328aa4b61dba10)
13+
* Using the native CMake package of ROOT, see
14+
https://root.cern/manual/integrate_root_into_my_cmake_project/
15+
* ROOT targets **MUST BE** prefixed with `ROOT::` now, see
16+
https://root.cern/manual/integrate_root_into_my_cmake_project/#full-example-event-project
17+
* Explicitely `include(ROOTMacros)` after your `find_package2(... ROOT ...)`
18+
now
19+
* Dropped `ROOT_VERSION_NUMBER`, use `ROOT_VERSION` (which is the dotted
20+
version number) and [`VERSION_GREATER`/etc](https://cmake.org/cmake/help/latest/command/if.html#version-comparisons)
21+
instead
22+
* Dropped `ROOTSYS`, use ROOT CMake targets instead
23+
* Some CMake macros have been factored out into the
24+
[FairCMakeModules](https://github.com/FairRootGroup/FairCMakeModules)
25+
project which is required by FairRoot
26+
* FairSoft `apr21` and later ship it (see alternative
27+
[installation methods](https://fairrootgroup.github.io/FairCMakeModules/latest/installation.html))
28+
* `find_package2` has moved to [`FairFindPackage2`](https://fairrootgroup.github.io/FairCMakeModules/latest/module/FairFindPackage2.html).
29+
To use it in your code, perform something like this:
30+
```cmake
31+
find_package(FairCMakeModules 1.0 REQUIRED)
32+
include(FairFindPackage2)
33+
```
34+
* Dropped Color Codes and `pad()`, use [`FairFormattedOutput` from FairCMakeModules](https://fairrootgroup.github.io/FairCMakeModules/latest/module/FairFormattedOutput.html)
35+
instead
36+
* Note that [`fair_pad()`](https://fairrootgroup.github.io/FairCMakeModules/latest/module/FairFormattedOutput.html#fair-pad)
37+
needs the width argument to be incremented by 1, and the `COLOR` option
38+
takes no argument
39+
* Dropped `Generate_Exe_Script()`, it was never meant for external use
40+
* Dropped `GENERATE_TEST_SCRIPT()`, replace it with a locally maintained solution
41+
* Consider using `source @FairRoot_BINDIR@/FairRootConfig.sh -p`
42+
* Dropped `Generate_Version_Info()`
43+
* If you just need to generate some files with your version number in it,
44+
use the standard [`configure_file`](https://cmake.org/cmake/help/latest/command/configure_file.html)
45+
CMake command.
46+
* Alternatively, consider creating a [proper CMake Package](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages)
47+
with `configure_package_config_file()`, and `write_basic_package_version_file()`.
48+
* If you need the "git version", use
49+
[`fair_get_git_version()` from FairCMakeModules](https://fairrootgroup.github.io/FairCMakeModules/latest/module/FairProjectConfig.html#fair-get-git-version)
50+
in addition.
51+
* Renamed our `ROOT_GENERATE_DICTIONARY()` to `FAIRROOT_GENERATE_DICTIONARY()`
52+
* Dropped build switch `BUILD_UNITTESTS`, it was in conflict with the CMake
53+
standard switch [`BUILD_TESTING` from the CTest module](https://cmake.org/cmake/help/latest/module/CTest.html)
54+
55+
* C++
56+
* `fEvtHeader` member variable now is a private unique pointer owned by
57+
`FairRun`. To access the event header, use the public member function
58+
`GetEventHeader()`.
59+
* Dropped headers:
60+
* `basemq/baseMQtools/baseMQtools.h`
61+
* `basemq/policies/Sampler/FairMQFileSource.h`
62+
* `basemq/policies/Sampler/FairSourceMQInterface.h`
63+
* `basemq/policies/Sampler/SimpleTreeReader.h`
64+
* `basemq/policies/Serialization/BinaryBaseClassSerializer.h`
65+
* `basemq/policies/Storage/BinaryOutFileManager.h`
66+
* `basemq/policies/Storage/BoostDataSaver.h`
67+
* `basemq/policies/Storage/RootOutFileManager.h`
68+
* `basemq/policies/Storage/TriviallyCopyableDataSaver.h`
69+
* `basemq/policies/Serialization/IOPolicy.h`
70+
* The following files/classes have been moved to the example where they are used and renamed:
71+
* `basemq/devices/FairMQProcessor.h` -> `examples/advanced/Tutorial3/MQ/processor.cxx`
72+
* `basemq/devices/FairMQSampler.h` -> `examples/advanced/Tutorial3/MQ/sampler.cxx`
73+
* `basemq/tasks/FairMQProcessorTask.h` -> `examples/advanced/Tutorial3/MQ/processorTask/ProcessorTask.h`
74+
* `basemq/tasks/FairMQSamplerTask.h` -> `examples/advanced/Tutorial3/MQ/samplerTask/SamplerTask.h`
75+
* FairTimeStamp
76+
* `virtual bool operator<(const FairTimeStamp* rValue) const` changed to `bool operator<(const FairTimeStamp& rValue) const`
77+
78+
### Deprecations
79+
80+
If you think you really require a deprecated API, please
81+
[file an issue](https://github.com/FairRootGroup/FairRoot/issues/new).
82+
83+
* Deprecated MbsAPI
84+
* We plan to remove it completely in the next major release
85+
* Disabled by default, enable via `-DBUILD_MBS=ON`
86+
* Deprecated Proof related classes
87+
* [Proof was deprecated in ROOT 6.26](https://github.com/root-project/root/commit/40c3e85970f83b52d6e29bb3c509498bf15fe9e5)
88+
* Disabled by default, enable via `-DBUILD_PROOF_SUPPORT=ON`
89+
* Deprecated `FairEventBuilder` and `FairEventBuilderManager` (https://github.com/FairRootGroup/FairRoot/pull/1414)
90+
* Disabled by default, enable via `-DBUILD_EVENT_BUILDER=ON`
91+
* Deprecated `FairRun::SetEventHeader(FairEventHeader*)`, use
92+
`FairRun::SetEventHeader(std::unique_ptr<FairEventHeader> EvHeader)` instead
93+
* Clarified ownership semantics
94+
* Deprecated `FairRunAna::Run(Long64_t entry)`, use
95+
`FairRunAna::RunSingleEntry(Long64_t entry)` instead
96+
* Semantics were unclear due to dubious `Run(int)` and `Run(long)`
97+
98+
### Other Notable Changes
99+
100+
* Restructured the source tree by moving all public components to the new
101+
'/fairroot' folder
102+
* Consider calling `fairroot_check_root_cxxstd_compatibility()`
103+
in your `CMakeLists.txt`
104+
* `fairsoft-config` isn't searched for and not needed any more
105+
106+
### Example Changes in Experiment Repos
107+
108+
* https://github.com/R3BRootGroup/R3BRoot/pull/413
109+
110+
## 18.8.2 - 2024-03-01
8111
9112
### Bug fixes
10113
* Fix wrong init order in eventdisplay.
@@ -24,16 +127,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
24127
* Add codemeta.json in accordance with ESCAPE
25128
* Add config for zenodo.org
26129
27-
## 18.8.1 - 2023-02-24
130+
## 18.8.1 - 2024-02-24
28131
29132
### Breaking Changes
30133
* The output folder name changed from 'folderName_0' to 'folderName'.
31-
In the MT mode of Geant4 the folder names changed from 'folderName_1' and 'folderName_2' to 'folderName'.
134+
In the MT mode of Geant4 the folder names changed from 'folderName_1' and 'folderName_2' to 'folderName'.
135+
* Removed the FairRunOnline::InitContainers() function.
136+
It has not been used in FairRoot. Tested with R3BRoot.
32137
33138
### Bug fixes
34139
* Check the return value of `source->InitUnpackers()`/`source->ReinitUnpackers()`
35140
in `FairRunOnline`. Stop run if `false` returned.
36141
* Remove sink from Tutorial3/MQ/sampler.cxx.
142+
* Fixed broken `StaticContainer` functionality (do not `ReInit`ialize when `RunId` changes) in `FairRunOnline`.
37143
38144
### Other Notable Changes
39145
* Allow running without output sink. In this case even persistent branches would not be stored anywhere.
@@ -92,7 +198,6 @@ In the MT mode of Geant4 the folder names changed from 'folderName_1' and 'folde
92198
There is also a convenience header `<FairBoostSerializationSupport.h>` which includes all
93199
class-based support headers currently offered.
94200

95-
96201
### Deprecations
97202

98203
This release of FairRoot deprecates many APIs for various

0 commit comments

Comments
 (0)