    Package: GaudiRelease

    Package Coordinator: Marco Clemencic, Charles Leggett

    Purpose: Gaudi common set of packages

## Gaudi v21r11 (2010-09-22)

### Externals version: LCGCMT_58f

### General Changes

- Fixed compilation on ICC, VC9 and gcov
  (Marco Clemencic)
- Fixed compilation on ICC, VC9 and gcov
  (Marco Clemencic)
- Fixed bug #70956: Add method to find the reason for termination of the event loop
  Note: the error codes will change in the next releaes of Gaudi (Marco Clemencic)

### Packages Changes

- GaudiPolicy (v10r9):
  - Improvements in QMTest
    - fixes in the generated Eclipse launchers
    - always show the cause of failures in the HTML output
    - improved run_qmtest.py to be able to run the tests from a read-only location
    (Marco Clemencic)
  - Improved and documented the 'pyd_module' and 'pyd_boost_module' (new) patterns
    (Marco Clemencic)
  - Added the possibility of installing the platform-independent files in the platform-specific directory in the InstallArea.
    The new behavior is disabled by default at the moment, and it can be enabled with the CMT extra tags `no-shared-dir` (always disabled for ATLAS). (Marco Clemencic)
- GaudiKernel (v27r11):
  - Fixed bug #72170: Python Parsers and map of <string, unsigned int>
    (Vanya Belyaev)
  - Patch #4394: rewriting PathResolver using boost::filesystem
    (Charles Leggett)
  - Minor fix in SmartDataPtr.h to allow code analysis with Coverity.
    (Marco Clemencic)
  - Patch #4323: allow user defined heavy ion handling in PartPropSvc
    (Charles Leggett)
- PartPropSvc (v4r0):
  - Patch #4323: allow user defined heavy ion handling in PartPropSvc
    (Charles Leggett)
- GaudiMonitor (v2r6):
  - Fixed a bug spotted by Coverity (BAD_FREE).
    (Marco Clemencic)
- RootHistCnv (v10r5):
  - Fixed bug #71216: Gaudi crashes when output nTuple file cannot be written
    (Marco Clemencic)
- GaudiAlg (v13r4):
  - Patch #4360: Fix for bug #71237 (GaudiHistos treatment of histoProduce incomplete)
    (Vanya Belyaev)
  - Patch #4299, patch #4332: Add option for filed size in SequencerTimerTool
    (Olivier Callot, Patrick Koppenburg, Roel Aaij, Marco Clemencic)
- Gaudi (v21r11):
  - Added dependency on pytools to be able to use Gaudi.Parallel
    (Marco Clemencic)
- GaudiExamples (v21r11):
  - Added some tests
    (Marco Clemencic)
  - Added an example of a Python binary module in src/PythonModule.
    (Marco Clemencic)

## Gaudi v21r10p1 (2010-07-28)

### Externals version: LCGCMT_58e

## Gaudi v21r10 (2010-07-14)

### Externals version: LCGCMT_58d

### General Changes

- Improved support for Mac OSX 10.6
  (Marco Clemencic)
- Fixed issues with CMT for Atlas
  (Charles Leggett)

### Packages Changes

- GaudiPolicy (v10r8):
  - Fixes/improvements to PathStripper
    (Hubert Degaudenzi, Marco Clemencic)
  - Improvements to the QMTest HTML output
    (Marco Clemencic)
- GaudiKernel (v27r10):
  - Patch #4216: Don't check StatusCode when GaudiException is thrown
    (Charles Leggett)
  - Patch #4215: updates to THistSvc (includes patch #3447)
    (Charles Leggett)
  - Patch #4211: Fix bug in data length calculation for fixed length ntuple items arrays/matrices
    (Markus Frank)
  - Fixed bug #67543: InputCopyStream copies data not defined in its OptItemList
    (Marco Clemencic)
  - Fixed bug #66973: Removed the copy constructor of SharedObjectsContainer
    (Marco Clemencic)
  - Fixed bug #66454: Fixing Converter::service_i
    (Marco Clemencic)
  - Fix to bug #68555: getting const services
    (Charles Leggett)
  - Patch #3677: Iteration over map-like containers in python
    (Vanya Belyaev)
  - Fixed bug #64571: Python 2.6 warnings
    (Marco Clemencic)
