| The Gaudi Framework v32r1 (f65d50dc)

release

##

version: v30r4 date: 2018-11-02

## supported_builds: [CMake]

Package Coordinators: Marco Clemencic, Charles Leggett

# Release Notes

Improvements, modernization and fixes (see all changes).

## Changed

- Reorganization of Gaudi::Parsers code (mr !759)
- Update LCG to 94 and Gaudi version to v30r4 (mr !776)
- Update minimum required CMake version to 3.6 (mr !789)
- Remove m_event_context from `Algorithm` (mr !784)
- Reimplementation of DataHandle (mr !462)
- Improve extension API in `EventContext` (mr !770)
- Change return type of interger counters operations, like mean, to float (mr !786, issue #50)
- Clean up `IDataProviderSvc` and `IDataManagerSvc` interfaces (mr !674)
- Avoid printing empty counters (mr !777)
- Use `unique_ptr` for `EventContexts` (mr !732, issue #37)
- `ConcurrencyFlags`: move setting from `AvalancheScheduler` to `HiveWhiteBoard` (mr !726)
- Introduce a generic `IDataStoreAgent` implementation (mr !661)
- `MetaDataSvc`: save data for all clients of the `JobOptionsSvc` (mr !720)
- Adding actual type of object in data store to error messages (mr !715)

## Added

- Add `Gaudi::Property` constructors which accept an update handler (mr !769)
- Optionally capture and print exception backtrace (mr !653)
- Add build and runtime support for gcc/clang sanitizers (mr !744)
- Add debug builds to Gitlab-CI and other improvements to CI configuration (mr !756)
- Introduce `IDataBroker` interface, and `HiveDataBroker` implementation (mr !685, mr !739)
- Added an accumulate helper function to new counters (mr !717)

## Fixed

- `HiveWhiteBoard::freeStore`: check whether slot was already free (mr !779, issue #49)
- Fix segfault when scheduling `EventViews` (mr !781)
- Fixed bug in `BinomialCounter` when using buffer (mr !764)
- Clarify scalar `operator()` signature in `MultiScalarTransform` (mr !755)
- Fix potential race condition in `TimelineSvc` (mr !750)
- Implicitly convert `DataObjectHandleBase` to `str` properties (mr !773)
- Filter out install and build files from `make apply-formatting` (mr !747, )
- Fixed issues reported by gcc/clang sanitizers (mr !749, mr !757, mr !758, mr !752, mr !751, mr !746, mr !772, mr !753)
- Make sure a test fails if its reference file is not found (mr !734)
- Fix Floating Point Exception in `counters.h` (mr !760)
- Make the CMake tests more resilient to symlinks (mr !742)
- Add support for versioned ROOT libraries (mr !737)
- Make event views bookkeeping thread-safe (mr !729, issue #36)
- Avoid using a (possibly invalid) `EventContext` pointer (mr !727)
- Mark dependencies as required when the build requires them (mr !731)
- Use std::filesystem only with C++17 (mr !738)
- Fixed indentation of new counters to be backward compatible (mr !717)
- Fixed error handling of `qmt` parsing errors (mr !714)
- Stop profiling on finalize if needed (mr !713)
- `THistSvc`: fix memory corruption in `deReg(string)` (mr !728)
- Avoid possible memory corruption in `PluginService` (mr !733)
- Added correct `vector_of_const_::operator[]` and ::at (mr !710)

## Clean up

- Make `VectorMap` `nothrow_move_constructible` (mr !791)
- Fix some gcc 8 warnings (mr !782)
- Remove unused mutex member in `Algorithm` (mr !767)
- Replaced invalid `std::forward` with `std::move` in `PluginService` (mr !745)
- Counters: improve doxygen (mr !754)
- Minor code clean up (mr !408, mr !740, mr !774)