| The Gaudi Framework v32r1 (f65d50dc)

release

##

version: v30r2 date: 2018-03-20

## supported_builds: [CMake]

Package Coordinators: Marco Clemencic, Charles Leggett, Benedikt Hegner

# Release Notes

This release contains several bugfixes and improvements, and some backward incompatible change.

## Backward Incompatible Changes

- Dropped backward compatibility with XyzFactory classes (mr !420)
  - obsolete `XyzFactory.h` header files and macros `DECLARE_XYZ_FACTORY` have been removed
- Add category support to `StatusCode` (mr !514)
  - `StatusCode` internal code is now an enum class and conversion to/from integer has been made explicit
- Remove obsolete MT components (mr !546, mr !608)
  - unused GaudiMT and GaudiMTTools have been removed
- Externalize shared python tools (mr !612)
  - a couple of Python tools have been moved to independent projects
- Dropped unused `ICounterSvc`, its implementation and its tests (mr !628)
  - not used

## Deprecations

- Add deprecation warning in `PropertyProxy` (mr !633)
  - properties with `[[deprecated]]` in the doc string print a deprecation warning when assigned
- Deprecate Algorithm begin/end run methods (mr !542)
  - `beginRun` and `endRun` methods of `Algorithm` are deprecated

## All Merge Requests

- Bug Fix
  - EventView isolation fix, and added testing (mr !540)
  - TaggedBool: use a more specific header guard name (mr !584)
  - Fix formatting of current master (mr !586)
  - `[[deprecated]]` does not compile with using statements (mr !587)
  - Fixed Python formatting (mr !588)
  - Make uncompiled exported headers compilable (mr !590)
  - Fix compilation with gcc 5.4 (Ubuntu 16.04) (mr !607)
  - Allow updating of registered Timeline Event records (mr !610)
  - Fix compilation with C++17 (mr !616)
  - Speed up TimelineSvc (mr !620)
  - Remove constexpr from StatusCode default constructor for Coverity scans (mr !630)
  - Fix deduction of property return values (mr !634)
  - AvalancheSchedulerSvc: Fix undefined output ordering (mr !635)
  - Fix warnings seen when compiling with gcc8 (mr !638)
  - Prevent property deprecation warnings when unpickling options (mr !641)
  - Fixed a couple of bugs found by Coverity (mr !644)
- Build System
  - Fixed typo in CMake option name (mr !578)
  - Fix distcc support and add icecream (mr !585)
  - Require Python 2.7 until Python 3 migration is complete (mr !606)
  - Externalize shared python tools (mr !612)
  - Remove restrictions on names of installed headers (mr !615)
- C++ Framework
  - Add thread friendly `THistSvc` (mr !455)
  - Make `Gaudi::Property<T>` work even if `T` is only copy-constructible (mr !470)
  - Version of !508 closer to the original !474 version (mr !509)
  - Implement EventIDBase ordering in a generic way by specifying projections (mr !510)
  - Add category support to `StatusCode` (mr !514)
  - Use tool type as default name for auto registered ToolHandles (mr !535)
  - Deprecate Algorithm begin/end run methods (mr !542)
  - Remove obsolete MT components (mr !546)
  - CommonMessaging: allow msgLevel to be called early (mr !566)
  - Add support for `Gaudi::Range_` to `DataObjectHandle` (mr !571)
  - Demoted a few `AvalancheSchedulerSvc` messages (mr !576)
  - Add Range & Selection support to Gaudi::Functional (mr !579)
  - Added support for direct reading over WebDAV to IoComponentMgr (mr !580)
  - Use `GaudiKernel/compose.h` (mr !582)
  - ToolHandle: add TaggedBool parameter to control retrieval (mr !583)
  - ToolHandle: throw exception if retrieval fails (mr !591)
  - Revert some interface changes of `THistSvc` (mr !594)
  - ToolHandle: add EnableTool tagged bool to control retrieval (mr !595)
  - Add `declareTool(handle)` convenience method to Algorithm (mr !598)
  - CommonMessaging: Improved inlining and branch predicition (mr !600)
  - Use deduction guide in C++17 version of compose and rename it to overloaded (mr !621)
  - StatusCode: have setters return reference to `*this` (mr !627)
  - ThreadInitTask: MT fix (mr !631)
- Code Cleanup
  - Dropped backward compatibility with XyzFactory classes (mr !420)
  - Avoid C-style casts (mr !526)
  - Change Tuple ownership implementation (mr !534)
  - Revisit in-failure and in-stall console dumps of scheduler state, plus few other misc. things (mr !541)
  - Use `detected_or` idiom to simplify `Range.h` (mr !572)
  - Remove unused IIncidentListener inheritance from RndmEngine (mr !573)
  - Extend `detected_or` implementation and use it in CommonMessaging (mr !574)
  - Cleanup `GaudiKernel/reverse.h` (mr !581)
  - Restore thread-wise task schedule reporting in scheduler state dumps (mr !593)
  - Remove deprecated header `GaudiKernel/ThreadGaudi.h` (mr !608)
  - Simplify TupleObj::columns (mr !623)
  - EventIDBase: improve printout (mr !626)
  - Dropped unused `ICounterSvc`, its implementation and its tests (mr !628)
  - Add deprecation warning in `PropertyProxy` (mr !633)
  - Remove deprecation warning from ExtraInputs and ExtraOutputs properties (mr !639)
- Configuration
  - Update Gaudi and LCG versions, and release notes (mr !601)
- Task Scheduling
  - Adapt RunSimulator visitor to new downward navigation gears in the CF PRG realm (mr !539)
- Tests
  - Add test build of public headers (mr !592)
  - Small improvement to the TimelineSvc test (mr !611)
  - Add `gaudi_add_compile_test` and StatusCode compilation test (mr !613)

The full list of changes can also be found on Gitlab.

Externals version: LCG 93