- GaudiSvc (v18r10):
  - Patch #4215: updates to THistSvc (includes patch #3447)
    (Charles Leggett)
  - Fixed bug #67543: InputCopyStream copies data not defined in its OptItemList
    (Marco Clemencic)
  - Patch #3683: Ignore unchecked StatusCodes in xxxDict.so libraries
    (Charles Leggett)
- GaudiUtils (v3r9):
  - Adepted to work with Xerces-C 3.1.x (as well as 2.8.0).
    (Marco Clemencic)
  - Patch #4045: Utilities to set histogram axis and bin labels for GaudiUtils
    (Chris Jones)
- GaudiPoolDb (v5r9):
  - Patch #4210: Fix bug when reading event tag collections
    (Markus Frank)
- GaudiAlg (v13r3):
  - Patch #4044: Fix for bug #66397 and task #13911
    (Vanya Belyaev)
- GaudiPython (v10r10):
  - Patch #4207: Allow creation of new C++ algorithms from GaudiPython
    (Vanya Belyaev)
  - Patch #4044: Fix for bug #66397 and task #13911
    (Vanya Belyaev)
  - Patch #3677: Iteration over map-like containers in python
    (Vanya Belyaev)
  - Fixed bug #64571: Python 2.6 warnings
    (Marco Clemencic)
  - Re-introduce the usage of the exit handler to finalize the application when exiting from Python
    (Marco Clemencic)
- GaudiExamples (v21r10):
  - Patch #4212: Fix to POOLIOextColl tests
    (Markus Frank)
  - Patch #4212: Adapt POOLIO tests to check event tag collection bug in case address column is booked AFTER arrays/matrices
    (Markus Frank)
  - Patch #3683: Ignore unchecked StatusCodes in xxxDict.so libraries
    (Charles Leggett)
- GaudiRelease (v21r10):
  - Added the new python modules packages to the list of LHCb extra packages
    (Marco CLemencic)

## Gaudi v21r9 (2010-04-23)

### Externals version: LCGCMT_58c

### General Changes

- Fixes to compile with icc11 (Intel Compiler)
  (Marco Clemencic)
