Skip to content

v01-08

Choose a tag to compare

@tmadlener tmadlener released this 28 Aug 12:31
· 29 commits to master since this release

v01-08

  • 2026-08-27 Juan Miguel Carceller (PR#1012)

    • Detach the metadata TTree from the output TFile before closing the file.
  • 2026-08-27 Thomas Madlener (PR#1011)

    • Add a LinkCollection::create overload that takes the objects that should be linked to facilitate creating links.
  • 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::map containers and not only std::unordered_map.
    • Add a test for ObjectID ordering and std::map usage.
  • 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_ARROW from Arrow to PodioArrow to 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.
  • 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 convertTableToFrame API to reconstruct podio::Frame objects from a specific row of an Arrow Table.
    • Add support for reconstructing complex types (collections, vector members, relations, subsets) and GenericParameters.
  • 2026-07-30 Juan Miguel Carceller (PR#995)

    • Look for lz4 quietly when looking for Arrow to avoid a warning when lz4 doesn't provide a CMake config file.
  • 2026-07-29 Juan Miguel Carceller (PR#994)

    • Export the Arrow target selected while configuring podio, otherwise PODIO_ARROW_TARGET will be empty and this is used inside the macro in target_link_libraries, making downstream targets not link to Arrow
  • 2026-07-27 Thomas Madlener (PR#954)

    • Extract common functionality related to file versions and datamodels into a ReaderCommon utility class.
  • 2026-07-26 arnavdham (PR#990)

    • Cleans up the package configuration by exporting only the prefixed variables (PODIO_ENABLE_SIO and PODIO_ENABLE_ARROW) and check both the prefix and the unprefixed ones.
  • 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_ptr that can be destroyed)
    • Add a few brackets { and } instead of having one-line ifs.
  • 2026-07-20 Juan Miguel Carceller (PR#989)

  • 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 frameToTable conversion layer to map PODIO Frames and collection data types to Apache Arrow Tables, where each Frame maps to a single row.
    • Add thread-safe global registries (ArrowTypeRegistry and ArrowConverterRegistry) for mapping PODIO collections to Arrow data types and serialization functions.
    • Introduce ArrowFrameConverter::convertFrameToTable to translate regular collections, subset collections, and frame parameters.
    • Update code generation with ArrowMapper templates and Jinja2 macros to dynamically generate schema definitions and register serializers for custom EDMs, including support for complex types, fixed-size arrays, and relationships.
  • 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 TFileMerger with ROOT files in podio-merge-files to speed it up and add code to make sure the metadata is set correctly. Keep the old behaviour for the other backends (SIO only).
  • 2026-07-01 Juan Miguel Carceller (PR#984)

    • Add a test for the unused method getN in GenericParameters
  • 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 CollectionReadBuffers for reading and a CollectionWriteBuffers for writing
  • 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_view arguments instead of const std::string& for categories, etc. to be more overall more consistent and to avoid having to do string_view to string conversions on the user side (see also #945).
  • 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
  • 2026-03-17 Juan Miguel Carceller (PR#944)

    • Make CollectionReadBuffers movable only. This means the CollectionReadBuffers own their data unless they give ownership away.
    • Cleanup the rest of the code, use std::move instead of copying (not allowed now), simplify a few cleanup steps and make sure everything is deleted and set to nullptr in a few places like in LinkCollectionImpl
  • 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 for float and double) 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 in rds_selection.xml provide ROOT::VecOps::RVec<std::vector<int>>
      • There are multiple changes not to use the namespace edm4hep (and use edm4hepLike instead) in tests since this will also trigger loading libedm4hep and not finding a symbol.
      • Passing DL_PATHS to Catch2 seems to be needed on Ubuntu to make sure the built libpodio is found instead of the one from the stack.
  • 2026-03-09 Juan Miguel Carceller (PR#943)

    • Add the defifinitions for the move constructor and assignment operator.
      ROOTWriter can not be movable because it has a TFile that is not movable.
    • Remove a few useless comments
  • 2026-03-09 Juan Miguel Carceller (PR#942)

    • Rename CMAKE_{SOURCE,BIN}_DIR to PROJECT_{SOURCE,BIN}_DIR
  • 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 getLinkedFrom and getLinkedTo methods to the LinkNavigator for handling links with the same FromT and ToT. Deprecated the tag-dipatched getLinked versions and also the podio::Return[From|To] tags. Behavior or links with different FromT and ToT is not affected!.
  • 2026-02-23 Thomas Madlener (PR#919)

    • Add dedicated overloads for Mutable handles to LinkNavigator::getLinked to make python bindings also work with Mutable handles.
  • 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 from factory function to create collections from ranges of (mutable or immutable) handles
  • 2026-02-03 Thomas Madlener (PR#905)

    • Add a few cmake presets to put common build options together. Use cmake --list-presets to see the available presets.
    • Use presets in CI workflows to reduce some of the duplication that is currently present
  • 2026-01-19 Mateusz Jakub Fila (PR#927)

    • find Python3 in find_dependency
  • 2026-01-19 Mateusz Jakub Fila (PR#926)

    • Include Python.h before standard headers
  • 2026-01-16 Juan Miguel Carceller (PR#924)

    • Remove extra > in RNTupleWriter.cc
  • 2026-01-15 Thomas Madlener (PR#922)

    • Make the LinkCollectionIteratorT::value_type an immutable Link always for consistency with the behavior of generated collection iterators.