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 MergingTransformers (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
ToolHandles 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
IAsyncEventProcessorexperimental interface introduced in v32r0 (!878) has been replaced with IQueueingEventProcessor (!966)
- it's now possible to get type information from Python version of
DataHandles
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
DataHandles (!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 DataHandles 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.