Repository navigation
v01-08
v01-08
-
2026-08-27 Juan Miguel Carceller (PR#1012)
- Detach the metadata
TTreefrom the outputTFilebefore closing the file.
- Detach the metadata
-
2026-08-27 Thomas Madlener (PR#1011)
- Add a
LinkCollection::createoverload that takes the objects that should be linked to facilitate creating links.
- Add a
-
2026-08-26 Mateusz Jakub Fila (PR#1010)
- Pin pre-commit hook revisions with SHA rather than tag name
-
2026-08-26 arnavdham (PR#1002)
- Add Parquet file reading and writing capabilities to the Arrow backend (ArrowWriter and ArrowReader).
- Populate ArrowTypeRegistry and ArrowConverterRegistry with primitive type converters for file I/O.
- Fix missing linking dependencies in podioMacros.cmake for downstream datamodel targets using the Arrow backend.
-
2026-08-26 Juan Miguel Carceller (PR#998)
- Add GCC 16 coverage in the CI test matrix.
-
2026-08-24 Juan Miguel Carceller (PR#1007)
- Add a comparison operator for ObjectID, allowing ObjectIDs to be used in
std::mapcontainers and not onlystd::unordered_map. - Add a test for
ObjectIDordering andstd::mapusage.
- Add a comparison operator for ObjectID, allowing ObjectIDs to be used in
-
2026-08-19 Wouter Deconinck (PR#1003)
- fix: avoid dangling string_view keys in RNTupleReader maps
-
2026-08-16 Wouter Deconinck (PR#1005)
- fix(cmake): typo USE_SANITIZE => USE_SANITIZER
-
2026-08-13 arnavdham (PR#999)
- Refactoring: Generalized dynamic library loading for I/O backends into a shared, thread-safe
BackendLibraryLoader. - Change: Changed the library suffix generated by
PODIO_ADD_ARROWfromArrowtoPodioArrowto prevent dynamic loading collisions. Downstream projects will need to update their CMake aliases accordingly. - Fix: Arrow mapper libraries are now loaded dynamically at registry lookup time instead of relying on linker side-effects.
- Refactoring: Generalized dynamic library loading for I/O backends into a shared, thread-safe
-
2026-08-12 arnavdham (PR#1001)
- Optimized the Arrow backend read path by eliminating vector reallocation overhead and redundant O(N) schema lookups.
-
2026-08-04 arnavdham (PR#987)
- Add support for Arrow-to-Frame conversion (deserialization) for the Apache Arrow backend to complete the round-trip workflow.
- Introduce the
convertTableToFrameAPI to reconstructpodio::Frameobjects from a specific row of an ArrowTable. - Add support for reconstructing complex types (collections, vector members, relations, subsets) and
GenericParameters.
-
2026-07-30 Juan Miguel Carceller (PR#995)
- Look for
lz4quietly when looking for Arrow to avoid a warning whenlz4doesn't provide a CMake config file.
- Look for
-
2026-07-29 Juan Miguel Carceller (PR#994)
- Export the Arrow target selected while configuring podio, otherwise
PODIO_ARROW_TARGETwill be empty and this is used inside the macro intarget_link_libraries, making downstream targets not link to Arrow
- Export the Arrow target selected while configuring podio, otherwise
-
2026-07-27 Thomas Madlener (PR#954)
- Extract common functionality related to file versions and datamodels into a
ReaderCommonutility class.
- Extract common functionality related to file versions and datamodels into a
-
2026-07-26 arnavdham (PR#990)
- Cleans up the package configuration by exporting only the prefixed variables (
PODIO_ENABLE_SIOandPODIO_ENABLE_ARROW) and check both the prefix and the unprefixed ones.
- Cleans up the package configuration by exporting only the prefixed variables (
-
2026-07-24 Juan Miguel Carceller (PR#993)
- Let ROOT bind to the right type instead of casting to std::vector
-
2026-07-24 Juan Miguel Carceller (PR#992)
- Add const in the Model constructor in Interface.h (avoiding one copy)
- Add a default destructor for types that have one-to-one relations (since it is a
unique_ptrthat can be destroyed) - Add a few brackets
{and}instead of having one-line ifs.
-
2026-07-20 Juan Miguel Carceller (PR#989)
- Use constexpr and consteval when possible
- Only define
operator==for ObjectID since defaulting it also createsoperator!=(see https://en.cppreference.com/cpp/language/default_comparisons?)
-
2026-07-16 Juan Miguel Carceller (PR#988)
- Group together tests that are small and related, to launch one process per group and have less clutter when running CTest
-
2026-07-15 arnavdham (PR#980)
- Implement a
frameToTableconversion layer to map PODIOFrames and collection data types to Apache ArrowTables, where eachFramemaps to a single row. - Add thread-safe global registries (
ArrowTypeRegistryandArrowConverterRegistry) for mapping PODIO collections to Arrow data types and serialization functions. - Introduce
ArrowFrameConverter::convertFrameToTableto translate regular collections, subset collections, and frame parameters. - Update code generation with
ArrowMappertemplates and Jinja2 macros to dynamically generate schema definitions and register serializers for custom EDMs, including support for complex types, fixed-size arrays, and relationships.
- Implement a
-
2026-07-02 Juan Miguel Carceller (PR#985)
- Sort categories in getAvailableCategories for RNTuples
- Sort categories (alphabetically, ignoring case) in
podio-dump
-
2026-07-02 Juan Miguel Carceller (PR#952)
- Use
TFileMergerwith ROOT files inpodio-merge-filesto speed it up and add code to make sure the metadata is set correctly. Keep the old behaviour for the other backends (SIO only).
- Use
-
2026-07-01 Juan Miguel Carceller (PR#984)
- Add a test for the unused method
getNin GenericParameters
- Add a test for the unused method
-
2026-06-28 Juan Miguel Carceller (PR#983)
- Remove the "three star cast"
*static_cast<std::vector<T>**>(raw). To do that:- Remove
CollectionWriteBuffers::asVector(), the method that had the cast - Do the necessary modifications in SIO code that was using it in several places: now hold a
CollectionReadBuffersfor reading and aCollectionWriteBuffersfor writing
- Remove
- Remove the "three star cast"
-
2026-06-28 Thomas Madlener (PR#979)
- Add support for renaming datatypes in schema evolution. The renaming is auto detected (there is no need for an evolution file) by checking if the new datatype has the same members and types as an old dropped datatype.
- Add a test with a type that is renamed
-
2026-06-27 Juan Miguel Carceller (PR#982)
- Allow subprocess aborted in the read_garbage test
-
2026-06-21 Juan Miguel Carceller (PR#978)
- Update the sanitizer workflow to use the latest available compilers, GCC 16 and Clang 22
-
2026-06-20 Juan Miguel Carceller (PR#974)
- Exclude the datamodel.h header from being added to ROOT dictionaries
-
2026-06-19 Juan Miguel Carceller (PR#977)
- Fix compilation with fmt 12.2.0 by including a missing fmt/ranges.h
-
2026-06-19 Juan Miguel Carceller (PR#971)
- Remove the deprecated getValue() in Interfaces
-
2026-06-18 Juan Miguel Carceller (PR#975)
- Change CI to use Clang22 instead of Clang19, soon unsupported
-
2026-06-18 Juan Miguel Carceller (PR#972)
- Remove the deprecated getter without "get" before the name
-
2026-06-09 arnavdham (PR#966)
- Lay the initial foundation for the Apache Arrow backend by implementing compile-time schema mapper generation within the python code generator engine.
- Add support for translating YAML-defined Event Data Models (EDMs) into Apache Arrow schema structures, including support for primitives, components, relations, and frame parameters.
-
2026-06-02 Thomas Madlener (PR#955)
- Add tests that run I/O on multiple threads
-
2026-04-17 Thomas Madlener (PR#963)
- Pin all used github actions to the commit that corresponds to the latest released tag
-
2026-04-17 Juan Miguel Carceller (PR#957)
- Add dependabot
-
2026-04-17 Juan Miguel Carceller (PR#956)
- Add help to json-to-yaml, reduce unexpectedness
-
2026-03-24 Thomas Madlener (PR#946)
- Make many of the reader and writer interfaces accept
std::string_viewarguments instead ofconst std::string&for categories, etc. to be more overall more consistent and to avoid having to dostring_viewtostringconversions on the user side (see also #945).
- Make many of the reader and writer interfaces accept
-
2026-03-17 Juan Miguel Carceller (PR#947)
- Use
__LINE__instead of__COUNTER__since it is standard C++. This would only be problematic if the macro where they are used would happen multiple times in the same line, but since this is only being used in a .cc file and not in headers it should be safe. - Make Catch2 headers be part of the system include directories so that warnings from Catch2 are silenced when it is coming from the stack or the system
- Use
-
2026-03-17 Juan Miguel Carceller (PR#944)
- Make
CollectionReadBuffersmovable only. This means theCollectionReadBuffersown their data unless they give ownership away. - Cleanup the rest of the code, use
std::moveinstead of copying (not allowed now), simplify a few cleanup steps and make sure everything is deleted and set tonullptrin a few places like inLinkCollectionImpl
- Make
-
2026-03-16 Juan Miguel Carceller (PR#948)
- Fix several issues that were uncovered when running CI. The issues were there before, we just don't have changes that make loading a symbol in other libraries not work anymore.
- Because FCCAnalyses provides
ROOT::VecOps::RVec<std::vector<int>>(and the same forfloatanddouble) https://github.com/HEP-FCC/FCCAnalyses/blob/dabdfaf92f716373dc000509766bdd827dc07392/analyzers/dataframe/FCCAnalyses/LinkDef.h#L35, ROOT will load FCCAnalyses (libFCCAnalyses) that will load EDM4hep in the stack which has a symbol that does not exist anymore because it is being changed in this PR. The changes inrds_selection.xmlprovideROOT::VecOps::RVec<std::vector<int>> - There are multiple changes not to use the namespace
edm4hep(and useedm4hepLikeinstead) in tests since this will also trigger loadinglibedm4hepand not finding a symbol. - Passing
DL_PATHSto Catch2 seems to be needed on Ubuntu to make sure the builtlibpodiois found instead of the one from the stack.
- Because FCCAnalyses provides
- Fix several issues that were uncovered when running CI. The issues were there before, we just don't have changes that make loading a symbol in other libraries not work anymore.
-
2026-03-09 Juan Miguel Carceller (PR#943)
- Add the defifinitions for the move constructor and assignment operator.
ROOTWritercan not be movable because it has aTFilethat is not movable. - Remove a few useless comments
- Add the defifinitions for the move constructor and assignment operator.
-
2026-03-09 Juan Miguel Carceller (PR#942)
- Rename
CMAKE_{SOURCE,BIN}_DIRtoPROJECT_{SOURCE,BIN}_DIR
- Rename
-
2026-03-05 Juan Miguel Carceller (PR#940)
- Prefer to add suppressions instead of ignoring tests with sanitizers. This allows to known where issues come from, avoid introducing issues in tests that are being ignored and possibly make it easier to add new tests since it is possible the suppression they need (if any) is already there.
-
2026-02-25 Andre Sailer (PR#937)
- Contributing: add note about usage of LLMs and PR review time expectation.
- Contributing: update git workflow, drop dead link, specifically mention rebase
-
2026-02-25 Thomas Madlener (PR#936)
- Introduce explicitly named
getLinkedFromandgetLinkedTomethods to theLinkNavigatorfor handling links with the sameFromTandToT. Deprecated the tag-dipatchedgetLinkedversions and also thepodio::Return[From|To]tags. Behavior or links with differentFromTandToTis not affected!.
- Introduce explicitly named
-
2026-02-23 Thomas Madlener (PR#919)
- Add dedicated overloads for
Mutablehandles toLinkNavigator::getLinkedto make python bindings also work withMutablehandles.
- Add dedicated overloads for
-
2026-02-16 Juan Miguel Carceller (PR#934)
- Use Clang 19 instead of 16 in CI, since these builds are going to be revomed
-
2026-02-04 Thomas Madlener (PR#923)
- Add a
fromfactory function to create collections from ranges of (mutable or immutable) handles
- Add a
-
2026-02-03 Thomas Madlener (PR#905)
- Add a few cmake presets to put common build options together. Use
cmake --list-presetsto see the available presets. - Use presets in CI workflows to reduce some of the duplication that is currently present
- Add a few cmake presets to put common build options together. Use
-
2026-01-19 Mateusz Jakub Fila (PR#927)
- find
Python3infind_dependency
- find
-
2026-01-19 Mateusz Jakub Fila (PR#926)
- Include
Python.hbefore standard headers
- Include
-
2026-01-16 Juan Miguel Carceller (PR#924)
- Remove extra
>in RNTupleWriter.cc
- Remove extra
-
2026-01-15 Thomas Madlener (PR#922)
- Make the
LinkCollectionIteratorT::value_typean immutableLinkalways for consistency with the behavior of generated collection iterators.
- Make the