Releases: AIDASoft/podio
v01-01
v01-01
-
2024-09-20 Leonhard Reichenbach (PR#682)
- DataSource: implement missing GetLabel method
-
2024-09-19 tmadlener (PR#678)
- Add a
podio.version
module exposingpodio::version::Version
also in python. - Remove the
version_as_str
method again, since that is handled byVersion
now.
- Add a
-
2024-09-18 jmcarcell (PR#680)
- Revert part of #676 because there is no implicit conversion to std::string when trying to put a parameter that can be converted to std::string, therefore it will fail with the static_assert when compiling
-
2024-09-18 Mateusz Jakub Fila (PR#679)
- Fixed missing libpodioDataSourceDict printout on import podio when built without data source
-
2024-09-18 jmcarcell (PR#676)
- Remove EnableIf for GenericParameters and add
static_assert
in its place to make errors easier to read and debug.
- Remove EnableIf for GenericParameters and add
-
2024-09-17 tmadlener (PR#677)
- Make sure that podio is built with all capabilities for the CI tests that use EDM4hep
-
2024-09-16 jmcarcell (PR#675)
- Fix a few wrong @params in the documentation of some headers
-
2024-09-12 Mateusz Jakub Fila (PR#674)
- Added
podio.data_source.CreateDataFrame
for creating RDataFrames with DataSource in python.
- Added
-
2024-09-10 Mateusz Jakub Fila (PR#671)
- Fixed typos
-
2024-09-10 tmadlener (PR#670)
- Strip strings to avoid having empty includes from ExtraCode that would otherwise generate a warning during code generation.
- Remove a debug printout from code generation
-
2024-09-10 Mateusz Jakub Fila (PR#669)
- Improved documentation for the pythonizations. Test mutability of objects returned by collection subscript in python (mutable without the subscript pythonization/immutable with the pythonization)
-
2024-09-10 jmcarcell (PR#668)
- Change C-style casts to static_cast and remove unnecessary semicolons
-
2024-09-10 tmadlener (PR#651)
- Make it possible to pass the datamodel version (which does not have to be the schema version!) to the class generator to inject it into the podio internals. This will automatically be stored in all output files, such that this information can also be obtained from the files.
-
2024-09-09 Mateusz Jakub Fila (PR#667)
- Fix pythonizations trying to import local modules as pythonizations submodules
-
2024-09-06 jmcarcell (PR#666)
- Add two checks not to crash when a file doesn't exist or can't be opened and when an empty list is passed to makeReader.
-
2024-09-06 tmadlener (PR#664)
- Remove pre-processor checks that became obsolete with #662
-
2024-09-06 Mateusz Jakub Fila (PR#663)
- Added pythonization for "freezing" class disallowing setting non-existent attributes
-
2024-09-06 tmadlener (PR#662)
- Remove the cmake checks to figure out against which filesystem library to link, since all major compilers have had it properly integrated into their STLs for quite some time now. Also remove the fallback to Boost.
-
2024-09-05 tmadlener (PR#661)
- Make the README point to the documentation instead of the markdown files
-
2024-09-05 ANUSHKA SAXENA (PR#660)
- Added missing dependency
graphviz
forpodio-vis
functionality in the documentation build process.
- Added missing dependency
-
2024-09-05 tmadlener (PR#659)
- Add convenience bindings and formatting utility functionality to retrieve the podio build version from a file via python.
-
2024-08-28 tmadlener (PR#658)
- Build EDM4hep with c++20 now that c++17 support has been removed from EDM4hep.
-
2024-08-28 Juraj Smiesko (PR#593)
- Add a
podio::DataSource
as anRDataSource
for working with podio (generated EDM) files and collections. ThisRDataSource
exposes the podio collections directly as columns forRDataFrames
. We consider this fairly stable, but still in early stages, there might still be some (breaking) changes to this
- Add a
-
2024-08-23 tmadlener (PR#656)
- Use a virtualenv for the documentation generation to make it more robust
-
2024-08-22 jmcarcell (PR#652)
- Remove unnecessary header includes
-
2024-08-21 tmadlener (PR#654)
- Use a virtualenv to intall pre-commit in CI workflow to avoid issues with underlying environment
-
2024-08-21 Mateusz Jakub Fila (PR#653)
- fix typos in documentation
-
2024-07-31 tmadlener (PR#650)
- Make sure that the
env.sh
script sets up the correctPYTHONPATH
- Make sure that the
-
2024-07-31 tmadlener (PR#649)
- Introduce a thin wrapper script around
clang-tidy
for usage inpre-commit
to make sure that the necessary include directory for SIO is available. This allows us to run clang-tidy over all files instead of having to exclude a few where it failed previously.
- Introduce a thin wrapper script around
-
2024-07-25 tmadlener (PR#648)
- Add docstrings to the
Reader
andWriter
interface classes - Make sure that
makeReader
throws an exception if multiple SIO files are passed (see #647)
- Add docstrings to the
-
2024-07-25 tmadlener (PR#640)
- Make JSON dumping of subset collections only store the
ObjectID
s to the elements they are pointing to instead of duplicating the information. - Add JSON conversion support to
podio::ObjectID
- Use this to simplify JSON conversion code for relations in objects
- Make JSON dumping of subset collections only store the
-
2024-07-23 jmcarcell (PR#645)
- Fix duplicated includes in generated datamodels when
ExtraCode
includes are done via<>
.
- Fix duplicated includes in generated datamodels when
-
2024-07-22 tmadlener (PR#644)
- Switch to EL9 and c++20 for running pre-commit
-
2024-07-16 tmadlener (PR#643)
- Add test files for read compatibility with v01-00
- Fix v00-99 root test file that was actually one with v00-17-04
-
2024-07-15 jmcarcell (PR#641)
- Remove or change a few headers for objects and collections
-
2024-07-12 tmadlener (PR#639)
- Improve the readability of dumped
ObjectID
s fromXXXXXXXi
toXXXXXXXX|i
(i.e. adding a separator between the hex collection ID and the index)
- Improve the readability of dumped
-
2024-07-10 jmcarcell (PR#638)
- Make ROOT load libraries without the .so extension
-
2024-07-08 tmadlener (PR#635)
- Fix minor issue in the CMake config to make error message for users more useful.
v01-00-01
v01-00-01
-
2024-06-24 tmadlener (PR#634)
- Bump CI runners to run on
ubuntu-latest
- Bump CI runners to run on
-
2024-06-24 jmcarcell (PR#633)
- Minor cleanups for generated EDMs
- Pass the argument by const reference in the relation setter
- Remove a few includes that are not needed
- Don't check for
nullptr
before deleting a (possiblynullptr
) pointer - Remove
if - else
check and use implicit conversion of pointer to bool
- Minor cleanups for generated EDMs
-
2024-06-23 jmcarcell (PR#632)
- Fix one to one relations for cloned objects by copying the one to one relations too.
- Add a test that checks values for cloned objects from a non mutable object.
v01-00
v01-00
-
2024-06-20 tmadlener (PR#629)
- Document how files written by podio look like
-
2024-06-20 tmadlener (PR#625)
- Make the TTree based backend also write the GenericParameters as pairs of vectors (keys and values) to make the format the same for the RNTuple and the TTree based backends.
-
2024-06-14 Benedikt Hegner (PR#622)
- Detect more impossible schema evolutions
- Improving printout of schema evolution checker
-
2024-06-12 tmadlener (PR#627)
- Fix a bug in the schema evolution generation script that crashes in case a datatype member that is a component is changed.
- Adapt new datalayout to include such a change
- Add new tests to run schema evolution script standalone
-
2024-06-12 jmcarcell (PR#606)
- Add a header file including all the collections in the datamodel. This header will be generated and installed into
<datamodel>/<datamodel>.h
.
- Add a header file including all the collections in the datamodel. This header will be generated and installed into
-
2024-06-11 tmadlener (PR#623)
- Move the implementation of
ROOTFrameData
member functions into a separate cc file.
- Move the implementation of
-
2024-06-11 tmadlener (PR#618)
- Fix minor issues with the
Reader
andWriter
interface classes- Make sure that only the public API is public
- Fix some const correctness issues by marking
const
methods as such - Remove unnecessary and (partially) unused APIs from the
Writer
interface
- Remove the dictionary generation for
podioIO
as we don't need the dictionaries
- Fix minor issues with the
-
2024-06-11 tmadlener (PR#614)
- Refactor the
RNTupleWriter
internals a bit and reduce some code duplication between theRNTupleWriter
and theROOTWriter
- Add
getKeys
andgetValues
methods toGenericParameters
- Remove the
CollectionBranches.h
header and move all root related helpers intoutilities/RootHelpers.h
- Refactor the
-
2024-06-10 tmadlener (PR#621)
- Make
GenericParameters::print
const-correct to allow proper usage
- Make
-
2024-06-10 tmadlener (PR#619)
- Add I/O tests for a type with an interface relation, in order to make sure things work as expected.
-
2024-06-10 Mateusz Jakub Fila (PR#598)
- Added documentation on collection compatibility with container named requirement
- Added container-like methods
cbegin
,cend
,max_size
and aliasessize_type
,difference_type
to collection
-
2024-06-06 tmadlener (PR#616)
- Switch to Alma9 for the Key4hep based workflow in CI, since CentOS7 is no longer built regularly
-
2024-06-06 tmadlener (PR#580)
- Make the
GenericParameters
returnstd::optional
on non-existant keys instead of empty defaults. This allows to differentiate between empty (but set) and unset parameters, as the default value could actually be a valid parameter value for some types (e.g. integers or floats).- Rename the
setValue
andgetValue
functions to justset
andget
. This is also a breaking change, but as far as we are aware theGenericParameters
are only used internally in podio.
- Rename the
- Make the
Frame::getParameter
also return thisstd::optional
. This is a breaking change that might require adaptation of existing code
- Make the
-
2024-06-05 tmadlener (PR#608)
- Add python bindings for the
Frame::getName
functionality introduced in #586
- Add python bindings for the
-
2024-06-04 jmcarcell (PR#612)
- Fix Python->Python3 when
PODIO_RELAX_PYVER
is ON
- Fix Python->Python3 when
-
2024-06-04 jmcarcell (PR#609)
- Add a parameter
cloneRelations
for theclone
method of the user facing handle classes to be able to clone without the relation information.
- Add a parameter
-
2024-06-04 Benedikt Hegner (PR#607)
- Add documentation for CMake macros
-
2024-06-04 tmadlener (PR#602)
- Remove the dynamic determination of the supported parameter types for the python bindings to work around root-project/root#14232 and key4hep/EDM4hep#246.
-
2024-06-04 Dmitry Kalinkin (PR#599)
- The Python library is installed to
lib/python3.XX/site-packages
instead ofpython
by default. This is a more standard prefix for python packages- Use the
podio_PYTHON_INSTALLDIR
cmake variable to change this.
- Use the
- Move python setup and compatibility checks with ROOT python version into a dedicated cmake macro (
podio_python_setup
)
- The Python library is installed to
-
2024-06-04 tmadlener (PR#595)
- Deprecate the
getValue
method in favor of theas
method for generated interface types.
- Deprecate the
-
2024-05-28 jmcarcell (PR#610)
- Drop unused comparison templates
-
2024-05-24 Mateusz Jakub Fila (PR#605)
- Added .clang-format config files to avoid formatting jinja2 templates and tests' extra_code
-
2024-05-22 Mateusz Jakub Fila (PR#601)
- Added ExtraCode declarationFile and implementationFile directives
-
2024-05-22 jmcarcell (PR#522)
- Add a reader and writer interface and tests using those
- Add a new library
podioIO
with the interface readers and writers
-
2024-05-14 Mateusz Jakub Fila (PR#570)
- Added mechanism to load cppyy pythonizations
- Added pythonization for bound-check subscript operation in collections
-
2024-05-13 jmcarcell (PR#600)
- Add include to fix building with GCC 14
-
2024-05-07 tmadlener (PR#597)
- Update CI workflows to run on
LCG_105
usinggcc13
andclang16
as well as bumping the OS to EL9. Build RNTuple by default - Update the Ubuntu based workflows to run on ubuntu 22.04
- Update CI workflows to run on
-
2024-05-02 Andre Sailer (PR#591)
- CI: alma9-gcc13 dev stack
-
2024-05-02 tmadlener (PR#568)
- Switch to gcc13 and clang16 for sanitizer workflows. Also switch to EL9 as OS to run on.
-
2024-04-22 jmcarcell (PR#583)
- Fix OneToManyRelations and VectorMembers in cloned objects. Currently, pushing back these fields to a cloned object does not give the expected result, because the objects that we get after reading are not the same as we had before writing.
- Add some code testing this behavior: pushing back to cloned objects that have been read from a file and also after cloning the cloned object.
-
2024-04-19 jmcarcell (PR#589)
- Fix leak in the buffer vectorMembers when reading SIO frames
-
2024-04-19 jmcarcell (PR#588)
- Set the right path for
PODIO_SIOBLOCK_PATH
, fixing unit tests that read and write SIO files (there aren't any at the moment) - Add an error message when
PODIO_SIOBLOCK_PATH
is set but none of the SioBlock libraries are found.
- Set the right path for
-
2024-04-19 tmadlener (PR#586)
- Add a
Frame::getName
method to retrieve the name of a collection via it's collectionID (if the collection is known to the Frame).
- Add a
-
2024-04-19 jmcarcell (PR#585)
- Pass arguments by const reference to avoid making copies in a few places where passing by value was used
-
2024-04-16 jmcarcell (PR#587)
- Change "Collcetion" to "Collection". It's an aesthetic change
-
2024-04-15 jmcarcell (PR#584)
- Change a few permissions to 644 for a few text files that have executable permissions
- Add a couple of files to the .gitignore
-
2024-04-11 jmcarcell (PR#578)
- Check if the data passed to the frame model is not a nullptr before doing anything with it.
-
2024-04-10 jmcarcell (PR#577)
- Improve error message for push_back when using an immutable type
-
2024-04-10 tmadlener (PR#573)
- Remove outdated information from top level README
-
2024-04-09 tmadlener (PR#574)
- Make all docstrings of c++ classes use the
///
style (instead of the previous mix of///
and /**/`. - Extend and improve existing docstrings (e.g. add
@params
and@returns
tags, add information or reword).
- Make all docstrings of c++ classes use the
-
2024-04-03 tmadlener (PR#575)
- Make sure that the
as_type
argument is respected inFrame.put_parameter
also for lists of doubles / floats. - Fix test to actually check for this.
- Make sure that the
-
2024-04-02 tmadlener (PR#547)
- Fix the RNTupleWriter after ROOT has slightly changed the API for the RNTupleModel. Fixes #545
-
2024-03-20 tmadlener (PR#572)
- Add the necessary infrastructure to run documentation generation on CERNs gitlab infrastructure via a mirror of this repository
- Deployed to https://key4hep.web.cern.ch/podio
- Update Doxyfile to have no warnings with newer doxygen versions
- Add the necessary infrastructure to run documentation generation on CERNs gitlab infrastructure via a mirror of this repository
-
2024-03-19 Mateusz Jakub Fila ([PR#571](https://github.com/AIDASoft/podio/pull/...
v00-99
v00-99 (v01-00 pre-release)
This is a pre-release for the first stable release of podio. We consider the file format as well as stable and also consider the base functionality to be in place. All additional functionality should be implementable on top of the existing file format as well as existing features. We will make a few smaller fixes and remove still existing deprecated functionality before we release v01-00 in the next few weeks.
Changes wrt v00-17-04
-
2024-02-06 tmadlener (PR#554)
- Bring back
vector<Data>
andvector<Component>
into the dictionaries to allow for better interoperability with RNTuple.- See #464 for some related discussion.
- Bring back
-
2024-02-06 tmadlener (PR#552)
- Introduce an
operator<
to the interface types to make it possible to use them in STL containers that require that (e.g.std::map
andstd::set
).
- Introduce an
-
2024-02-06 tmadlener (PR#549)
- Rename
{ROOT,SIO}Frame{Reader,Writer}
to{ROOT,SIO}{Reader,Writer}
since these names are now no longer taken by the deprecatedEventStore
based ones and Frame based I/O is the default now.- Keep the old names around as deprecated aliases to not break everything immediately. But plan to remove the aliases for v1.0.
- Rename
-
2024-02-02 Mateusz Jakub Fila (PR#550)
- Fixed typos in tests and interface template
-
2024-01-30 tmadlener (PR#548)
- Remove an unnecessary usage of the
TClass
machinery inside theRNTupleReader
as all the necessary information is also available from metadata that we carry around in any case.
- Remove an unnecessary usage of the
-
2024-01-30 Graeme A Stewart (PR#544)
Add CMake targets for running black and flake8 on Python source files -
2024-01-30 tmadlener (PR#528)
- Use
black
to format all python source files - Add a pre-commit hook for running black in CI
- Use
-
2024-01-25 jmcarcell (PR#541)
- Add tool to transform between TTrees and RNTuples
-
2024-01-24 jmcarcell (PR#543)
- Change ROOTNTuple{Reader,Writer} to RNTuple{Reader,Writer}
-
2024-01-22 tmadlener (PR#516)
- Add a new category of types that can be generated by podio:
interfaces
. These can be used to provide a type that can be initialized from several other datatypes and offers some common functionality. These interface types can be used inOneToOneRelation
s and inOneToManyRelation
s.interfaces
need to provide a list of types which they interface. Other types cannot be used with them.
- Add a new category of types that can be generated by podio:
-
2024-01-18 Mateusz Jakub Fila (PR#542)
- Fixed typos in documentation and comments, updated .gitignore
-
2024-01-18 jmcarcell (PR#540)
- Add a check for the C++ standard using
ROOT_CXX_STANDARD
that was introduced yesterday in ROOT (root-project/root@d487a42)
- Add a check for the C++ standard using
-
2024-01-16 jmcarcell (PR#539)
- Fix crash when a writer is in the global namespace by adding a class that will manage all the writers and finish them before exiting
-
2024-01-16 jmcarcell (PR#538)
- Use getAvailableCollections() instead of the deprecated .collections
-
2024-01-12 jmcarcell (PR#536)
- Add a
getAvailableCollections
method in python that does the same thing as in C++
- Add a
-
2023-12-19 tmadlener (PR#535)
- Implement the suggestions from coverity to move in places where it is easily possible.
- Fix a small resource leak in SIO.
- Fix a small copy-paste error in test output (only triggered in case test fails)
- Restore ostream state after altering it for formatting.
-
2023-12-19 tmadlener (PR#534)
- Update the coverity workflow to use EL9
-
2023-12-18 Andre Sailer (PR#533)
- rootUtils: include sstream, fixes build on macOS 12 / 13
-
2023-12-18 tmadlener (PR#532)
- Remove some benchmark utilities that became unused with the removal of the
TimedReader
andTimedWriter
classes in #485
- Remove some benchmark utilities that became unused with the removal of the
-
2023-12-15 tmadlener (PR#531)
- Remove the last few deprecated accessors from
GenericParameters
.
- Remove the last few deprecated accessors from
v00-17-04
v00-17-04
-
2023-12-14 tmadlener (PR#527)
- Split the
ClassGenerator
into a base class (mixin) and two specific c++ and julia code generators that only deal with their language specific needs.- Instantiate and configure the correct reader in the
podio_class_generator.py
main script depending on the desired language.
- Instantiate and configure the correct reader in the
- Slightly cleanup the
MemberVariable
to declutter its__init__
method a bit.
- Split the
-
2023-12-13 tmadlener (PR#530)
- Remove the reading of the deprecated old-style format of component definitions in the YAML files.
-
2023-12-13 tmadlener (PR#485)
- Remove the deprecated EventStore functionality as announced in #429
-
2023-12-12 tmadlener (PR#529)
- Switch the relation range tests to use Frame based I/O.
-
2023-12-06 tmadlener (PR#526)
- Switch the edm4hep workflows to an LCG stack with a recent enough version of CMake. Necessary after key4hep/EDM4hep#235
-
2023-12-05 jmcarcell (PR#523)
- Remove comment with file name and line number. It's very unlikely it remains up to date when either the name or the content of the files changes
-
2023-12-04 jmcarcell (PR#521)
- Do not import ROOT when using
podio-dump --help
, otherwise it can take a while depending on the system only to print the help.
- Do not import ROOT when using
-
2023-12-04 tmadlener (PR#514)
- Introduce the
MaybeSharedPtr
to manage theObj*
in the user facing handle classes.- This splits the control block and the managed object into two distinct entities with potentially different lifetimes, which allows to fix #174 and #492.
- This increases the size of the user facing handle classes by a factor two, since they are now effectively two pointers instead of one, even if the control block will not be initialized in case a handle is obtained from a collection.
- Remove the
ObjBase
base class and make theObjectID
a member of theObj
classes. - Make the user facing handle class constructors from an
Obj*
private as users will not have access to rawObj*
in any case.- Introduce a static
makeEmpty
method for the generated classes in order to create an empty handle, which is also used internally to handle unpersisted relations.
- Introduce a static
- Enable more existing test cases in sanitizer workflows now that it has become possible to do so.
- Introduce the
-
2023-12-04 Ananya Gupta (PR#473)
- Added Julia code generation support in the existing Python interface.
- Implemented a new design structure for generated Julia code.
- Added default parameters in constructor definitions with support for Abstract types (for builtins).
- Created _sort_components_and_datatypes function to perform topological sort on components and datatypes.
- Created _has_static_arrays_import to check for the need of using Static Arrays in the generated julia code.
- Added --lang (-l) programming language argument to specify the programming language for code generation, current choices: cpp and julia, default: cpp.
- Added --upstream-edm code generation support for julia.
- Added tests in the unit test suite, covering the Julia code generation of the example data models.
- Added documentation for julia code generation.
- Added ENABLE_JULIA toggle option. By default it is OFF.
-
2023-12-01 jmcarcell (PR#520)
- Add an error message when there is an std::bad_function_call, which currently shows
a stacktrace and is quite uninformative.
- Add an error message when there is an std::bad_function_call, which currently shows
-
2023-12-01 tmadlener (PR#519)
- Make generated member getter functions return by value for builtin types. Keep return by const reference for all other types. Fixes #518
-
2023-12-01 tmadlener (PR#488)
- Add python bindings for the RNTuple reader and writer
- Make
podio-dump
understand RNTuple based files - Fix missing storage of datamodel definitions for RNTuple based files
v00-17-03
v00-17-03
- 2023-11-14 tmadlener (PR#513)
- Introduce checks in
ROOTFrameWriter::writeFrame
andROOTNTupleWriter::writeFrame
that ensure consistent contents for all Frames of a given category. If inconsistent contents are found an exception is thrown. Before these changes this might lead to a crash or to unreadable files. Fixes #382 - Refactor
ROOTNTupleWriter
internals to have only one map that keeps track of categories instead of two maps and a set that need to be kept consistent.
- Introduce checks in
v00-17-02
v00-17-02
-
2023-11-08 jmcarcell (PR#511)
- Decouple generation tools and files from the rest of the podio python files by creating a new folder called
podio_gen
. This is a transparent change for users that only use the generator script.- This makes the configuration / generation times negligible again, because we don't load libraries unnecessarily any longer for the generation.
- Simplify the python bindings (
podio
)__init__.py
and remove thetest_utils
from it. - Move the tests for writing frames in python to the
tests
folder, where they belong and also test the SIO python writer.
- Decouple generation tools and files from the rest of the podio python files by creating a new folder called
-
2023-11-06 jmcarcell (PR#510)
- Fix legacy tests; an extra argument was being passed and default in the .cpp file
example_frame.root
was being used which (almost) always exists (because there is a another test creating it) so it was hard to notice.
- Fix legacy tests; an extra argument was being passed and default in the .cpp file
-
2023-11-06 jmcarcell (PR#509)
- Add an option for using clang format and set it to off by default. It is significantly slower to run cmake with this option on.
-
2023-11-02 jmcarcell (PR#508)
- Use the cmake ExternalData module to manage test data. This lets cmake take care of downloading the tests by hash so they can be version controlled. In addition, it's possible to set up a local store using
-DExternalData_OBJECT_STORES=/path/to/store
and it will download the test files there if they are not there but otherwise use them from there, so building from scratch won't download the test files again.
- Use the cmake ExternalData module to manage test data. This lets cmake take care of downloading the tests by hash so they can be version controlled. In addition, it's possible to set up a local store using
-
2023-10-16 jmcarcell (PR#507)
- Copy .clang-format to the dumpmodel test directory and fix some tests when the build directory is not a subdirectory of the main directory. In some tests
clang-format
will try to find a.clang-format
looking in the directories above and if it doesn't exist it will format files differently and some tests will fail.
- Copy .clang-format to the dumpmodel test directory and fix some tests when the build directory is not a subdirectory of the main directory. In some tests
v00-17-01
v00-17-01
-
2023-10-12 tmadlener (PR#505)
- Bump the pylint version for CI to 2.17.7
-
2023-10-11 tmadlener (PR#502)
- Add a
deleteBuffers
function that is populated at generation time to theCollectionReadBuffers
to make it possible to dispose of unconsumed buffers. This fixes the main leaks described in #500 - Make the
ROOTFrameData
clean up all unconsumed buffers at desctruction. - Make sure to delete buffers that are no longer necessary in the CollectionData constructor. This fixes some more leaks described in #500
- Add a
-
2023-10-08 Wouter Deconinck (PR#503)
- Install podio-vis
-
2023-10-04 jmcarcell (PR#497)
- Move podio_PYTHON_DIR to the top level CMakeLists so that it is set even when BUILD_TESTING is off
-
2023-10-02 jmcarcell (PR#496)
- Add an operator != to fix negative comparisons since after #493 now
id()
returns apodioObjectID
- Add an operator != to fix negative comparisons since after #493 now
-
2023-09-29 tmadlener (PR#493)
v00-17
v00-17
Barring any unforeseen issues this will be the last pre-release series.
We plan to no longer change the file layouts, especially the default ROOT (TTree based) one. Please let us know if you have any issue that you would still like to be addressed before a version 1.0 release.
Changes w.r.t. v00-16-05
-
2023-09-22 Juraj Smiesko (PR#491)
- podio-dump: print warning if requested entry not present in the file
-
2023-09-22 tmadlener (PR#490)
- Fix bugs in python imports when podio is built without SIO support. Fixes #489
-
2023-09-22 tmadlener (PR#486)
- Make sure to initialize
ObjectID
s to untracked to properly track whether they have been added to a Frame or not - Change
CollectionIDTable
interfaces ofname
andcollectionID
to returnoptional
to signal whether a collection (ID) is known to the table. This is a breaking change if you use theCollectionIDTable
!- Avoids having to do the lookup twice to check existence and a subsequent retrieval
- Fix bug of overly shared CollectionIDTable in
ROOTNTupleReader
that was uncovered by the CollectionIDTable switch to optional returns. - Switch tests from EventStore to Frame based I/O.
- Fix bug in Frame based I/O that lead to crashes when trying to resolve relations to unpersisted objects.
- Make sure to initialize
-
2023-09-18 tmadlener (PR#484)
- Make the podio python bindings import structure "feel more pythonic"
-
2023-09-15 Benedikt Hegner (PR#483)
- Clarify error message in case of not implemented schema changes
-
2023-09-15 Benedikt Hegner (PR#482)
- rename CMake macro createBuffers into create_buffers
-
2023-09-13 jmcarcell (PR#481)
- Rename the cmake executable or target
unittest
tounittest_podio
, to avoid possible collisions since theunittest
name is relatively common
- Rename the cmake executable or target
-
2023-09-13 Benedikt Hegner (PR#480)
- Move the code generation of buffers into the 'create_buffers' macro
-
2023-09-13 Thomas Madlener (PR#472)
- Allow comparison of data schemata across versions
- Provide syntax to clarify user intentions in schema evolution
- Provide schema evolution implementation based on ROOT backend
- Include infrastructure for future support for schema evolution in other backends
- Documentation for schema evolution functionality
-
2023-09-11 tmadlener (PR#477)
- Use
nlohmann/json_fwd.hpp
in headers to reduce unnecessary template instantiations. Fixes #475
- Use
-
2023-09-08 tmadlener (PR#478)
- Add
empty
method toCollectionBase
- Add
operator==
to the collection iterators
- Add
-
2023-09-08 Dmitry Kalinkin (PR#465)
- Introduce member typedefs to the user facing classes.
- Object's collection type can now be referenced as
Object::collection_type
. Conversely, the object type is reachable asObjectCollection::value_type
. The mutable objects can be reached viaObject::mutable_type
.
- Object's collection type can now be referenced as
- Introduce member typedefs to the user facing classes.
-
2023-08-30 tmadlener (PR#471)
- Initialize the branch names to be index based for reading (i.e. legacy behavior) for all releases of the v00-16 series.
-
2023-08-22 Andre Sailer (PR#469)
- Tests: update required catch2 version to 3.4 for builds with c++20
- CI: use clang16 on el9 (alma9), instead of clang12 on cs7, using c++20
- CI: disable key4hep-release-based tests (
tabulate
available)
-
2023-08-22 Benedikt Hegner (PR#445)
- Allow to specify units as part of the datamodel definition
-
2023-07-26 tmadlener (PR#463)
- Make sure to only access vector member buffers of collections of datatypes with
VectorMembers
if they actually exist. This is necessary to make subset collections of such datatypes work in I/O. Fixes #462 - Add a test that reproduces the original issue and is fixed by this.
- Make sure to only access vector member buffers of collections of datatypes with
-
2023-07-25 tmadlener (PR#461)
- Make sure the
ROOTFrameReader
on the master branch can readv00-16-06
files - Add
v00-16-06
to the legacy versions that are tested
- Make sure the
-
2023-07-25 tmadlener (PR#447)
- Add a python wrapper around the different available Frame writers.
- Add a
put
method to theFrame
wrapper that allows to add collections to the Frame without having to explicitly usecppyy.gbl.std.move
. Fixes #432 - Add test cases that write via python bindings and read via c++.
-
2023-07-20 tmadlener (PR#457)
- Simplify the test setup for SIO in CMake and make it explicit on the
ENABLE_SIO
option rather than on the presence of targets.
- Simplify the test setup for SIO in CMake and make it explicit on the
-
2023-07-18 jmcarcell (PR#456)
- Cache podio_PYTHON_DIR
-
2023-07-18 jmcarcell (PR#455)
- Rename
CMAKE_BINARY_DIR
toPROJECT_BINARY_DIR
- Rename
-
2023-07-18 tmadlener (PR#439)
- Introduce the
FrameCategories.h
header that puts a few of the conventions and otherwise hardcoded strings into variables / functions.
- Introduce the
-
2023-07-14 jmcarcell (PR#454)
- Rename
CMAKE_{SOURCE,BIN}_DIR
toPROJECT_{SOURCE,BIN}_DIR
- Rename
-
2023-07-14 tmadlener (PR#452)
- Extend the pre-processor condition for the
to_json
functionality to not be visible inrootcling
or the root interpreter. Fixes #435
- Extend the pre-processor condition for the
-
2023-07-13 Benedikt Hegner (PR#450)
- Add optional description and author fields to component definition
-
2023-07-13 tmadlener (PR#449)
- Fix the
pre-commit
workflow by making it run on top of the key4hep nightlies that come with a recent enough root version to be able to work with the RNTuple addition (#395) - Fix a few minor complaints from newer versions of
clang-format
,clang-tidy
andpylint
- Enable building the RNTuple backend for more workflows (anything that comes with a new enough ROOT essentially).
- Fix the
-
2023-07-13 tmadlener (PR#448)
- Remove the lcio datalayout which has been untouched (and unbuilt) for quite a few years.
-
2023-07-13 tmadlener (PR#446)
- Make calling
finish
for theSIOFrameWriter
non-mandatory. See #442 for other related changes.
- Make calling
-
2023-07-11 jmcarcell (PR#442)
- Allow not calling
finish()
when using the writers
- Allow not calling
-
2023-07-11 jmcarcell (PR#395)
- Add support for the new RNTuple format by adding a writer, reader and tests.
-
2023-06-30 Ananya Gupta (PR#437)
- Modified parse function definition to incorporate
missing description in member definition
error message. Fixes #436
- Modified parse function definition to incorporate
-
2023-06-27 Thomas Madlener (PR#413)
- Introduce
podio::SchemaEvolution
that can hold schema evolution functions and that offers anevolveBuffers
method that does the schema evolution on these buffers before collections are created. - Add hooks in
podio::Frame
to call this when collections are read from the FrameData.
- Introduce
-
2023-06-23 tmadlener (PR#434)
- Properly handle the slightly different branch contents before
v00-16-04
. Fixes #433 - Add tests that use the
ROOTLegacyReader
to actually read the downloaded legacy files
- Properly handle the slightly different branch contents before
-
2023-06-15 tmadlener (PR#428)
- Split the tests directory into several (more or less) topical sub-directories to declutter the main test
CMakeLists.txt
a bit - Move commonly used functionality into
cmake/podioTests.cmake
(e.g. setting up a test environment) - Move python unittests config to the
python
directory
- Split the tests directory into several (more or less) topical sub-directories to declutter the main test
-
2023-06-15 tmadlener (PR#427)
- Delay library loading as long as possible, mainly for quicker responses for
--help
- Add a
--version
flag for dumping the podio version - Display collections and parameters in alphabetical order and automatically adjust column widths to fit contents (using the
tabulate
package).
- Delay library loading as long as possible, mainly for quicker responses for
-
2023-06-09 Thomas Madlener (PR#402)
- Add public
static constexpr char*
type names to the collections and make thegetXXXName()
methods returnstring_view
s to these strings. This is a breaking change to the interface of the collections if you explicitly rely on them beingstd::string
typeName
: the full type name of the collection (returned also bygetTypeName
)valueTypeName
: the (immutable) type name of the objects of the collection (returned bygetValueTypeName
)dataTypeName
: the type name of the data PODs (returned bygetDataTypeName
)
- Make unittest environment properly use
PODIO_SIOBLOCK_PATH
USE_EXTERNAL_CATCH2
now can also be set toAUTO
to look for a suitable version of Catch2 before falling back and fetching and building it's own version instead of a hard fail.
- Add public
-
2023-...