The Gaudi Framework  v30r3 (a5ef0a68)
!-----------------------------------------------------------------------------
! Package     : RootCnv
! Responsible : Markus Frank
! Purpose     : Root based persistency
! Commit Id   : $Format:%H$
!-----------------------------------------------------------------------------

================================ Gaudi v28r3 =================================

! 2017-06-02 - Paul Seyfert (commit acb3ca5e)

 - Merge branch 'pseyfert_IWYU' into 'master'

   make exported headers self contained
    See merge request !348

================================ Gaudi v28r2 =================================


================================ Gaudi v28r1 =================================

! 2016-12-07 - many contributors (commit dc1b505)

 - port LHCb MT developments to Gaudi master

   among others we have
   - `Gaudi::Functional`: base classes to write algorithms as pure functions
   - `AnyDataWrapper`/`AnyDataHandle`: helper to store any type in the Transient
   Store (DataSvc)
   - fixes to `DataObjectHandle`
   - fixes to `GaudiHive`
   - new tests and examples
   - modernization (removed empty destructors, ...)
    See merge request !245

! 2016-11-25 - Marco Cattaneo (commit 18218f4)

 - Change default Root compression to LZMA:4

   LHCb measured that LZMA:4 is considerably faster than LZMA:6, with only a
   small increase in size. See LBCORE-1116.
    See merge request !239

================================ Gaudi v28r0 =================================

! 2016-10-28 - Marco Clemencic (commit 7a372bb)

 - fixed a few compilation warnings

   See merge request !221

! 2016-10-27 - Gerhard Raven, Marco Clemencic (commit b111898)

 - modernization of Property

   This is a major rewrite of the system of `Property` classes. Started as  the
   implementation of GAUDI-1214, it continued as a review of
   `IProperty` and `PropertyMgr`, to end up in a complete rewrite
   (and optimization) of `PropertyWithValue`.

   * Fixes GAUDI-1214
    - added missing `declareProperty` signature
    - added `PropertyHolder` (an updated `PropertyMgr`)
    - adapted all properties in Gaudi
   * improved use of `PropertyHolder`
    - use inheritance instead of composition
    - removed ~200 (duplicated) lines of code in GaudiKernel
   * optimization of Property (fixes GAUDI-1229)
    - use templates and automatic code generation to handle efficiently
      both value and reference properties
      - avoid creation of values on the heap (see GAUDI-1229)
      - removed the *owned* boolean flag
      - improved usability of properties (e.g. begin/end wrappers for
        C++11 loops, increment/decrement operators...)
      - deprecated use of C arrays as properties
    - merged features of `PropertyWithVerifier`, `SimpleProperty` and
      `SimplePropertyRef` into `PropertyWithValue`
    - deduplication of name and doc strings via

   [`boost::string_ref`](http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html)

      and a static storage  (see GAUDI-1229)
   * Fixes GAUDI-1205
   * add deprecation warnings in service accessors of `Algorithm` (@graven)
   * renamed `Property` base class to `Gaudi::Details::PropertyBase` and
   `PropertyWithValue` to `Gaudi::Property`
    - added backward compatibility type aliases (but not compatible with
      forward declarations of `class Property`, which should be replaced
      by `#include "GaudiKernel/PropertyFwd.h"`)
   * added macro `GAUDI_PROPERTY_v2` to allow easy implementation of
    backward compatible changes in derived projects (e.g. when user code
    relied on `DoubleProperty` having a verifier)
   * Fixes GAUDI-1268
    The changes are as backward compatible as much as possible (except if you
   explicitly inherit from `SimpleProperty`, or you forward declared
   `class Property`, which now are typedefs), but must be validated in the
   experiment frameworks.
    See merge request !182

! 2016-10-24 - Marco Clemencic (commit a8d6605)

 - hidden/fixed "missing override" warnings exposed after !192

   - warnings from external headers are hidden declaring the include directories
   as `-system`
   - warnings from a couple of new files have been fixed
   - warnings in `HistogramSvc` are hidden because unavoidable (see f83c3d8e)
   - warnings related to CLHEP-136 have been hidden with a special trick (see
   0a238135)
    See merge request !205

! 2016-10-19 - Marco Clemencic (commit e2c1f4a)

 - fixes and improvements for ROOT 6.08 and gcc 6.1

   * added option to use or not GCC old C++11 ABI (off by default)
   * added some missing #include for the usual headers clean up in gcc
   * fixed a few places where old GCC behaviour was assumed
   * fixed default C++ standard version for clang >= 3.7
   * fixed GAUDI-1242

    See merge request !187