- Modified the implementation of the signal handler (bug #62374).
  Now it is implemented as a separate service (instead of being integrated in EventLoopMgr) and not enabled by default.
  To enable it, set to `true` the property `StopOnSignal` of `ApplicationMgr`.
  (Marco Clemencic)
- Modified the implementation of the event watchdog.
  Now implemented as a separate service and not enabled by default.
  To enable it, set to `true` the property `StalledEventMonitoring` of `ApplicationMgr`.
  (Marco Clemencic)
- Added support for a more flexible application return code (via a property of `ApplicationMgr`).
  Helper functions have been added to set and get the return code to be reported by the application at exit (see `GaudiKernel/AppReturnCode.h`).
  (Marco Clemencic)

### Packages Changes

- GaudiPolicy (v10r7):
  - Added the possibility to choose the test suite to run with QMTest via an environment variable (`GAUDI_QMTEST_DEFAULT_SUITE`).
    (Marco Clemencic)
  - Fixed a problem in install.py when using shared directories.
    (Marco Clemencic)
- GaudiKernel (v27r9):
  - Patch #3943: Good names for StatEntity methods
    (Vanya Belyaev)
  - Patch #3989: Tiny (but very important) fix for `Gaudi::RangeBase_`
    (Vanya Belyaev)
- GaudiSvc (v18r9):
  - Patch #4008: Fix for task #13714: FSRs should be copied as the OpenNewFile incident
    (Markus Frank)
- GaudiAlg (v13r2):
  - Patch #3982: Tiny fix for Gaudi::Utils::GetData
    (Vanya Belyaev)
- GaudiPython (v10r9):
  - Patch #3989: Tiny (but very important) fix for Gaudi::RangeBase_
    (Vanya Belyaev)
- GaudiExamples (v21r9):
  - Added an algorithm to test the signal handler (GaudiTesting::SignallingAlg).
    (Marco Clemencic)

## Gaudi v21r8 (2010-03-16)

### Externals version: LCGCMT_58b

### General Changes

- Some icc fixes
  (Marco Clemencic)
- Added a simple generic class (WatchdogThread) for implementation of software watchdogs (in the sense of a secondary thread that periodically checks that an event has occurred).
  A first implementation to monitor hangs during events has been added too.
  (Marco Clemencic)

### Packages Changes

- GaudiPolicy (v10r6):
  - Added a specialized QMTest ResultStream implementation to produce an HTML summary with collapsable lists and AJAX-style dynamic load of the content. The generation of the HTML output can be generated using the option --html-output to TestPackage or the environment variable GAUDI_QMTEST_HTML_OUTPUT. (see release notes for details)
    (Marco Clemencic)
  - Patch #3854: Reduce verbosity of zipping of python modules.
    (Gerhard Raven)
  - Added a cmt action to start the QMTest GUI (cmt QMTestGUI).
    (Marco Clemencic)
- GaudiKernel (v27r8):
  - Patch #3718: Unchecked StatusCode in GaudiKernel/Algorithm.cpp
    (Charles Leggett)
  - Patch #3912: Add a IInterface-based version of IUpdateable
    (Markus Frank)
  - Fixed bug #63502: GaudiKernel/Converter.cpp don't assume converter is a ConverterSvc when retrieving name
    (Charles Leggett)
  - Improvements in ConfigurableUser: Allow dependency between named ConfigurableUser instances (LHCb task #12691)
    (Marco Clemencic)
- GaudiSvc (v18r8):
  - Patch #3875: Small fix to GaudiSvc/EventLoopMgr
    (Markus Frank)
  - Patch #3876: Added StoreSnifferAlg
    (Markus Frank)
  - Fixed bug #63844: Various fixes to THistSvc
    (Charles Leggett)
  - Fixed bug #62374: Handling of signal SIGXCPU
    (Marco Clemencic)
- GaudiUtils (v3r7):
  - Patch #3840: Fix for bug #59009
    (Vanya Belyaev)
- GaudiAlg (v13r1):
  - Patch #3892: Proper implementation of GaudiCommon::exist
    (Vanya Belyaev)

## Gaudi v21r7 (2010-01-19)

### Externals version: LCGCMT_58

### General Changes

- Fixed compilation on icc 11. The warnings are still to be investigated.
  See full release notes of GaudiPolicy, GaudiKernel and GaudiGSL for details.
  (Marco Clemencic)
- Removed (unused) dependency on `PCRE` and `rx` externals.
  (Marco Clemencic)

### Packages Changes

- GaudiPolicy (v10r5):
  - Improvements to the testing infrastructure:
    - allow testing from a read-only location
    - correctly report a failure due to timeout limits
    (Marco Clemencic)
  - Avoid the manipulation of the compiler name for the LCG compiler if the tag `CERNDISTCC`.
    (Marco Clemencic)
- GaudiKernel (v27r7):
  - Fixed a bug in `genconf`: the third argument passed to the factory of tools was `IService*` instead of `IInterface*`
    (Marco Clemencic)
  - Patch #3478: Registration for Algorithm Context Service
    (Vanya Belyaev)
  - Fixed bug #61169: confusing behavior of PathResolver when dealing with relative paths
    (Paolo Calafiura)
  - Fixed bug #61144: configuration problem for 'empty' tool handles
    (Marco Clemencic)
  - Patch #3486: Class LockedChrono
    (Vanya Belyaev)
  - Fixed bug #59450: valgrind reports conditional or jump depends upon uninitialized variable in ProcessDescriptor
    (Marco Clemencic)
- GaudiSvc (v18r7):
  - Modified EventCollectionSvc to accept the syntax `SVC=` (alternative to `TYP=`) when specifying collection files for the EventSelector, as it was already the case for normal files.
    (Markus Frank)
  - Patch #3487: Minor improvement for CPU-performance of DataOnDemand & Incident Services
    (Vanya Belyaev)
  - Fixed bug #60162: THistSvc::initialize changes the current ROOT directory
    (Charles Leggett)
  - Fixed bug #59797: Untested StatusCodes in EventLoopMgr.cpp
    (Marco Clemencic)
- GaudiUtils (v3r6):
  - Fixed bug #59659: Untested StatusCodes in IODataManager.cpp
    (Marco Clemencic)
- GaudiPoolDb (v5r6):
  - Fixed an error in GaudiPoolDbRoot.opts
    (Jaap Panman)
- GaudiAlg (v13r0):
  - Fixed bug #61116: GaudiCommon::Assert and GaudiCommon::Exception should return void
    (Marco Clemencic)
  - Patch #3478: Registration for Algorithm Context Service
    (Vanya Belyaev)
- GaudiPython (v10r7):
  - Patch #3652: Bug fixes for GaudiPython HistoUtils.py and TupleUtils.py
    (Juan Palacios)
  - Patch #3588: Fix a typo (&logic) in GaudiPython.GaudiAlgs module for "Histo()" method
    (Vanya Belyaev)
  - Fixed bug #60502: typo in GaudiPython/Bindings.py
    (Charles Leggett)
- GaudiRelease (v21r7):
  - Added "fastjet" to the list of LHCb extra packages
    (Marco CLemencic)
  - Minor improvements to the doxygen configuration files (documentation is now built in the InstallArea under the directory doc).
    (Marco CLemencic)

## Gaudi v21r6 (2009-11-10)

### Externals version: LCGCMT_57a

### Packages Changes

- GaudiPolicy (v10r4):
  - Minor fixes/improvements (fixes in zipping of python files and SL5 tags).
    (Marco Clemencic)
  - Fixed bug #57319: Suppression of GaudiPolicy/scripts/StripPath.sh
    (Hubert Degaudenzi)
- GaudiKernel (v27r6):
  - Fixed a problem with ConfigurableUser.propagateProperty when the property is a list (or dictionary).
    (Marco Clemencic)
  - Patch #3357: Comparison of floating point numbers
    (Vanya Belyaev)
  - Modified the dictionary for DataObject to make the version persistent
    (Marco Clemencic)
- GaudiSvc (v18r6):
  - Patch #3444: Patch to fix logic error in RecordStream
    (Rob Lambert)
  - Fixed bug #57416: improve IncidentSvc printout when an exception is thrown by handlers
    (Marco Clemencic)
- GaudiPython (v10r6):
  - Removed some dictionaries of basic types that conflict with the CINT ones
    (Marco Clemencic)

## Gaudi v21r5 (2009-10-19)

### Externals version: LCGCMT_57

### General changes

- Introduced several new incidents to enable monitoring monitoring of open files (with successes and failures).
  Patch #3310, Patch #3275, patch #3249, patch #3240, patch #3236, patch #3222.
  (Rob Lambert)
- Normalization of white-spaces in Python files (using reindent.py).
  (Marco Clemencic)
- Patch #3297: Support for GaudiPython Parallel in gaudirun.py. See release notes of GaudiPython and Gaudi for details.
  (Eoin Smith)

### Packages Changes

- GaudiPolicy (v10r3):
  - Removed the compile option "-ff90" for the target-gcc4 tag.
    (Hubert Degaudenzi)
  - Fixed bug #55550: saving memory with alignment of libraries.
    (Charles Leggett)
  - Patch #3295: do not copy back-up files to InstallArea.
    (Gerhard Raven)
  - Instrumented GaudiTest.py to produce an Eclipse CDT debug launcher configuration for each test.
    (Marco Clemencic)
- GaudiKernel (v27r5):
  - Patch #2978: GaudiKernel/StringKey.h
    (Vanya Belyaev)
  - Patch #3223: Add some more "Extended" property types to Gaudi.
    Note: using Gaudi::LorentzVector as a property doesn't work on Windows.
    (Vanya Belyaev)
  - Patch #3239: Moved Parsers.icpp to the public headers directory (GaudiKernel)
    (Marco Clemencic)
  - Fixed bug #55292: Algorithms never deleted
    (Marco Clemencic)
  - Modified `ConfigurableUser` to allow declaration of `__used_configurables__` with strings.
    (Marco Clemencic)
  - First attempt to reduce the risk of exceptions thrown within the handling of an exception.
    (Marco Clemencic)
- GaudiSvc (v18r5):
  - Patch #3330: SequentialOutputStream, create several sequentially numbered output files
    (Roel Aaij)
  - Patch #3277: Remove caching of IsFixedBin property in Axis.h
    (Vanya Belyaev)
  - Fixed bug #55292: Algorithms never deleted
    (Marco Clemencic)
- GaudiUtils (v3r5):
  - Patch #3311: Add ASCII dump for 1D-profile histograms
    (Vanya Belyaev)
  - Patch #3261: Utility for ASCII dump of 1D-histograms
    (Vanya Belyaev)
- GaudiAlg (v12r4):
  - Patch #3157: Remove redundant duplicated maps from GaudiHistos/GaudiTuples
    (Vanya Belyaev)
  - Fixed bug #55292: Algorithms never deleted
    (Marco Clemencic)
- GaudiPython (v10r5):
  - Patch #3328: added iDataSvc.findObject
    (Vanya Belyaev)
  - Fixed bug #56358: Algorithms crashing in finalize are finalized a second time
    (Marco Clemencic)
- GaudiExamples (v21r5):
  - Clean-up and update of test reference files.
    (Marco Clemencic)

## Gaudi v21r4 (2009-07-31)

### Externals version: LCGCMT_56c

### General changes

- Added support zipped python directories in InstallArea.

  The directory `InstallArea/python` is automatically compressed (at build time) in `InstallArea/python.zip`. The compression allows only `.py` files in the archive, so this may break some packages. The solution is to replace the non-python files with python modules.

  The creation of the archives cannot be disabled, but the plain directories are always accessible and can be used instead of the archives using the CMT tag `no-pyzip`, for example to do some debugging.

  More details in the notes of GaudiPolicy.

  (Marco Clemencic)
- Disabled the creation of static libraries (`-no_static`). Available since cmt v1r20p20090520.
  (Marco Clemencic, Hubert Degaudenzi)
- Modified the behavior of the python module `Configurables` to match standard python semantics (see the comments in the package).
  (Marco Clemencic)

### Packages Changes

- GaudiKernel (v27r4):
  - Patch #2979: Modified version of file GaudiKernel/Hash.h
    (Vanya Belyaev)
- GaudiAlg (v12r3):
  - Patch #3182, patch #3134: Extensions to implement a CounterSummarySvc in LHCb.
    (Rob Lambert)
- GaudiPython (v10r4):
  - Patch #3152: Adapting GaudiPython to new null pointer semantic of ROOT 5.22.00c. At the same time tried to load the necessary ostream and stringstream from the beginning avoiding some spurious problems (fixes bug #28426).
    (Pere Mato)
  - Fixed bug #53514: The local symbol "HID" is not defined.
    (Vanya Belyaev)
  - Patch #3091: Class for easy saving of GaudiPython histograms.
    (Juan Palacios)
  - Patch #3134:
    - Some polishing of GaudiPython.GaudiAlgs module and related modules
    - More handles for interactive algorithm inspection (GaudiPython)
    Detailed description in `GaudiAlg/doc/patch_3134.html`
    (Vanya Belyaev)
- GaudiPolicy (v10r2):
  - Use the special name for LCG-distributed compiler always. (removed the exception on ATLAS)
    (Marco Clemencic)
  - Added the C++ flag "-Wno-empty-body" to hide the warnings from XercesC.
    (Marco Clemencic)
  - Added the tag "no-hide-warnings" to re-enable the warnings disabled because coming from external libraries.
    (Marco Clemencic)
  - The scripts merge_files.py, ZipPythonDir.py and genconfuser.py can now be synchronized with a "global lock file" defined with the environment variable GAUDI_BUILD_LOCK (needed when using tbroadcast or equivalent).
    (Marco Clemencic)
  - Modified the QMTest pattern to force the creation of the QMTest directory (needed to call qmtest) during the build, so that it becomes part of the distribution. It also required a restructuring of run_qmtest.py.
    (Marco Clemencic)
  - Support for zipped python directories.

    The `InstallArea/python` directory is replaced, in PYTHONPATH, by `InstallArea/python.zip`. The old directory is still present and used to generate the .zip file or for debugging (can be used at run-time specifying the CMT tag "no-pyzip").

    The use of .zip files increases significantly the speed of the configuration of an application (when using configurables).

    Since .zip files can only contain python files, it is not possible to store anything else under `InstallArea/python` path.

    The current implementation re-creates the .zip file during the build of each package, so re-compressing files already in the original .zip, which can become a problem with very large projects. A merge feature would be welcome, but it has to allow also the removal of the files that have been removed from the original python directory (a la install.py). Note that the current implementation of the module "zipfile" does not allow replacement or removal.

    This, implicitly, addresses bug #39868 because the .pyc files are automatically generated during the zipping step to be included in the .zip file.

    See PEP-0273 for more information.
    (Marco Clemencic)
- Gaudi (v21r4):

  - Modified the the code behind `from Configurables import MyConf` to match the standard Python semantics: raise an exception if the configurable is not found.

    The meta-module "Configurables" should be deprecated in favor of "Gaudi.Configurables", that can also be used as in:

        import Gaudi.Configurables as cfgs
        cfgs.MyConf

    The exception for missing configurables can be disabled with

        import Gaudi.Configurables
        Gaudi.Configurables.ignoreMissingConfigurables = True

    (done by default in genconfuser.py for backward compatibility). (Marco Clemencic)

## Gaudi v21r3 (2009-07-10)

### Externals version: LCGCMT_56b

### Packages Changes

- GaudiKernel (v27r3):
  - Removed the need for extend_interfaces1.
    (Marco Clemencic)
- GaudiPolicy (v10r1):
  - Re-enabled distcc when using the LCG-distributed compiler
    (Marco Clemencic)
  - Fixed bug #52831: Disable StripPath in GaudiPolicy
    (Marco Clemencic)
- GaudiSvc (v18r3):
  - Patch #3083: update to ExceptionSvc to permit greater flexibility (see doc/ExceptionSvc.txt for details).
    (Charles Leggett)
- GaudiExamples (v21r3):
  - Patch #3095: Add support for variable bin width histograms to GaudiAlg
    (Christopher Rob Jones)
- GaudiAlg (v12r2):
  - Patch #3095: Add support for variable bin width histograms to GaudiAlg
    (Christopher Rob Jones)
  - Fixed warning: "dereferencing type-punned pointer will break strict-aliasing rules" in GetData.h
    (Marco Clemencic)
  - Fixed bug #46519: Implement the method GaudiCommon::Info()
    (Marco Clemencic)

## Gaudi v21r2 (2009-06-26)

### Externals version: LCGCMT_56b

### General changes

- Updated to use the new LCG tag convention. Now it requires at least LCGCMT 56b to work.
  (Hubert Degaudenzi)
- Disabled the macros for the visibility of symbols on Windows.
  (Marco Clemencic)
- Removed _dll.cpp and _load.cpp files (not needed anymore).
  (Marco Clemencic)
- Disabled some warnings.
  (Marco Clemencic)

### Packages Changes

- GaudiKernel (v27r2):
  - Patch #3019: added td::map<std::string,std::pair<double,double> > as property
    (Vanya Belyaev)
  - Patch from bug #52359: Allow setting of logging stream in ProcessJobOptions
    (Gerhard Raven)
  - Patch #2980: Moved Range.h and NamedRange.h from GaudiUtils to GaudiKernel.
    (Marco Clemencic)
  - Fixed bug #45517: Units not taken into account in .opts files
    (Marco Clemencic)
  - Patch #2975: ServiceHandleArray
    (Yushu Yao)
- GaudiPython (v10r2):
  - Fixed bug #51026: Typo in GaudiPython/HistoUtils
    (Marco Clemencic)
- GaudiPolicy (v10r0):
  - Removed the link option "-Wl,-s" for Linux optimized libraries to make the profiling easier. It can be re-enabled with the tag "strip-symbols".
    (Marco Clemencic)
  - Added the make option "QUICK=2" to skip completely the dependencies (works only with CMT v1r20p20070208).
    (Marco Clemencic)
  - Avois installation of .lib files on windows for component libraries and dictionaries.
    (Marco Clemencic)
- RootHistCnv (v10r1):
  - Fixed bug #52361: Silence WARNINGS from RootHistSvc
    (Marco Clemencic)
- Gaudi (v21r2):
  - Added support for tcmalloc (via LD_PRELOAD) in gaudirun.py (option -T/--tcmalloc).
    (Marco Clemencic)
  - Fixed bug #45517: Units not taken into account in .opts files
    (Marco Clemencic)
- GaudiAlg (v12r1):
  - Fixed bug #46919: GaudiSequencer does not always register subAlgorithms
    (Gerhard Raven)

## Gaudi v21r1 (2009-05-15)

### Externals version: LCGCMT_56a

### Packages Changes

Note: HbookCnv have been removed from the standard release.

- GaudiKernel (v27r1):
  - Fixed bug #50389: AppMgr.algorithm/tool/algorithms does not work for GaudiPython::PyAlg<TYPE>
    (Marco Clemencic)
  - Fixed an extra "release" of EventDataSvc in EventSelectorDataStream. At each new file, the reference count was artificially decreased by 1, causing a segmentation fault during finalization.
    (Marco Clemencic)
  - Patch #2998: Extension of IMonitorSvc for StatEntity
    (Eric Van Herwijnen)
  - Simplified the implementation of SmartIF, removing the un-necesary base class. Note: NOT backward compatible.
    (Marco Clemencic)
  - Added specific macros to disable specific backward compatibility hacks. See full release notes for the details.
    (Marco Clemencic)
- GaudiPython (v10r1):
  - Patch #2977: catch exception in GaudiPython Bindings.py
    (Charles Leggett)
- GaudiPolicy (v9r1):
  - Added specific macros to disable specific backward compatibility hacks.
    (Marco Clemencic)
  - Fixed bug #50070: error in GaudiPolicy for gcc43 and 32 bits.
    (Marco Clemencic)
- GaudiExamples (v21r1):
  - Fixed bug #50389: AppMgr.algorithm/tool/algorithms does not work for GaudiPython::PyAlg<TYPE>. Test added.
    (Marco Clemencic)

## Gaudi v21r0 (2009-04-08)

### Externals version: LCGCMT_56

### Packages Changes

- GaudiKernel (v27r0):
  - New simplified way of declaring interfaces that allows automatic generation of code. See the release notes of the package and HowToMigrateToGaudi21 on the Gaudi Twiki for details.
    (Marco Clemencic)
  - Introduced the possibility to compile the code with explicit symbol visibility with gcc 4 (includes patch #2641). See the release notes of the package for details.
    (Marco Clemencic, Sebastien Binet)
  - Initial introduction of the concept of component managers, with a review of IServiceLocator, IServiceManager and IAlgorithmManager (task #9061).
    (Marco Clemencic)
  - Replaced all the occurrences of endreq with endmsg. Removed endreq and added a macro endreq for backward compatibility (enabled with -DGAUDI_V20_COMPAT).
    (Marco Clemencic)
  - Added a macro to disable the longlong typedef: NO_LONGLONG_TYPEDEF.
    (Marco Clemencic)
  - Fixed a problem with MinimalEventLoopMgr::executeEvent. An AbortEvent incident fired by the last top alg in the list caused the skipping of the following event.
    (Marco Clemencic)
  - Patches: patch #2867, patch #2871 (see detailed release notes)
  - Bug fixes: bug #48889, bug #47258, bug #48401 (see detailed release notes)
- GaudiPython (v10r0):
  - Patch #2958: New runSelectedEvents() method in GaudiPython.AppMgr.
    (Pere Mato)
  - Patch #2931: Added few classes/function to GaudiPython dictionaries for interactive histogram manipulation.
    (Marco Clemencic, Vanya Belyaev)
  - Initial introduction of the concept of component managers, with a review of IServiceLocator, IServiceManager and IAlgorithmManager (task #9061).
    (Marco Clemencic)
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiGSL (v7r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiPolicy (v9r0):
  - Added cmt tags to disable hacks for backward compatibility:
    GAUDI_V21, GAUDI_V22
    (Marco Clemencic)
  - Updates and improvements in GaudiTest.py.
    (Marco Clemencic)
- GaudiAud (v9r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiPoolDb (v5r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
  - Patch #2792: Update to file records service
    (Markus Frank)
- RootHistCnv (v10r0):
  - Fixed uninitialized variable (RootHistCnv::PersSvc::m_hfile).
    (Marco Clemencic)
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- PartPropSvc (v3r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- Gaudi (v21r0):
  - Added '--printsequence' to gaudirun.py to print the sequence of algorithms after the configuration.
    (Wouter Hulsbergen)
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- HbookCnv (v15r0):
  (The package is compiled only for SLC4-ia32 and Win32-VC7.)
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiUtils (v3r0):
  - Patch #2958: New runSelectedEvents() method in GaudiPython.AppMgr.
    (Pere Mato)
  - Patch #2930: improve the manipulations with AIDA histograms.
    (Vanya Belyaev)
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiSvc (v18r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
  - Patch #2955, patch #2792: Update and fixup to file records service
    (Markus Frank)
  - Fixed bug #48942: missing start() and stop() methods for ToolSvc.
    (Charles Leggett)
  - Patch #2754: Set compression level on ROOT files in THistSvc.
    (Charles Leggett)
  - Patch #2721: Differentiate between exceptions and return codes in ExceptionSvc.
    (Charles Leggett)
- GaudiExamples (v21r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
  - Updated reference files for tests (patch #2955, bug #48942, patch #2930, patch #2792)
    (Marco Clemencic)
- GaudiMonitor (v2r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)
- GaudiAlg (v12r0):
  - Adapted to the changes in GaudiKernel.
    (Marco Clemencic)

Older versions