All notable changes to this project will be documented in this file.
Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett
The format is based on Keep a Changelog.
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r1">v36r1</a> - 2021-09-20
This is a minor release with a bunch of bugfixes and improvements.
Changed
- Dropped Updater mode for
DataHandles
(gaudi/Gaudi!1239)
- Truncate stall output on alg error (gaudi/Gaudi!1245)
- Replaced last instances of
boost::string_ref
and boost::optional
with std
counterparts (gaudi/Gaudi#4, gaudi/Gaudi!1244)
Added
- Add optional bin labels to Histogram accumulators axes (gaudi/Gaudi!1235)
- Define some additional matrix types (gaudi/Gaudi!1232)
- Added TH3 support to histo to/from string conversion (gaudi/Gaudi!1226)
Fixed
- Fix: private tool used by public tool thinks it is public (gaudi/Gaudi!1251)
- Type fixes related to
-Wconversion
(gaudi/Gaudi!1246)
- Fixes number of entries in ROOT histograms created by RootSink (gaudi/Gaudi!1240)
- Move computation of bin id from HistoInputType to Axis (gaudi/Gaudi!1236)
- Fix
scan_dict_deps.py
to not use directories (gaudi/Gaudi!1241)
- Fix clang11 warnings (gaudi/Gaudi!1247)
- Fix memory leak in
IncidentSvc
and more (gaudi/Gaudi!1238)
- Correctly group histograms in ROOT files (gaudi/Gaudi!1234)
- Extend
GaudiConfig2
configurable to match Configurables API (gaudi/Gaudi!1230)
- Optimize
TupleObj
(gaudi/Gaudi!1228)
- Use
CTest
fixtures and --repeat
(gaudi/Gaudi!1192)
- Fixed out of date documentation of the new Histograms (gaudi/Gaudi!1229)
- Misc fixes and improvement (gaudi/Gaudi!1252, gaudi/Gaudi!1233, gaudi/Gaudi!1231)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v36r0">v36r0</a> - 2021-06-21
This is a major release of Gaudi that introduces some backward incompatible changes (mostly clean up).
Changed
- More use of
std::string_view
(gaudi/Gaudi!1039)
- Removed unused properties in
GaudiCommon
(gaudi/Gaudi#143, gaudi/Gaudi!1138)
- Remove obsolete
IJobOptionsSvc
(gaudi/Gaudi#140, gaudi/Gaudi!1217)
- Drop
StatusCode
checking via StatusCodeSvc
(gaudi/Gaudi!989)
- Remove unused public interface methods from
GaudiCommon
(gaudi/Gaudi!1140, gaudi/Gaudi#186, gaudi/Gaudi!1220)
JobOptionSvc
: remove case insensitivity (gaudi/Gaudi#155, gaudi/Gaudi!1179)
- Use TBB task_arena to replace deprecated components (gaudi/Gaudi!1067, gaudi/Gaudi!1193)
IClassIDSvc
: remove set/get package information (gaudi/Gaudi!1200)
Added
Fixed
gaudirun.py
: Correctly handle --all-opts
when mixing GaudiConfig2
with old Configurables (gaudi/Gaudi#188, gaudi/Gaudi!1224)
- Doc: Add Sphinx-based Documentation (gaudi/Gaudi!1152, gaudi/Gaudi#190, gaudi/Gaudi!1223)
- Avoid double delete in
THistSvc::finalize
(gaudi/Gaudi!1221)
- Fix spurious clang warning (gaudi/Gaudi!1219)
has_fetch_add_v
should take a value type, not an atomic<>
. (gaudi/Gaudi!1167)
- Fix semantics of
Gaudi::Accumulators::Counter
(gaudi/Gaudi#144, gaudi/Gaudi!1136)
- Remove newlines within fatal message for easier log grepping (gaudi/Gaudi!1215)
- Fixes for LCG 100 (gaudi/Gaudi!1214)
THistSvc
threading improvement (gaudi/Gaudi#179, gaudi/Gaudi!1212)
IncidentSvc
: handle rethrow for asychronous incidents (gaudi/Gaudi!1198)
- Fix StatusCodeFail tests when using GNU Make instead of Ninja (gaudi/Gaudi!1213)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v35r4">v35r4</a> - 2021-05-25
Minor release including gaudi/Gaudi!1210, needed for an LHCb release.
Added
- Add a
MultiMergingTransformerFilter
(gaudi/Gaudi!1210)
Fixed
- Fix CMake 3.20 warnigns (gaudi/Gaudi!1211)
- Replace
sys_siglist
(deprecated) with strsignal
to allow build with newer glibc (> 2.32) (gaudi/Gaudi!1207)
- Always set TBB_LIBRARIES when TBB_FOUND (gaudi/Gaudi!1209)
- Simplify
StatusCode
compilation failure test (gaudi/Gaudi!1206, gaudi/Gaudi!1211)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v35r3">v35r3</a> - 2021-04-20
Another minor bugfix release with more fixes for ROOT 6.22 and improvements to the CMake configuration.
Here is a summary of the changes (see the full list of changes).
Changed
- Change how optional dependencies are handled in downstream projects (gaudi/Gaudi!1194)
- Remove serial task queue (gaudi/Gaudi!1195)
- Switch to latest ATLAS task precedence scenario in a test (gaudi/Gaudi!1190)
- Change
DevBuildType
to also enable -Wsuggest-override
on clang if version >= 11 (gaudi/Gaudi!1191)
Added
- Test algorithm with internal multithreading (gaudi/Gaudi!1196)
- Added a cardinality setting for
AtlasMCRecoScenario
(gaudi/Gaudi!1201)
- Extend the task precedence tracer for dumping dynamic graphs (gaudi/Gaudi!1189)
- Allow use of local targets instead of imported ones (gaudi/Gaudi!1186)
Fixed
- Allow returning void in a
MergingTransformer
(gaudi/Gaudi!1199)
- Add small test and fix for GaudiPython.Bindings.iDataSvc traversal (gaudi/Gaudi!1178)
- Fix handling of properties for tuples and arrays of size 1 (gaudi/Gaudi#21, gaudi/Gaudi!1197)
- Add dynamic dependencies scan for
genreflex
dictionaries (gaudi/Gaudi#152 gaudi/Gaudi!1183)
- Improvements on Monitoring::Hub::Entity and accumulators (gaudi/Gaudi!1185)
- Suppress warnings about
nodiscard
in dictionary generation with ROOT 6.22 (gaudi/Gaudi!1182)
- Add custom pythonization callback to SmartRefVector (gaudi/Gaudi!1180)
- Fixed bug in Histogram filling (gaudi/Gaudi!1176)
- Improve support for new style CMake projects (gaudi/Gaudi!1177)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v35r2">v35r2</a> - 2021-03-10
Just a minor bugfix release with changes required for
- ROOT 6.22 (updated PyROOT/cppyy)
- modernization of CMake configuration of LHCb projects
- use of new monitoring interfaces in LHCb Online system
Here is a summary of the changes (see the full list of changes).
Changed
- Allow use of local targets instead of imported ones (gaudi/Gaudi!1186)
- Improvements on
Monitoring::Hub::Entity
and accumulators (gaudi/Gaudi!1185)
- Improve support for new style
CMake
downstream projects (gaudi/Gaudi!1177)
Fixed
- Add dynamic dependencies scan for
genreflex
dictionaries (gaudi/Gaudi#152, gaudi/Gaudi!1183)
- Supress warnings about
__nodiscard__
attribute in dictionary generation with ROOT 6.22 (gaudi/Gaudi!1182)
- Add custom pythonization callback to
SmartRefVector
(gaudi/Gaudi!1180)
- Fixed bug in Histogram filling (gaudi/Gaudi!1176)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v35r1">v35r1</a> - 2021-01-28
This is mostly a bugfix release, with a couple of backward incompatible changes in Python DataHandle
class (gaudi/Gaudi!1144, gaudi/Gaudi!1159) and deprecation warnings from IJobOptionsSvc
, which will be dropped in v36r0 (gaudi/Gaudi#140).
Here is a summary of the full list of changes.
Changed
- DataHandle: use all members for
==
and improve unit test (gaudi/Gaudi!1159)
- Deprecate use of
IJobOptionsSvc
(gaudi/Gaudi#139, gaudi/Gaudi!1156)
- DataHandle: Remove
__add__
operators (gaudi/Gaudi#146, gaudi/Gaudi!1144)
Added
- Add support to
DataWriteHandle
for writing (partially type erased) 'views' into the TES (gaudi/Gaudi!1151)
Fixed
- Adapt tests to a change in TFile "file not found" error message (gaudi/Gaudi!1174)
- ARM Fixes (gaudi/Gaudi!1153)
- IncidentSvc: fix ever-growing incident map (gaudi/Gaudi!1164)
- Fix CF bug arising from empty sequence (gaudi/Gaudi#135, gaudi/Gaudi!1106)
- Re-enabled the installation of the
PartPropSvc
auxiliary files (gaudi/Gaudi!1172)
- Make iteration ordering predictable (gaudi/Gaudi!1169)
- StatusCode tweaks (gaudi/Gaudi!1171)
- GaudiToolbox: Fix generated
__init__
files to handle symlinks (gaudi/Gaudi!1170)
- Check result of
dynamic_cast<>
for null before dereferencing (gaudi/Gaudi!1168)
- Fix build instructions (gaudi/Gaudi#159, gaudi/Gaudi#161, gaudi/Gaudi!1162)
- Resolve "GAUDI_GENCONF_NO_FAIL option not working" (gaudi/Gaudi#160, gaudi/Gaudi!1161)
- Fix clang 10 warnings (gaudi/Gaudi!1166)
- Fix MacOS compilation (gaudi/Gaudi!1158)
- Do not set
Python_FIND_STRATEGY
(gaudi/Gaudi#157, gaudi/Gaudi!1157)
- Property: Catch all parsing errors (gaudi/Gaudi!1165)
- simplify
iid_cast
implementation (gaudi/Gaudi!1154)
- Monitor Algorithm instance misses (gaudi/Gaudi!1148)
- Fix GaudiPython classes (follows up gaudi/Gaudi!1116) (gaudi/Gaudi!1155)
- Fix py-formatting of exec (gaudi/Gaudi!1160)
- Fix Algorithm destructor invocation in multithreading applications (gaudi/Gaudi#150, gaudi/Gaudi!1149)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v35r0">v35r0</a> - 2020-11-10
This version features a complete rewrite of the CMake configuration. See gaudi/Gaudi!986 and gaudi/Gaudi!922 for details.
Here is a summary of the full list of changes.
Changed
- Complete rewrite of CMake configuration in modern CMake (gaudi/Gaudi!986, gaudi/Gaudi!922)
Fixed
- Restore use of
GENREFLEX_JOB_POOL
(gaudi/Gaudi#151, gaudi/Gaudi!1150)
- Improve resilience of CI build jobs (gaudi/Gaudi#149, gaudi/Gaudi!1146)
- Fix test checking the wrong thing (gaudi/Gaudi!1142)
- Resolve "test wrapper report logic is the wrong way around" (gaudi/Gaudi#3, gaudi/Gaudi!1132)
- Ignore relative paths when generating the run script (gaudi/Gaudi#147, gaudi/Gaudi!1145)
- Fix QMTest reference filename lookup (gaudi/Gaudi!1143)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v34r1">v34r1</a> - 2020-10-16
This is mostly a bugfix release meant as a checkpoint before the tag of v35r0 (which will introduce the refactoring of the CMake configuration, gaudi/Gaudi!986, gaudi/Gaudi!922).
We anyway have some important changes:
- update of physics constants to match the current release of CLHEP (gaudi/Gaudi!1101)
- a new way of dealing with monitorable quantities like counters and histograms (gaudi/Gaudi!1112, gaudi/Gaudi!1113, gaudi/Gaudi!1129)
DataObjectHandleProperty
renamed to DataHandleProperty
(gaudi/Gaudi!1091)
- allow services to autoretrieve tool handles (gaudi/Gaudi!1124)
- new helper class to recursively renounce inputs from all tools of an algorithm or tool (gaudi/Gaudi!1118, gaudi/Gaudi!1130, gaudi/Gaudi!1135)
Here is a summary of the full list of changes.
Changed
- Autoretrieve
AlgTools
in Services
, check for data deps (gaudi/Gaudi!1124)
- Change
DataObjectHandleProperty
to DataHandleProperty
(gaudi/Gaudi!1091)
- Update units and constants (gaudi/Gaudi!1101)
- Deprecate
put
with a plain pointer as argument (gaudi/Gaudi!1086)
Added
- Add helper class to renounce recursively inputs from all tools of an algorithm or tool (gaudi/Gaudi!1118, gaudi/Gaudi!1130, gaudi/Gaudi!1135)
- New monitoring facility for counters and histograms (gaudi/Gaudi!1112, gaudi/Gaudi!1113, gaudi/Gaudi!1129)
- Messages: Refine source field truncation (gaudi/Gaudi!1125)
- DataObjID: Add accessor for class name (gaudi/Gaudi!1126)
Fixed
- Fixes for new ROOT/cppyy (gaudi/Gaudi!1116)
- Resolve "Use of (private) `ToolHandles` may trigger the configuration of spurious public tools" (#141, !1131)
- Fixes for clang builds (gaudi/Gaudi!1121)
- Add test reference files for AVX2/AVX512 builds (gaudi/Gaudi!1122)
- Avoid output file conflict in
MetaDataSvc
test (gaudi/Gaudi!1123)
- Use Boost filesystem instead of std::fs with clang 10 (gaudi/Gaudi!1120)
- Tweak leak sanitizer suppressions for Cling, XrootD and TStreamerInfo with LCG97a (gaudi/Gaudi!1104)
- IUpdateManagerSvc: do not specify unnecessary template arguments (gaudi/Gaudi!1090)
- Update some python examples to python 3 syntax (gaudi/Gaudi!1088)
- Test for the scheduler hang on alg exceptions (gaudi/Gaudi!979, gaudi/Gaudi!1078, gaudi/Gaudi!1107)
- Check build warnings in GitLab CI (gaudi/Gaudi!1109)
- Remove deprecation warnings on old
IJobOptionsSvc
(gaudi/Gaudi!1114)
- Explicitly flush standard output in
MessageSvc::finalize()
(gaudi/Gaudi!1117)
- Use
Gaudi/Property.h
instead of GaudiKernel/Property
(gaudi/Gaudi!1105)
- Algorithm state profiling (gaudi/Gaudi!1072)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v34r0">v34r0</a> - 2020-08-04
This is a release meant to introduce a major rewrite of the Job Options Service, as described in the merge request gaudi/Gaudi!577, plus, of course, some fixes.
Changed
- Bump version to v34r0 (gaudi/Gaudi!1096)
- Redesign of job options management (gaudi/Gaudi!577, gaudi/Gaudi#105)
- Re-apply gaudi/Gaudi!1064: Isolate sub-slot data from the parent slot (gaudi/Gaudi!1095)
Added
Fixed
- FMT Library Usage Improvement (gaudi/Gaudi!1103)
- Minor fixes for Clang 10 build, adapt BinaryTagUtils to allow compiler version >10 (gaudi/Gaudi!1097)
- Do not tinker with output file names in GaudiMP (gaudi/Gaudi!1098)
- Add support for special LCG versions (gaudi/Gaudi!1099)
- Fix Python 3 compatibility issues (gaudi/Gaudi!1102, b87519600879cde3be7694d9fd7567c6efd8db1c)
- Protect messages in event loop (gaudi/Gaudi!1100)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v33r2">v33r2</a> - 2020-06-19
This is a bugfix release with just a couple of minor backward compatible improvements.
We also updated the LCG baseline version to LCG 97a (ROOT 6.20/06).
This is the last release with the legacy CMake configuration. From the next release (v34r0) we will use a modern CMake configuration (see gaudi/Gaudi!922 and gaudi/Gaudi!986 for details).
Added
- Improve event context extension management (gaudi/Gaudi!1080)
- Introducing Set-semantics (gaudi/Gaudi!1066)
- Make gitlab use cpp syntax highlighting for icpp files (gaudi/Gaudi!1057)
Fixed
- Fixes for ROOT master (gaudi/Gaudi!1071)
- Use fmtlib instead of
boost::format
(where possible) (gaudi/Gaudi!1046, gaudi/Gaudi#112)
- Conditions alg test, with stall debug info (gaudi/Gaudi!1092)
- Make sure the TES is cleaned by
EventLoopMgr
before finalize (gaudi/Gaudi!1082, LHCBPS-1850)
- Fix race condition between tests (gaudi/Gaudi!1074)
- Fix propagation of
StopIteration
exception (gaudi/Gaudi!1093, gaudi/Gaudi#129)
- Update HiveDataBroker to use C++20 ranges if available. (gaudi/Gaudi!1089)
- Fixes for C++20 (gaudi/Gaudi!1085)
- Fix thread-safety problem in GaudiHandle (gaudi/Gaudi!1084)
- Misc. sanitiser improvements (gaudi/Gaudi!1081)
- Make
GaudiHandleArray.__str__
consistent with GaudiHandle.__str__
(gaudi/Gaudi!1070)
- Fix trivial typo in message (gaudi/Gaudi!1087)
GaudiConfig2
: fix unpickling of derived Configurables (gaudi/Gaudi!1076, gaudi/Gaudi#124)
- Remove data flow dumps or make them configurable (gaudi/Gaudi!1075)
- Change
StatusCode::orThrow
so that the return value can be ignored (gaudi/Gaudi!1073, gaudi/Gaudi#118)
- Fix bugs in
ThreadPoolSvc
(gaudi/Gaudi!1068)
- Sequence semantics update (gaudi/Gaudi!1069)
- Remove now unused
ATLAS_GAUDI_V21
and HAVE_GAUDI_PLUGINSVC
definitions (gaudi/Gaudi!1062)
- Few fixes to
GaudiConfig2
(gaudi/Gaudi!1061)
- Fix compatibility with C++ GSL 3 (gaudi/Gaudi!1063, gaudi/Gaudi#121)
- Consolidate and optimize scheduling of blocking tasks (gaudi/Gaudi!1051)
- Do not run public headers build test on generated headers (gaudi/Gaudi!974)
- Add array
operator<<
into SerializeSTL.h
(gaudi/Gaudi!1049)
- Dereference instead of
operator*
in get_from_handle
to enable Gaudi::Ranges
in MergingTransformer
s (gaudi/Gaudi!1047)
- Fixes for
GetHostBinaryTag
(gaudi/Gaudi!1058)
- Remove unused capture of
this
in MultiTransformerFilter
(gaudi/Gaudi!1059)
- Fix deprecated copy constructor warning in
StreamBuffer::ContainedLink
(gaudi/Gaudi!1060)
AlgExecStateSvc
: require minimum state size to be 1 (gaudi/Gaudi!1055)
IncidentSvc
: improve error reporting (gaudi/Gaudi!1054)
- Remove mention of deprecated
tbb::recursive_mutex
(gaudi/Gaudi!1053)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v33r1">v33r1</a> - 2020-03-23
This release contains multiple fixes and some ABI changes, in particular:
StatusCode
values not checked now produce a compile time warning.
- some interfaces have been changed to accept
std::string_view
instead of const std::string&
By default, Gaudi now uses LCG 97 (ROOT 6.20/02).
Changed
- Removed
FindXercesC.cmake
now that new versions of Xerces are integrated with CMake (!1048)
- Add
[[nodiscard]]
attribute to StatusCode
(!763)
- Use local memory pool in EvtStoreSvc (!1026)
- Deprecate use of
AnyDataHandle
(!1029)
- Cleanup some string handling & remove long deprecated functions (!1016)
- confDB2: Use 'PublicToolHandle', 'PrivateToolHandle' and 'ServiceHandle' instead of GaudiHandleBase as cpp_type (!1034)
Added
- Add options to EvtStoreSvc to restrict registering addresses (#84, !1032)
Fixed
- Make formatting check more stable and fast (!1050)
- Fix propagation of
GaudiSequencer
RootInTES
(#94, !990)
- Fix handling of const vector in
DataObjectHandle
for MergingTransformer
(!1045)
- Minor fixes to build on MacOS (!1044)
- Avoid explicit call to
EnableAutoLoading
for ROOT > 6.18 (!1036)
- Use PyROOT nullptr instead of None (1035)
- Support
DataObjectHandle<Gaudi::NamedRange_<T>>
(!1043)
- AlgExecStateSvc: Remove a fatal message and minor cleanups (!1037)
- Improve memory management in
ParticlePropertySvc
(!1040)
- JobOptionSvc: Fix DUMPFILE option (!1041)
- Resolve "GaudiConfigDB2: Fragile handling of templated components" (#115, !1042)
- Prefer
std::scoped_lock
over lock_guard
(!1030, !1038)
- Reduce dynamic allocation in
GaudiKernel/Time.h
(!1033)
- Allow legacy algorithms to work with LHCb condition handles (!1031)
- Fix Cling warnings when using
GaudiPython::Helper
struct (!1028)
- Define a module
__spec__
for Configurables (!1027)
- clang requires -ffp-contract=fast with -mfma to actually enable FMA instructions (!1022)
- genconf: Fixing the handling of NAN (!1025)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v33r0">v33r0</a> - 2019-12-16
This major release of Gaudi contains additions, improvements and fixes, but most of all it adds the agreed on copyright statement and license:
© 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations, Apache version 2 license
Among the new features I'd like to highlight:
Changed
- Enable sse 4.2 by default for clang >= 6.0 (!1019)
- Use gcc9 in Gilab-CI builds (!1013)
- Remove begin/endRun methods (!1008)
- Make
HistogramPersistencySvc
a little quieter (!992)
- Reorganization of Counters headers (!1006)
- Add new
StatusCode
category to return filter passed states from functional algorithms (!981)
- Use
xenv
1.0.0 if not available from the system (!984)
- Remove const-incorrect
ToolHandle
s exception for ATLAS (!978)
Added
- Set Gaudi copyright and license (!1018)
- Add experimental support for histograms as counters (!1020)
- Add detection of strongly connected components in the data flow precedence rules (!998)
- Debug output for a stall expecting conditions data (!994)
- Add PRG validators for detection of unconditional "editing" of data objects (!980)
- Prototype for a renewed Python Configurables implementation (!721)
- Add helpers to chain
StatusCode
dependent executions (!988)
- Update
THistSvc
to support TEfficiency
(!1011)
- Support bulk increment of
BinomialAccumulator
(!999)
Fixed
genconf
: fix quoting of strings containing quotes (!1023)
- Ignore unicode decode errors in test stdout (!1021)
- Do not use
xenv
from LCG (!1005)
- Properly escape strings with embedded quotes in
Gaudi::Utils::toStream
(!1012)
- Detect ROOT C++ standard from
ROOTConfig.cmake
(!985)
- Adjust clang warning suppression pragmas in
Transformer.h
(!1014)
- Improve scheduler performance with fewer calls to updateState (!870)
Gaudi::Functional
: Add possibility to query input/output location by type (!1009, !1015)
- Enable
Gaudi::Functional::Transformer<Result(const EventContext&)>
(!1007)
- More precise message for multiple algorithms having the same output in
HiveDataBroker
(!1003)
- Add flag to turn on/off use of
std::filesystem
(!987)
IoComponentMgr
: Only release components during finalize (!1004)
- Allow calling
f(std::string_view)
with a Gaudi::Property<std::string>
(!1002)
- Specify file encoding when reading (!1000)
- Suppress printout of unused
MsgCounter
instances (!996)
- Do not print
SequencerTimerTool
header in finalize if there are no timing results (!997)
- Support for latest TBB and fixes for C++GSL and Range-v3 (!982)
- Fixes for "defects" detected by Coverity (!939)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v32r2">v32r2</a> - 2019-09-27
This is mostly a bugfix release, but there are nonetheless a couple of important changes:
- now Gaudi can be used with Python 3 (#56)
- the
IAsyncEventProcessor
experimental interface introduced in v32r0 (!878) has been replaced with IQueueingEventProcessor
(!966)
- it's now possible to get type information from Python version of
DataHandle
s
Changed
- Replace
IAsyncEventProcessor
with IQueueingEventProcessor
(!966)
Added
- GaudiKernel
instructionsetLevel
: Add additional AVX512 levels (!954)
- Add Python 3 support (#56, !875, !975, #88, !976)
- Add vecwid256 microarchitecture option to enable
-mprefer-vector-width=256
(!965)
- Add type information to Python representation of
DataHandle
s (!951)
Fixed
- Backward compatible interface of
IAlgorithm
for GaudiPython
(#75, !977)
- Misc fixes for
GaudiMP
(#87, #75, !973)
- Remove unneeded change in refactoring of TES handling (#70, !971)
- Various ToolHandleArray bug fixes (!960)
- Functional ranges v3 0.9.x warning suppression (!968)
- Fix clang
-Wpotentially-evaluated-expression
warning (!970)
- Switch from Boost test minimal (deprecated) to single header variant (!948)
- Fixes for MacOS (!956)
- Make
ContainedObject
assignment consistent with copy construction (!967)
THistSvc::io_reinit
: Handle case of empty new filename (!959)
EventSelector
- Always set context ptr to null on release (!961)
- Minor improvements to sanitizers (!955)
ChronoStatSvc
- Clear maps in finalize (!958)
- Minor updates to
Gaudi::Functional
implementation (!952)
THistSvc
: Fix crash in MP if root file already exists (!949)
- Fix gcc9 warnings (!962)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v32r1">v32r1</a> - 2019-07-18
Bugfix release, with some backward compatible changes, mostly meant to pick up LCG 96 and ROOT 6.18/00.
Note: Because of the updated version of Boost in LCG 96, you should use a recent version of CMake (>= 3.14).
Changed
- Add algorithm name to warning in
HiveDataBroker
(!923)
- Make
Configurable.getGaudiType
a classmethod
(!929)
- Prefer
xyz_v<T>
over xyz<T>::value
, and xyz_t<T>
over typename xyz<T>::type
(!925)
- Prefer
std::{variant,optional}
over boost::{variant,optional}
(!926)
Added
- Specify
JOB_POOL
for genreflex
custom commands (!933)
- Add an example
MergingTransformer
algorithm (!934)
- Add loop unroll hint macros to
GaudiKernel/Kernel.h
(!931)
- Add
MsgCounter
(!921)
- Introduce a
MergingMultiTransformer
(!901)
Fixed
- Removed a few unused
.cpp
files (!945)
- Print counters in Gaudi::Algorithm::finalize (!943, !946, !947)
- Make asynceventprocessor tests more stable (!940)
- Small fixes to toolchain (!938)
- Use the
AlgContext
guard constructor without EventContext
for single thread (!973, #72, #73)
- Hide spurious warning from
clang-8
(!941)
- Check that the
clang-format
command found can be executed (!935)
- Improve scheduler stall debug output (!930)
- Fix
CMake
modules test on special architectures (!927)
- Fix handling of strings with quotes in properties (!919)
- Remove reference to removed
gaudimain.runSerialOld
(!918)
- Restore backward compatibility after !878 (!917)
- Revert !869: Create a queue for all schedule-able algorithms (!924)
- Add
GaudiKernel
linkage to Counters unit test (!920)
- Misc. sanitizer fixes (!916)
- Fix
distcc
/icecc
support (!911)
- Made the
LibLZMA
dependency in GaudiKernel
optional (!909)
GaudiKernel
: check likely macros before defining them (!912)
- Fix
IOpaqueAddress
lifetime in EvtStoreSvc
(!914)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v32r0">v32r0</a> - 2019-05-18
This release features many fixes and improvements, but also a few backward incompatible changes:
- removed
GaudiGSL
package (in preparation for the licensing under Apache 2) (!879)
- change of
IEventProcessor
interface (!877)
- change (const correctness) of custom containers interfaces (!896)
- removed a few unused components:
HLTEventLoopMgr
(!876), AlgErrorAuditor
(!874)
- drop support for Python custom event loop in
gaudirun.py
(!878)
Among the various additions you can find:
Counter
-based timers (!787)
- example of an interface for accessing conditions, which require experiment specific implementation (!838)
- a new interface (
Gaudi::Interfaces::IAsyncEventProcessor
) to allow decoupling of the main thread from the event processing thread(s) (!878)
- a simplified application steering class (
Gaudi::Application
) (!878)
Changed
- Update
clang-format
to 8 (!872)
- Factor TES path related code out of
GaudiCommon
(!904)
- More explicit management of
EventContext
in IEventProcessor
(!877)
- Small clean up in
EventLoopMgr
implementations (!876)
- Remove
GaudiGSL
(!879)
- Do not return non-const pointers to elements of const containers (!896)
- Drop backwards compatibility code (!883, !900)
HiveDataBroker
: throw exception in case of same output locations in two different algorithms (!858)
- Delete
AlgErrorAuditor
(!874)
PrecedenceSvc
: demote 'Verifying rules' message to debug (!873)
- Replace
boost::string_ref
with std::string_view
(!859)
Added
- Add optional extension of
EventProcessor
for asynchronous processing (!878)
- Add example of
ConditionAccessorHolder
implementation for integration in Functional (!838)
- Bits for the cross-experiment study on heterogeneous workflows (!828)
- Generalize
Gaudi::Functional
to support LHCb-style conditions handles (!899)
- Add a synthetic performance stress test for the scheduler (!865)
- New Minimal Event Store:
EvtStoreSvc
(!882)
- Add Counter-based timers (!787)
- Add support for
Gaudi::Algorithm
as base class of Functional
algorithms (!897)
- Create a queue for all schedule-able algorithms (!869)
- Add support for specific architectures in BINARY_TAG (!853)
- Add
getIfExits
for DataHandle
s with AnyDataWrapper
(!854)
- Add support for
std::chrono::duration
in counters (!849)
- Add the possibility to ask for Mode in python data handle property (!845)
Fixed
- Tweaks to
Gaudi::Functional
(!903)
HiveDataBroker
: Improve error message when unknown requested input (!906)
- Avoid copy of
EventContext
in Gaudi::Utils::AlgContext
(!902)
- Reverse order of tbb
task_scheduler_init
and global_control
(!895)
- Make
StatusCodeSvc
thread-safe (!885)
ThreadPoolSvc
: prefer std::unique_ptr
(!889)
- Ensure thread termination tools only run in initialized threads (!887)
- Updates for MacOS and clang (!888, !894, !893)
- Enable
std::iterator_traits<vector_of_const_<T>::iterator>
(!855)
- Fix
MessageSvc::reinitialize
(!871)
- Fixes to
EventIDRange
(!860)
ApplicationMgr
: Call all state transition for MessageSvc
and JobOptionsSvc
(!866)
- Fix tunneling of CF decisions to inactive graph regions in multi-parent configurations (!863)
- Use
[[fallthrough]]
attribute instead of the fallthrough comment (!862)
- Restructure PRG sources and add visitor for Concurrent/Prompt CF inconsistency detection (!861)
- Sort data dependencies in
HiveDataBroker
debug printout (!868)
- Avoid displaying unused Binomial counters (!830)
- Python 2 & 3 compatibility (!832, !852)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v29r5">v29r5</a> - 2019-03-06
This is a bugfix release only to fix a warning with the most recent version of CMake (3.13), see the changes on Gitlab.
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v31r0">v31r0</a> - 2019-02-11
The main reason for this major release is to the change of the Algorithm
base class with a re-entrant execute
method (#47, !703). For backward compatibility the base class for algorithms is Gaudi::Algorithm
, while the name Algorithm
in the top level namespace is used for a backward compatible implementation. This change also required a backward incompatible change in the IAlgorithm
interface, so some code may require adaptation.
We also took the occasion to update the version of clang-format
we use from 3.9 to 7, and to switch Python formatting from autopep8
to yapf
(!788). Because of the differences (fixes and new features) in the versions of clang-format
, we also updated the style rules.
As of this version, Gaudi requires C++17 compatible compiler. C++14 compatibility is not required in merge requests, nor guaranteed on the master branch.
On top of that, we have the usual collection of minor fixes and improvements.
Changed
- Use gcc 8 instead of gcc 7, and drop gcc 6.2 in CI jobs (!836)
- Make new counters work with Gaudi::Algorithm (#57, !834, !839)
- Update clang-format version and style rules (!788)
- Make
DataObjectHandle::{put,getOrCreate}
const (!833)
- Simplify IAlgExecStateSvc interface (!775)
- Simplify Algorithm constructor (!766)
- Improve the scheduler's execution flow simulator and fix the intra-event occupancy logger (!819)
- Reentrant Algorithm base class (#47, !703)
Added
- Introduced
CPUCrunchSvc
(!840)
- Added a boolean parameter to turn on verbose view algorithm status (!835)
- Added
MsgStream
support for counters (!826)
- Message: Add option to print full event ID (!824)
- IoComponentMgr: Add interface to retrieve all filenames of component (!823)
- Add example for
Consumer<void()>
(!797)
Fixed
- Fix lookup/use of
nosetests
for LCG 95 (!842)
- Check coding conventions in build stage of Gitlab-CI (!848)
- Make
gaudi_add_compile_test
also work for succeeding compilations (!844)
- Fix build of Gaudi with LCG 95rc1 in ATLAS context (!847)
- Explicitly define
StatusCode
constants (!841)
- Fix handling of
EventContext
in Gaudi::Functional::Transformer
arguments (!837)
Extensions
to allow EventIDRanges
limited by both time-stamps and run/LB pairs (!831)
- Improve ROOT dictionary dependency computation (!825)
- Fix issues in preparation for LCG 95 (!820)
- Improve QMT test wrapper (!812)
- Improvements for tests (!812, !817)
- Fixes/workrounds for thread-safety (!815, !829)
- Code clean up (!808, !811, !814, !809, !827, !843)
- Fixes to thread local initialization (!816, !807)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v30r5">v30r5</a> - 2018-11-15
This release is mainly to revert !462 (Reimplemenation of DataHandle
), which caused problems in ATLAS code.
Supersedes v30r4
Changed
- refer error in databroker when multiple algorithms declare the same output and remove some error messages (!799)
- Remove redundant code from
GaudiKernel/StdArrayAsProperty.h
(!790)
- Use generic
boost::callable_traits
over hand-rolled solution (!785)
- Revert "Reimplementation of `DataHandle` (!462)" (!794)
Added
- Added printing of Inputs/Outputs for
HiveDataBroker
in debug mode (!801)
- Support Boost >= 1.67 Python library name convention (!743)
Fixed
- Reduce dependency on LHCb env tools in CI jobs (!805)
- Make sure algorithms managed by
AlgorithmManager
are correctly initialized and started (!804)
test_LBCORE_716
: Use the default linker and not the system linker (!783)
CountersUnitTest
: Fix C++14 compiler warning (!795)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v30r4">v30r4</a> - 2018-11-02 [YANKED]
Improvements, modernization and fixes.
Changed
- Reorganization of Gaudi::Parsers code (!759)
- Update LCG to 94 and Gaudi version to v30r4 (!776)
- Update minimum required CMake version to 3.6 (!789)
- Remove m_event_context from
Algorithm
(!784)
- Reimplementation of
DataHandle
(!462)
- Improve extension API in
EventContext
(!770)
- Change return type of interger counters operations, like mean, to float (!786, #50)
- Clean up
IDataProviderSvc
and IDataManagerSvc
interfaces (!674)
- Avoid printing empty counters (!777)
- Use
unique_ptr
for EventContexts
(!732, #37)
ConcurrencyFlags
: move setting from AvalancheScheduler
to HiveWhiteBoard
(!726)
- Introduce a generic
IDataStoreAgent
implementation (!661)
MetaDataSvc
: save data for all clients of the JobOptionsSvc
(!720)
- Adding actual type of object in data store to error messages (!715)
Added
- Add
Gaudi::Property
constructors which accept an update handler (!769)
- Optionally capture and print exception backtrace (!653)
- Add build and runtime support for gcc/clang sanitizers (!744)
- Add debug builds to Gitlab-CI and other improvements to CI configuration (!756)
- Introduce
IDataBroker
interface, and HiveDataBroker
implementation (!685, !739)
- Added an accumulate helper function to new counters (!717)
Fixed
HiveWhiteBoard::freeStore
: check whether slot was already free (!779, #49)
- Fix segfault when scheduling
EventViews
(!781)
- Fixed bug in
BinomialCounter
when using buffer (!764)
- Clarify scalar
operator()
signature in MultiScalarTransform
(!755)
- Fix potential race condition in
TimelineSvc
(!750)
- Implicitly convert
DataObjectHandleBase
to str
properties (!773)
- Filter out install and build files from
make apply-formatting
(!747, )
- Fixed issues reported by gcc/clang sanitizers (!749, !757, !758, !752, !751, !746, !772, !753)
- Make sure a test fails if its reference file is not found (!734)
- Fix Floating Point Exception in
counters.h
(!760)
- Make the CMake tests more resilient to symlinks (!742)
- Add support for versioned ROOT libraries (!737)
- Make event views bookkeeping thread-safe (!729, #36)
- Avoid using a (possibly invalid)
EventContext
pointer (!727)
- Mark dependencies as required when the build requires them (!731)
- Use std::filesystem only with C++17 (!738)
- Fixed indentation of new counters to be backward compatible (!717)
- Fixed error handling of
qmt
parsing errors (!714)
- Stop profiling on finalize if needed (!713)
THistSvc
: fix memory corruption in deReg(string)
(!728)
- Avoid possible memory corruption in
PluginService
(!733)
- Added correct
vector_of_const_::operator[]
and ::at (!710)
Clean up
- Make
VectorMap
nothrow_move_constructible
(!791)
- Fix some gcc 8 warnings (!782)
- Remove unused mutex member in
Algorithm
(!767)
- Replaced invalid
std::forward
with std::move
in PluginService
(!745)
- Counters: improve doxygen (!754)
- Minor code clean up (!408, !740, !774)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v30r3">v30r3</a> - 2018-08-01
Improvements, modernization and fixes.
Deprecated
Changed
- Implement error detection for Hive scheduler/eventloopmgr (!706)
- Modernize memory management in
PrecedenceRulesGraph
(!684)
- Simplify
HLTEventLoopMgr
(!686)
- Rewrite of
PluginService
in modern C++ (!709)
- Sort uids map before printing the content at finalize (in DEBUG) (!702)
- Remove
NTUPLEINFO
(!688)
- Revert
IRegsitry
modification from !604 (!704)
- Move to event-wise stall detection (!690)
- Avoid superfluous visitor-to-scheduler handovers of in-view DR algorithms (!689)
- Add set-to-set lookups for faster
AlgsExecutionStates
matching (!687)
FileMgr
: replace integer with bitset (!667)
- Enable top-level 3T dumps for event views (!675)
- Add support for multiple CF parents to 3T (!672)
- Applied new formatting (see !651, !448)
- Remove
DataHandle::commit()
(!625)
- Modernize Registry usage in (Ts)DataSvc (!604, #5)
- Improve Gitlab-CI configuration (!651, !448)
- Implemented a new property for IoComponentMgr to hold search patterns for direct I/O input file names (!646)
- Allow retrieval of const services, lost with !526 (!647)
- Add renamePFN and deletePFN methods to FileCatalog (!645)
- Do string conversion in stream operator for
AlgsExecutionStates::State
(!643)
- Use
apply
in Gaudi::Functional
(!622)
Fixed
- Fixes for clang build (!724)
- Fix dependency of generated PCM files (!705)
- Fix tests in special configurations (!701)
- Fix asynchronous task scheduling (!697)
- Make sure we do not use
ninja
from LCG (!695)
- Increase timeout for event view tests (!696)
- Fix message service format in
GaudiMP
(!694)
CommonAuditor
: only print CustomEventType
deprecation warning if the property is used (!691)
- Fix for crash when events are deleted while view algorithms are still running (!670)
- Fix environment for Gitlab-CI
- Unset
GIT_DIR
/GIT_WORK_TREE
before cloning xenv
(!669)
- Add test and fix of version propagation in KeyedContainer move (!663, #27)
- Fixed the list of files used for formatting check in Gitlab-CI (!664)
- Avoid (false positive) clang warning (!656)
- Handle incompatible values for DataObjectHandleBase props (!650)
- Fixed bug in THistSvc introduced with !594 (!652)
Added
Clean up
- Simplify
Property
forwarding functions (!683)
- Simplify counter implementation (!682)
- Update C++17 / lib fundamentals v2 implementations (!681)
- Modernize
GaudiPython
(!680)
- Modernize
RootCnv
(!660)
- Modernize
RootHistCnv
(!659)
- Protect logging and clean up headers in HiveSlimEventLoopMgr (!692)
- Remove unused variables in Algorithm (!668)
- Remove unreferenced code (!658)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v28r2p1">v28r2p1</a> - 2018-06-15
Bugfix release
Fixed
- Add test and fix of version propagation in KeyedContainer move (!665, #27)
Added
- Gitlab-CI configuration (!665, backport from master)
<a href="https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v29r4">v29r4</a> - 2018-04-17
Bugfix release.
Fixed
Changed
- Improve Gitlab-CI configuration (!655, backport of !651)
Old versions
Details about old versions of the project can be found in the [ReleaseNotes](ReleaseNotes) folder and in the release.notes
files in GaudiRelease/doc.