! 2016-10-12 - Marco Clemencic (commit b5e05a1)

 - improved handling of package version in CMake configuration

   use project version if a package version is not provided
    See GAUDI-1215.
    See merge request !175

! 2016-10-01 - Marco Clemencic (commit 99b1001)

 - enable missing override warnings (gcc >= 5.1)

   Fixes GAUDI-1241
    See merge request !192

! 2016-07-25 - Marco Clemencic (commit e3d4b07)

 - remove CMT configuration and related files

   * removed CMT configuration files
   * adapted scripts not to use CMT
    Fixes GAUDI-1216 Fixes GAUDI-979
    See merge request !186

================================ RootCnv v2r2 ================================

! 2016-03-10 - commit 4a18175

 - removed uses of templates implements[1-4], extends[1-4] and
   extend_interfaces[1-4]

   Since merge request !22 they are unnecessary.
    See merge request !133
================================ RootCnv v2r1 ================================

! 2015-11-02 - commit 57f356c

 - Merge branch 'hive' into 'master'

   Fixes GAUDI-978.

   See merge request !65


! 2015-10-26 - commit de80db5

 - More modernization changes

   Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
   modernize the code.

   Fixes GAUDI-1118.

   See merge request !49


! 2015-10-15 - commit 30d16f1

 - Fixed GAUDI-1109: RootCnv not compiling with ROOT 6.02.08

   Added inclusion of `algorithm`.

   See merge request !51

================================ RootCnv v2r0 ================================

! 2015-09-25 - commit 35dd00c

 - Merge branch 'dev-smartif-use' into 'master'

   Provide (and use) C++11 smart pointer 'look and feel' for SmartIF

   The aim of this branch is to confine, for everything that inherits from
   IInterface, the calls to addRef(), release() and queryInterface() to the
   SmartIF implementation. Exceptions are a few places where interfaces
   (currently) return bare pointers (instead of SmartIF...) and where one thus
   has to addRef() explicitly to avoid returning a dangling pointer. This can be
   avoided by changing the relevant interface to return a SmartIF instead of a
   bare pointer.

   In addition, make SmartIF 'look and feel' like a smart pointer.

   - use explict bool conversion instead of .isValid()
   - add SmartIF::as<IFace>(), to return a SmartIF<IFace> to an alternate
      interface -- which (together with move) encourages the use of auto
   - add ISvcLocator::as<IFace>(), to return a SmartIF<IFace> to the current
   ISvcLocator.
   - add ServiceManager::service<IFace>() which return SmartIF<IFace> which
   encourages
      the use of auto

   And add a few other C++11 modernizations (eg. prefer STL over raw loop)

   Fixes GAUDI-1094

   See merge request !24


! 2015-09-11 - commit c062cbe

 - C++11 modernization changes

   Some trivial - and some not so trivial! - changes which take advantage of
   C++11...

   See merge request !7

============================== RootCnv v1r23p3 ===============================
! 2015-05-21 - Marco Clemencic
 - Fixed compilation with CMT.

! 2015-03-14 - Marco Clemencic
 - GAUDI-1024: Replaced GaudiKernel/Tokenizer with the new AttribStringParser.

============================== RootCnv v1r23p2 ===============================
! 2014-10-10 - Marco Clemencic
 - Fixed warning about redeclared macro when building the latest Gaudi with
   ROOT 5.

! 2014-10-10 - Marco Clemencic
 - Removed PoolDbNTupleDescriptor from genreflex selection file.

============================== RootCnv v1r23p1 ===============================
! 2014-09-19 - Marco Clemencic
 - Merged changes between Gaudi RootCnv (commit 8583adc) and LHCb
   Online/RootCnv (r176626).

============================== RootCnv v1r22p2 ===============================
! 2014-06-19 - Marco Clemencic
 - Minor fix for unpredictable VERBOSE messages (message suppression not
   correctly implemented).

! 2014-06-05 - Marco Cattaneo
 - GAUDI-962: fix unprotected debug messages.

============================== RootCnv v1r22p1 ===============================
! 2014-03-18 - Ben Couturier
 - Fixed bug #104127: remove hwaf configuration.

================================ RootCnv v1r22 ================================
! 2013-12-16 - Marco Clemencic
 - Clean-up of some leftover from the autoloading workaround.

! 2013-12-11 - Sebastien Binet
 - Added hwaf configuration files.

! 2013-11-15 - Marco Clemencic
 - Made the data member of pool::Token transient (it was implicit in ROOT 5, but
   must be explicit in ROOT 6).
   See https://sft.its.cern.ch/jira/browse/ROOT-5700

