Releases: AIDASoft/podio
v01-06
v01-06
-
2025-10-21 Juan Miguel Carceller (PR#867)
- Use a handle to a file or stream in the writers to check if we are done
-
2025-10-20 Juan Miguel Carceller (PR#865)
- Make
RNTupleReader::getEntriesconstsince it's alsoconstin the other readers
- Make
-
2025-10-20 Juan Miguel Carceller (PR#864)
- Do not load the deprecated pythonization collection_subscript
-
2025-10-20 Juan Miguel Carceller (PR#862)
- Make it possible to read RNTuples with removed types, using
SetEmulateUnknownTypes - Add a test that fails without this fix and works with this fix (only RNTuple was failing)
- Make it possible to read RNTuples with removed types, using
-
2025-10-20 Juan Miguel Carceller (PR#846)
- Add ugly code to trigger an error when reading garbage
-
2025-10-14 Juan Miguel Carceller (PR#860)
- Deprecate
isValid()for collections and addhasID()to check if a collection has an ID. This allows to find out ifframe.get<type>("name")didn't find a collection, since it will return an empty one in this case.
- Deprecate
-
2025-10-10 Juan Miguel Carceller (PR#857)
- podio-merge-files: import podio later for faster help messages and use get_reader
-
2025-10-10 Thomas Madlener (PR#855)
- Add an indication whether a collection is a subset collection to the output of
podio-dump
- Add an indication whether a collection is a subset collection to the output of
v01-05
v01-05
-
2025-10-08 Juan Miguel Carceller (PR#854)
- Add documentation about some of the existing tools
-
2025-10-06 Thomas Madlener (PR#803)
- Generate the
XYZDataPODs into av{{ old_version }}namespace in order to have the old definitions available for schema evolution purposes if necessary.- The current version of the PODs are not put into such a version namespace.
- The old versions are generated even if they are identical in their definition to the current namespace.
- All versions that have been provided to the code generation will be generated.
- Generate the
-
2025-09-29 Thomas Madlener (PR#852)
- Make sure using
PODIO_SIOBLOCK_PATHworks without havingLD_LIBRARY_PATHset appropriately.- Without this fix the
SioBlocklibraries also had to be onLD_LIBRARY_PATHfor the dynamic loading to work. NowPODIO_SIOBLOCK_PATHis enough.
- Without this fix the
- Make sure using
-
2025-09-29 Thomas Madlener (PR#844)
- Split schema evolution detection into two parts; detecting changes and judging whether they can be handled automatically or not
-
2025-09-24 Juan Miguel Carceller (PR#849)
- Remove support for CPack since it is unused, points to wrong information and is not working. See also key4hep/EDM4hep#445.
-
2025-09-23 Juan Miguel Carceller (PR#841)
- Set ROOT_LIBRARY_PATH in tests to better control the environment
-
2025-09-12 Thomas Madlener (PR#843)
- Randomize the order of the tests in CI to detect implicit test dependencies and avoid introducing new ones
- Add global timeouts for running tests to fail earlier in case of CVMFS loading issues
-
2025-09-10 Thomas Madlener (PR#836)
- Run schema evolution read tests with limited memory to avoid ROOT running away with all the memory.
-
2025-09-09 Juan Miguel Carceller (PR#840)
- Delete an extra Python3_INCLUDE_DIRS, forgotten in #839
-
2025-09-09 Juan Miguel Carceller (PR#839)
- Add the Python headers to the system includes to avoid warnings
-
2025-09-08 Juan Miguel Carceller (PR#837)
- Move some includes where they are used and add
constin a few places
- Move some includes where they are used and add
-
2025-09-04 Thomas Madlener (PR#817)
- Refactor the way schema evolution tests are done to make them easier to adapt and understand
- Introduce a mini testing framework that allows to focus on a single schema change for a given test
- Remove the duplication of the test datamodel with various schema changes sprinkled across it
- Enable some schema evolution tests for RNTuple
- Refactor the way schema evolution tests are done to make them easier to adapt and understand
-
2025-09-03 Thomas Madlener (PR#835)
- Remove an unnecessary
depends_onargument from the tests forpodio-visas they do not depend on any other test and all the necessary inputs are part of the source code.
- Remove an unnecessary
-
2025-09-03 Juan Miguel Carceller (PR#834)
- Add CMake fixtures for tests that read and write files so that reading doesn't happen if writing fails and running the reading tests requires the write tests
-
2025-08-28 Juan Miguel Carceller (PR#832)
- Add types with all the collection types of a datamodel in datamodel.h
- Add tests for the new types
- Use single spaces instead of two spaces between types in the list
-
2025-08-27 Thomas Madlener (PR#831)
- Fix a minor bug in generation of all collections header file
-
2025-08-27 Thomas Madlener (PR#830)
- Add a
__repr__method to some of the classes in the generator python utils for improved printouts
- Add a
-
2025-08-27 Juan Miguel Carceller (PR#829)
- Add a
podio::UserDataCollectionTypestype list containing all the available user data collection types.
- Add a
-
2025-08-26 Mateusz Jakub Fila (PR#826)
- Fix typo causing error in non-const overload of
LinkCollection::at(size_t)
- Fix typo causing error in non-const overload of
-
2025-08-26 Mateusz Jakub Fila (PR#824)
- Add automatic collection subscript pythonization to
UserDataCollectionandLinkCollection
- Add automatic collection subscript pythonization to
-
2025-08-26 Thomas Madlener (PR#823)
- Switch to newer LCG release and compilers for sanitizer CI workflows
- Remove some unnecessary debug output from the unittests that trips UBSan on gcc15
-
2025-08-25 Thomas Madlener (PR#822)
- Update CI workflows to also build against root with c++23
- Bump the minimum required version of Catch2 to 3.5 as that fixes some compiler warnings for c++23
-
2025-08-25 Mateusz Jakub Fila (PR#810)
- Add automatic pythonization of collection subscript with C++ callback
- Deprecate pythonization of collection subscript with Python callback
-
2025-08-22 Thomas Madlener (PR#821)
- Fix code generation to allow for types to have a
OneToOneRelationto itself. This was previously not possible (but seemingly unused)
- Fix code generation to allow for types to have a
-
2025-08-22 Mateusz Jakub Fila (PR#820)
- Run cppcheck pre-commit hook only for c++ files
-
2025-08-22 Thomas Madlener (PR#819)
- Use an existing member function for building includes in components code generation
-
2025-08-20 Thomas Madlener (PR#816)
- Fix missed renaming of member names that were missed in #797
-
2025-08-20 Thomas Madlener (PR#815)
- Remove unused datatype from the original model and re-use another one to do the same test
-
2025-08-14 jmcarcell (PR#812)
- Remove the deprecated operator-> in collections
v01-04-01
v01-04
v01-04
-
2025-08-13 jmcarcell (PR#809)
- Simplify constructors by using member initializers and only initialize in the constructor what changes with respect to the defaults
-
2025-08-13 Thomas Madlener (PR#799)
- Make sure that members that are builtin types can also be renamed with ROOT
-
2025-08-13 Thomas Madlener (PR#797)
- Refactor parts of the code generation that are related to schema evolution
- Remove some duplication and homogenize information from schema changes detection system
-
2025-08-12 jmcarcell (PR#813)
- Add cppcheck to pre-commit, together with a file with the warnings that are suppressed
- Fix the existing warnings
-
2025-08-12 jmcarcell (PR#808)
- Define
typeName,valueTypeNameanddataTypeNameoutside of each collection andUserDataCollectionclass, in addition to the existing definition inside the class to prevent an issue in which every library under LD_LIBRARY_PATH is opened when creating a collection in Python
- Define
-
2025-08-11 jmcarcell (PR#811)
- Deprecate the generation of an
operator->for collections which made them usable as if they were pointers even when dealing with regular values.- Depending on your usage, the removal of this operator might break code that uses a generated datamodel. The recommended fix is to simply switch to using
.instead of->when working with (non-pointer) collections. - The original purpose for adding this was the (now abandoned) seamless drop-in replacement for LCIO, which uses collection pointers instead of values.
- Depending on your usage, the removal of this operator might break code that uses a generated datamodel. The recommended fix is to simply switch to using
- Deprecate the generation of an
-
2025-07-07 Thomas Madlener (PR#807)
- Make
PODIO_GENERATE_DICTIONARYa thin wrapper aroundREFLEX_GENERATE_DICTIONARYinstead of a re-implementation
- Make
-
2025-07-01 Thomas Madlener (PR#804)
- Fix deprecation warning in pre-commit by updating hook version to latest one (v5.0.0)
-
2025-06-30 Thomas Madlener (PR#802)
- Switch back to the standard version of the run-lcg-view action, using docker as container runtime, since the upstream issue with cvmfs has been fixed.
-
2025-06-27 jmcarcell (PR#798)
- Allow calling finish() multiple times, with no effect after the first by checking the value of
m_finished.
- Allow calling finish() multiple times, with no effect after the first by checking the value of
-
2025-06-20 Thomas Madlener (PR#786)
- Introduce a
FrameDataTypeconcept and constrain theFrameconstructors with it
- Introduce a
-
2025-06-19 jmcarcell (PR#784)
- Change the default setting of the generic writer to RNTuple when
PODIO_DEFAULT_WRITE_RNTUPLEis set - Add a test that writes an RNTuple because
PODIO_DEFAULT_WRITE_RNTUPLEis set - Since there was no documentation about the readers and writers, add documentation about them and include
PODIO_DEFAULT_WRITE_RNTUPLEin it.
- Change the default setting of the generic writer to RNTuple when
-
2025-06-18 jmcarcell (PR#785)
- Add missing override to the destructor of UserDataCollection and LinkCollectionImpl
-
2025-06-13 Thomas Madlener (PR#791)
- Disable the julia tests in the sanitizers workflows as they do not test anything meaningful there
- Use podman for now to run the CI that requires Julia
-
2025-06-13 jmcarcell (PR#789)
- Use python packages from the Key4hep stack in the pre-commit workflow
- Fix pre-commit
-
2025-06-13 jmcarcell (PR#788)
- Add the value of
ROOT_INCLUDE_PATHfrom the environment to the tests - Call
k4_local_repoin the key4hep workflow
- Add the value of
-
2025-05-26 jmcarcell (PR#783)
- Use size_t instead of unsigned int for
operator[],at,getIDandsetIDfor Link collections, since it is the type used for data type collections and UserDataCollections.
- Use size_t instead of unsigned int for
-
2025-05-20 jmcarcell (PR#781)
- Fix Unity builds with SIO enabled by giving a variable different names
v01-03
v01-03
-
2025-05-14 jmcarcell (PR#780)
- Read the collection information starting with version 1.2.999 to maintain compatibility with the files produced with podio 1.2.99
- Bump the version to 1.2.999
-
2025-05-13 jmcarcell (PR#779)
- Ignore the datasource tests when using the address sanitizer since the tests that create their input files are also ignored
- Enable
-DENABLE_DATASOURCEwhen building with sanitizer (although all the related tests will be ignored)
-
2025-05-13 jmcarcell (PR#775)
- Define
typeNameoutside of each object class, in addition to the existing definition inside the class.
- Define
-
2025-05-13 Mateusz Jakub Fila (PR#758)
- Formalize expected collection interface with a concept
- Add
atandcreatetoUserDataCollection
-
2025-05-08 jmcarcell (PR#777)
Clean up the ROOT readers and writers- Add const where possible
- Use functions from
std::rangeswhen possible - Do not use
newanddeletewhen it's not needed (ROOTReader.cc) - Clean up includes
- Change some indexes to size_t instead of int to avoid implicit conversions (doesn't change anything)
-
2025-05-07 Thomas Madlener (PR#711)
- Store the collection information in a proper
structinstead of using atupleto facilitate access for non podio based backends (e.g. Julia) - Harmonize the format of RNTuple and TTree based ROOT backends
- Both now store the collection information into the
podio_metadataTTree / Model as avector<podio::root_utils::CollectionWriteInfo>, which contains all the necessary information for reading a collection. - The collection ID and the name are part of this struct, so the
CollectionIDTableis no longer written separately.
- Both now store the collection information into the
- This is a breaking change in the format if you rely on reading the metadata about the stored collections.
- Store the collection information in a proper
-
2025-04-29 Thomas Madlener (PR#773)
- Make sure compilation with gcc11 is possible again and add a workflow based on LCG_107 and Ubuntu 22 to check compatibility in CI
-
2025-04-28 Thomas Madlener (PR#774)
- Cleanup some no longer necessary cmake checks
-
2025-04-28 jmcarcell (PR#767)
- Pass by const reference in the object constructor and member setters. Decide based on the the
is_builtinmember in python, that excludes containers of builtin types and datamodel types. - Add const when possible for other function parameters
- Update the documentation for the
signaturemember.
- Pass by const reference in the object constructor and member setters. Decide based on the the
-
2025-04-25 jmcarcell (PR#771)
- Remove double locking in
prepareForWrite; acquire the lock only once
- Remove double locking in
-
2025-04-23 Thomas Madlener (PR#769)
- Make sure that the sanitizer build workflows also use ccache and avoid concurrent runs on the same git ref
-
2025-04-23 Thomas Madlener (PR#768)
- Keep RNTuple support enabled for ROOT 6.32, but emit a warning at CMake stage
-
2025-04-22 Thomas Madlener (PR#757)
- Make sure that podio RNTuple readers and writers work with ROOT 6.34 and later versions.
- Bump the minimum required version of ROOT for RNTuple support to 6.34. That is where the file format has been stabilized, but the API has only moved out of the
Experimentalnamespace in 6.36.
-
2025-04-15 Thomas Madlener (PR#764)
- Use
ccachein CI to speed up workflows - Add more workflows based on Key4hep
- Cancel concurrent workflows for changes pushed before they finished
- Use
-
2025-04-09 Thomas Madlener (PR#763)
- Remove a leftover empty CMake variable. The corresponding code has been removed in #662.
-
2025-04-09 jmcarcell (PR#761)
- Generate in
datamodel.hadditional lists with all the data and link types - Add tests using this functionality
- Generate in
-
2025-04-08 jmcarcell (PR#762)
- Fix
podio::Link::typeNamethat was wrongly including "Collection"
- Fix
-
2025-04-01 Thomas Madlener (PR#756)
- Cache ExternalData fetched by CMake to avoid failing CI due to potentially flaky or overloaded inrastructure
-
2025-04-01 Mateusz Jakub Fila (PR#748)
- Change type of
typeNamemembers tostd::string_view. Add utility to concatenatestd::string_views at compile time. - Add
typeNamestatic member to link collections.typeNamecan be checked at compilation time. - Deprecate
linkCollTypeNameandlinkTypeNamehelper functions.
- Change type of
-
2025-03-28 Mateusz Jakub Fila (PR#759)
- Fix a few more typos readmes, docstrings, assert messages
-
2025-03-26 Mateusz Jakub Fila (PR#755)
- allow
^in units in datamodel definitions
- allow
-
2025-03-26 Mateusz Jakub Fila (PR#754)
- Add
front,back,cbegin,cendandoperator boolto theRelationRangeso it has all the methods fromstd::ranges::view_interface
- Add
-
2025-03-25 Mateusz Jakub Fila (PR#752)
- Update
max_sizereported by collections to include limit due toObjectIDindex type
- Update
-
2025-03-21 jmcarcell (PR#751)
- Add const to void* in OrderKey.h
-
2025-03-10 Mateusz Jakub Fila (PR#749)
- Fix typo in tests so the usage of links with unordered associative containers is actually tested
-
2025-03-10 scott snyder (PR#747)
- Fix a build issue when the python version used is different than the one found by default by cmake.
-
2025-03-10 jmcarcell (PR#746)
- Support Unity builds Add missing include guards and make sure some functions such as
createBufferhave a different name for each collection.
- Support Unity builds Add missing include guards and make sure some functions such as
-
2025-03-07 Thomas Madlener (PR#745)
- Fix the (potential) import error for
podio.version.build_versionby not relying on ROOTs JIT, but rather parsing the python__version__into the correct type.
- Fix the (potential) import error for
-
2025-03-06 Thomas Madlener (PR#744)
- Add v01-01 and v01-02 input root files for backwards compatibility checks
-
2025-03-06 Mateusz Jakub Fila (PR#743)
- Prevent error-prone copy-assignment to temporary datatype and link objects. The compilation error instead of unexpected behaviour when by mistake using the podio collection iterators as "LegacyOutputIterator" is more very likely (e.g.
std::fillwill most likely not compile instead compiling but giving wrong results)
- Prevent error-prone copy-assignment to temporary datatype and link objects. The compilation error instead of unexpected behaviour when by mistake using the podio collection iterators as "LegacyOutputIterator" is more very likely (e.g.
-
2025-02-28 Mateusz Jakub Fila (PR#738)
- Add
std::hashfor podio datatype objects, interfaces and links. Datatypes, interfaces and links can be used in unordered associative containers such asstd::unordered_setorstd::unordered_map
- Add
-
2025-02-28 Mateusz Jakub Fila (PR#720)
- Collection iterators fulfill
forward_iterator,bidirectional_iteratorandrandom_access_iteratorconcepts. The collections can be used with more categories of range algorithms - up torandom_access_range, for examplestd::adjacent_find,std::lower_bound,std::fold_right, and more views likestd::ranges::views::reverse. LinkCollectionand its iterators fulfill concepts up torandom_access_rangeandrandom_access_iterator.- Add reverse iterator methods to Collections,
LinkCollectionandUserDataCollection. - CollectionIterators of generated datamodels now define
operator<=>instead ofoperator!=. This will require at least c++20 to compile, but should not affect existing behavior.
- Collection iterators fulfill
-
2025-02-21 Mateusz Jakub Fila (PR#742)
- Fixed argument resolution in the roundtrip test to prevent failures when SIO is not present.
-
2025-02-20 jmcarcell (PR#741)
- Remove warning about C++17 that is now obsolete
-
2025-02-19 Dmitry Kalinkin (PR#733)
- Added
std::hash<podio::ObjectID>specialization to allowstd::unordered_map<podio::ObjectID, T>
- Added
-
2025-02-18 Mateusz Jakub Fila (PR#737)
- Replace
sizeof(T) == 0withalways_falseto fail static assertions inconstexpr if
- Replace
-
2025-02-17 Mateusz Jakub Fila (PR#736)
- fix setting link with interface without specifying link direction
-
2025-02-17 Mateusz Jakub Fila (PR#729)
- POSIX glob patterns can be used in
makeReaderandCreateDataSource. Added standalone helperpodio::utilities::expand_globto resolve globs. - Added passing a list of files to
get_reader
- POSIX glob patterns can be used in
-
2025-02-12 jmcarcell (PR#734)
- Add LANGUAGES CXX to CMakeLists.txt to disable checks for a C compiler
-
2025-02-04 Thomas Madlener (PR#732)
- Make sure that
isValidworks the same forLinkCollectionas it does for other collections - Make sure to s...
- Make sure that
v01-02
v01-02
Note
This is the last release of podio that still supports building with c++17. We have added a corresponding deprecation warning to the cmake stage. We have slated the removal of c++17 support for the next tag (i.e. v01-03). If you need c++17 support please comment on this issue
-
2024-12-17 Thomas Madlener (PR#715)
- Improve the schema changes that
podio_schema_evolution.pydetects and reports on- Addition / removal of
VectorMembers,OneToOneRelationsandOneToManyRelations
- Addition / removal of
- Make the script exit with a non-zero exit code in case an unsupported schema change is detected
- Add a test setup and some tests for testing the schema evolution script and make sure it detects unsupported changes
- Improve the schema changes that
-
2024-12-09 jmcarcell (PR#716)
- Mark the collection destructor with override and remove
#include <array>
- Mark the collection destructor with override and remove
-
2024-12-09 Mateusz Jakub Fila (PR#714)
- Added possibility to use in the interfaces the datatypes from different podio-based datamodels
-
2024-12-05 tmadlener (PR#646)
- Add a
LinkNavigatorutility class that facilitates the lookup of linked objects
- Add a
-
2024-12-02 Thomas Madlener (PR#710)
- Make sure that the weights of the links end up as a
vector<LinkData>in the ROOT files instead of avector<float>
- Make sure that the weights of the links end up as a
-
2024-12-02 tmadlener (PR#691)
- Introduce a new
linkscategory into the YAML grammar to automate the declaration of Links.
- Introduce a new
-
2024-11-20 Thomas Madlener (PR#709)
- Remove an option from
.clang-tidythat has been removed from newer versions ofclang-tidy(>= 18)
- Remove an option from
-
2024-11-20 jmcarcell (PR#681)
- Add a tool to merge several podio files into a single one:
- Metadata for every event can be saved or not
- The same format as the first input file will be used (TTree or RNTuple)
- Metadata about the input file names will be saved
- Add a tool to merge several podio files into a single one:
-
2024-11-19 jmcarcell (PR#707)
- Run clang-tidy at the end of pre-commit since other failures are more likely and clang-tidy takes a long time.
-
2024-11-18 jmcarcell (PR#706)
- Remove unnecessary code in GenericParameters.h
-
2024-11-11 jmcarcell (PR#704)
- Fix tests when SIO is OFF
-
2024-11-08 Thomas Madlener (PR#702)
- Make sure that
makeReaderstill recognizes files with RNTuple inside after they have been marked non-experimental in ROOT.
- Make sure that
-
2024-11-08 jmcarcell (PR#700)
- Add a deprecation warning when building with C++17 before removing support for it in #698
-
2024-11-08 Victor Schwan (PR#699)
- add compatibility with pathlib.Path objects in root_io and sio_io
-
2024-11-08 tmadlener (PR#693)
- Fix small issue in
GenericParameterswhere trying to access a single element of a parameter that was stored as an empty vector resulted in a crash. Instead make this return an empty optional now.
- Fix small issue in
-
2024-10-17 Thomas Madlener (PR#697)
- Temporarily set the
JULIA_DEPOT_PATHto a writable directory to make CI pass.
- Temporarily set the
-
2024-10-17 jmcarcell (PR#696)
- Remove some includes and fix a couple of URLs
-
2024-10-15 tmadlener (PR#695)
- Fix minor memory leaks of consumed buffers in
LinkCollections andUserDataCollections and inSIOBlockUserData - Enable some more complete I/O tests using SIO and RNTuple
- Fix minor memory leaks of consumed buffers in
-
2024-10-15 jmcarcell (PR#694)
- Remove unnecessary
inlineinstd_interoperability.cppsince the variables are only used in that file.
- Remove unnecessary
-
2024-09-30 Leonhard Reichenbach (PR#692)
- GenericParameters.h: added missing clear and empty check for double map
-
2024-09-30 Mateusz Jakub Fila (PR#683)
- Using enable if instead of static_assert in interface type construct to avoid errors with direct initialization of contianers of interface types
-
2024-09-27 tmadlener (PR#690)
- Switch to software stacks with a newer version of ROOT for building and testing EDM4hep in CI, because we need a newer version of ROOT to run all the backwards compatibility tests in EDM4hep.
-
2024-09-26 tmadlener (PR#689)
- Use a
unique_ptrto manage the OneToOneRelation pointers in theObjclasses.
- Use a
-
2024-09-26 ANUSHKA SAXENA (PR#685)
- Add advanced CMake usage for
PODIO_GENERATE_DATAMODELto docs
- Add advanced CMake usage for
-
2024-09-24 tmadlener (PR#688)
- Make sure that we pick up the correct version of
pylintin the CI for pre-commit.
- Make sure that we pick up the correct version of
-
2024-09-24 tmadlener (PR#673)
- Rework the I/O handling for relations. This is mainly removing the differences in handling of interface and regular datatypes in relations.
- Remove the conditional code generation from the jinja2 templates and add functionality that dispatches to the correct handling depending on a (c++) type check
- Expose an
interfaced_typesmember type for interface types and add a type helper to check whether a type is an interface type
- Rework the I/O handling for relations. This is mainly removing the differences in handling of interface and regular datatypes in relations.
-
2024-09-23 tmadlener (PR#687)
- Make sure the
ROOT_INCLUDE_PATHin the test environment points to the correct place.
- Make sure the
-
2024-09-23 Benedikt Hegner (PR#684)
- Finally removing deprecated ROOTFrame[Reader,Writer] and SIOFrame[Reader,Writer] classes (announced removal was v01-00)
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.versionmodule exposingpodio::version::Versionalso in python. - Remove the
version_as_strmethod again, since that is handled byVersionnow.
- 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_assertin 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.CreateDataFramefor 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
graphvizforpodio-visfunctionality 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::DataSourceas anRDataSourcefor working with podio (generated EDM) files and collections. ThisRDataSourceexposes 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.shscript sets up the correctPYTHONPATH
- Make sure that the
-
2024-07-31 tmadlener (PR#649)
- Introduce a thin wrapper script around
clang-tidyfor usage inpre-committo 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
ReaderandWriterinterface classes - Make sure that
makeReaderthrows 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
ObjectIDs 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
ExtraCodeincludes 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
ObjectIDs fromXXXXXXXitoXXXXXXXX|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
nullptrbefore deleting a (possiblynullptr) pointer - Remove
if - elsecheck 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
ROOTFrameDatamember functions into a separate cc file.
- Move the implementation of
-
2024-06-11 tmadlener (PR#618)
- Fix minor issues with the
ReaderandWriterinterface classes- Make sure that only the public API is public
- Fix some const correctness issues by marking
constmethods as such - Remove unnecessary and (partially) unused APIs from the
Writerinterface
- Remove the dictionary generation for
podioIOas we don't need the dictionaries
- Fix minor issues with the
-
2024-06-11 tmadlener (PR#614)
- Refactor the
RNTupleWriterinternals a bit and reduce some code duplication between theRNTupleWriterand theROOTWriter - Add
getKeysandgetValuesmethods toGenericParameters - Remove the
CollectionBranches.hheader and move all root related helpers intoutilities/RootHelpers.h
- Refactor the
-
2024-06-10 tmadlener (PR#621)
- Make
GenericParameters::printconst-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_sizeand aliasessize_type,difference_typeto 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
GenericParametersreturnstd::optionalon 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
setValueandgetValuefunctions to justsetandget. This is also a breaking change, but as far as we are aware theGenericParametersare only used internally in podio.
- Rename the
- Make the
Frame::getParameteralso 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::getNamefunctionality introduced in #586
- Add python bindings for the
-
2024-06-04 jmcarcell (PR#612)
- Fix Python->Python3 when
PODIO_RELAX_PYVERis ON
- Fix Python->Python3 when
-
2024-06-04 jmcarcell (PR#609)
- Add a parameter
cloneRelationsfor theclonemethod 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-packagesinstead ofpythonby default. This is a more standard prefix for python packages- Use the
podio_PYTHON_INSTALLDIRcmake 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
getValuemethod in favor of theasmethod 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
podioIOwith 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_105usinggcc13andclang16as 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_PATHis set but none of the SioBlock libraries are found.
- Set the right path for
-
2024-04-19 tmadlener (PR#586)
- Add a
Frame::getNamemethod 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
@paramsand@returnstags, add information or reword).
- Make all docstrings of c++ classes use the
-
2024-04-03 tmadlener (PR#575)
- Make sure that the
as_typeargument is respected inFrame.put_parameteralso 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::mapandstd::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 deprecatedEventStorebased 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
TClassmachinery inside theRNTupleReaderas 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
blackto 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 inOneToOneRelations and inOneToManyRelations.interfacesneed 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_STANDARDthat 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
getAvailableCollectionsmethod 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
TimedReaderandTimedWriterclasses 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