! 2013-11-13 - Marco Clemencic
 - Removed work-around for the autoloading problem.
 - Made PoolClasses.h a public header (needed for relocatability of dictionaries).

! 2013-10-03 - Marco Clemencic
 - Work-around for ROOT 6 autoloading problem (genreflex rootmap is incomplete).

! 2013-10-03 - Marco Clemencic
 - Removed dynamic loading of libCintex.so in RootIOHandler (ROOT 6 only).

! 2013-08-27 - Marco Clemencic, Danilo Piparo
 - Removed unneeded dependency on libCintex.so.

! 2013-07-19 - Marco Clemencic
 - Clean up in the use of the new PluginService.

! 2013-07-18 - Marco Clemencic
 - Removed use of obsolete AlgFactory.h, SvcFactory.h, ToolFactory.h,
   AudFactory.h and CnvFactory.h.

! 2013-07-03 - Marco Clemencic
 - Replaced Reflex queries with TClass queries.
 - Replaced obsolete 'gROOT->GetClass' with 'TClass::GetClass'.
 - Fixed gcc 4.7 narrowing conversion warnings.

============================= RootCnv v1r21 =================================
============================ RootCnv v1r20p1 ================================
! 2013-07-08 - Marco Clemencic
 - Fixed dependency problem with event extractor.

! 2013-07-05 - Marco Clemencic
 - Updated CMake configuration.

!========================= RootCnv v1r20 2013-05-23 =========================
! 2013-04-25 - Markus Frank
 - Fix compiler warnings for gcc47

! 2012-11-22 - Markus Frank
 - Add event extractor

!========================= RootCnv v1r19 2012-11-16 =========================
! 2012-11-16 - Marco Clemencic
 - Added CMake configuration file.

! 2012-11-14 - Markus Frank
 - Add incident "CorruptedInputFile" if the data or reference branch
   of a given file cannot be read (aka ROOT returns -1 on read).

! 2012-11-07 - Marco Clemencic
 - Fixed warning: format '%X' expects argument of type 'unsigned int*',
                  but argument N has type 'int*' [-Wformat]

!========================= RootCnv v1r18 2012-09-28 =========================
! 2012-09-24 - Markus Frank
 - Change optimization options to be part of the RootCnvSvc and not part of
   the RootDataConnection + adapt all called functions to use these.

!========================= RootCnv v1r17 2012-09-16 ========================
! 2012-09-16 - Markus Frank
 - Add developments from Ivan Valencik for memory optimization.
   Options to modify the default behaviour:
   RootCnvSvc.BasketSize = 2*MBYTE
   RootCnvSvc.BufferSize = 2*kBYTE
   RootCnvSvc.SplitLevel = 0
   Ivan also developed a small component to measure process quantities
   such as the memory usage and cpu consumption.

!========================= RootCnv v1r13 2012-02-23 ========================
! 2012-02-23 - Markus Frank
 - Add option to RootCnvSvc to change compression factor in the following form:
   "<compression-algorithm>:<compression-level>"
   Currently supported algorithms are: LZMA and ZLIB with levels 1-9
   Example:
   RootCnvSvc.GlobalCompression     = "LZMA:6";  // First algorithm, then level
   The default is "LZMA:6", to disable any compression set:
   RootCnvSvc.GlobalCompression     = "0";

   Please note:
   Since setting individual options for all different conversion services
   (Event, FSR,...) is a major pain and in general only leads to confusion,
   this is a GLOBAL option. You set it once and it will be valid for any
   subsequent call to TFile::Open in ANY RootDataConnection objects.


!========================= RootCnv v1r12 2012-01-24 ========================
! 2012-01-20 - Markus Frank
 - Fix gcc46 compile warning in merge.C

!========================= RootCnv v1r11 2012-01-11 ========================
! 2011-11-11 - Markus Frank
 - Remove RootOutputStream component. It's not used.

!========================= RootCnv v1r10 2011-11-07 ========================
! 2011-10-31 - Markus Frank
 - Fix bug #88049: RootCnv has problems reading POOL XDST
   For unknown reasons some pool files have a funny file version number.
   Explicitly handle this case.

!========================= RootCnv v1r9 2011-10-11 =========================
! 2011-10-11 - Markus Frank
 - Fix bug for programming the branch cache properly

!========================= RootCnv v1r8 2011-09-15 =========================
! 2011-09-13 - Markus Frank
 - Fix bug when writing FSRs for files with no events

!========================= RootCnv v1r6 2011-06-14 =========================
! 2011-06-14 - Marco Cattaneo
 - Add release notes file......