Skip to content

Releases: AIDASoft/podio

v01-06

23 Oct 10:47

Choose a tag to compare

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::getEntries const since it's also const in the other readers
  • 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)
  • 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 add hasID() to check if a collection has an ID. This allows to find out if frame.get<type>("name") didn't find a collection, since it will return an empty one in this case.
  • 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

v01-05

08 Oct 14:45

Choose a tag to compare

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 XYZData PODs into a v{{ 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.
  • 2025-09-29 Thomas Madlener (PR#852)

    • Make sure using PODIO_SIOBLOCK_PATH works without having LD_LIBRARY_PATH set appropriately.
      • Without this fix the SioBlock libraries also had to be on LD_LIBRARY_PATH for the dynamic loading to work. Now PODIO_SIOBLOCK_PATH is enough.
  • 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 const in a few places
  • 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
  • 2025-09-03 Thomas Madlener (PR#835)

    • Remove an unnecessary depends_on argument from the tests for podio-vis as they do not depend on any other test and all the necessary inputs are part of the source code.
  • 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
  • 2025-08-27 Juan Miguel Carceller (PR#829)

    • Add a podio::UserDataCollectionTypes type list containing all the available user data collection types.
  • 2025-08-26 Mateusz Jakub Fila (PR#826)

    • Fix typo causing error in non-const overload of LinkCollection::at(size_t)
  • 2025-08-26 Mateusz Jakub Fila (PR#824)

    • Add automatic collection subscript pythonization to UserDataCollection and LinkCollection
  • 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 OneToOneRelation to itself. This was previously not possible (but seemingly unused)
  • 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

20 Aug 09:33

Choose a tag to compare

v01-04-01

  • 2025-08-20 Thomas Madlener (PR#818)
    • Backport of #816 (fix for schema evolution check script)

v01-04

14 Aug 09:20

Choose a tag to compare

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, valueTypeName and dataTypeName outside of each collection and UserDataCollection class, 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
  • 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.
  • 2025-07-07 Thomas Madlener (PR#807)

    • Make PODIO_GENERATE_DICTIONARY a thin wrapper around REFLEX_GENERATE_DICTIONARY instead of a re-implementation
  • 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.
  • 2025-06-20 Thomas Madlener (PR#786)

    • Introduce a FrameDataType concept and constrain the Frame constructors with it
  • 2025-06-19 jmcarcell (PR#784)

    • Change the default setting of the generic writer to RNTuple when PODIO_DEFAULT_WRITE_RNTUPLE is set
    • Add a test that writes an RNTuple because PODIO_DEFAULT_WRITE_RNTUPLE is set
    • Since there was no documentation about the readers and writers, add documentation about them and include PODIO_DEFAULT_WRITE_RNTUPLE in it.
  • 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_PATH from the environment to the tests
    • Call k4_local_repo in the key4hep workflow
  • 2025-05-26 jmcarcell (PR#783)

    • Use size_t instead of unsigned int for operator[], at, getID and setID for Link collections, since it is the type used for data type collections and UserDataCollections.
  • 2025-05-20 jmcarcell (PR#781)

    • Fix Unity builds with SIO enabled by giving a variable different names

v01-03

15 May 13:05

Choose a tag to compare

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_DATASOURCE when building with sanitizer (although all the related tests will be ignored)
  • 2025-05-13 jmcarcell (PR#775)

    • Define typeName outside of each object class, in addition to the existing definition inside the class.
  • 2025-05-13 Mateusz Jakub Fila (PR#758)

    • Formalize expected collection interface with a concept
    • Add at and create to UserDataCollection
  • 2025-05-08 jmcarcell (PR#777)
    Clean up the ROOT readers and writers

    • Add const where possible
    • Use functions from std::ranges when possible
    • Do not use new and delete when 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 struct instead of using a tuple to 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_metadata TTree / Model as a vector<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 CollectionIDTable is no longer written separately.
    • This is a breaking change in the format if you rely on reading the metadata about the stored collections.
  • 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_builtin member in python, that excludes containers of builtin types and datamodel types.
    • Add const when possible for other function parameters
    • Update the documentation for the signature member.
  • 2025-04-25 jmcarcell (PR#771)

    • Remove double locking in prepareForWrite; acquire the lock only once
  • 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 Experimental namespace in 6.36.
  • 2025-04-15 Thomas Madlener (PR#764)

    • Use ccache in CI to speed up workflows
    • Add more workflows based on Key4hep
    • Cancel concurrent workflows for changes pushed before they finished
  • 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.h additional lists with all the data and link types
    • Add tests using this functionality
  • 2025-04-08 jmcarcell (PR#762)

    • Fix podio::Link::typeName that was wrongly including "Collection"
  • 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 typeName members to std::string_view. Add utility to concatenate std::string_views at compile time.
    • Add typeName static member to link collections. typeName can be checked at compilation time.
    • Deprecate linkCollTypeName and linkTypeName helper functions.
  • 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
  • 2025-03-26 Mateusz Jakub Fila (PR#754)

    • Add front, back, cbegin, cend and operator bool to the RelationRange so it has all the methods from std::ranges::view_interface
  • 2025-03-25 Mateusz Jakub Fila (PR#752)

    • Update max_size reported by collections to include limit due to ObjectID index type
  • 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 createBuffer have a different name for each collection.
  • 2025-03-07 Thomas Madlener (PR#745)

    • Fix the (potential) import error for podio.version.build_version by not relying on ROOTs JIT, but rather parsing the python __version__ into the correct type.
  • 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::fill will most likely not compile instead compiling but giving wrong results)
  • 2025-02-28 Mateusz Jakub Fila (PR#738)

    • Add std::hash for podio datatype objects, interfaces and links. Datatypes, interfaces and links can be used in unordered associative containers such as std::unordered_set or std::unordered_map
  • 2025-02-28 Mateusz Jakub Fila (PR#720)

    • Collection iterators fulfill forward_iterator, bidirectional_iterator and random_access_iteratorconcepts. The collections can be used with more categories of range algorithms - up to random_access_range, for example std::adjacent_find, std::lower_bound, std::fold_right, and more views like std::ranges::views::reverse.
    • LinkCollection and its iterators fulfill concepts up to random_access_range and random_access_iterator.
    • Add reverse iterator methods to Collections, LinkCollection and UserDataCollection.
    • CollectionIterators of generated datamodels now define operator<=> instead of operator!=. This will require at least c++20 to compile, but should not affect existing behavior.
  • 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 allow std::unordered_map<podio::ObjectID, T>
  • 2025-02-18 Mateusz Jakub Fila (PR#737)

    • Replace sizeof(T) == 0 with always_false to fail static assertions in constexpr if
  • 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 makeReader and CreateDataSource. Added standalone helper podio::utilities::expand_globto resolve globs.
    • Added passing a list of files to get_reader
  • 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 isValid works the same for LinkCollection as it does for other collections
    • Make sure to s...
Read more

v01-02

18 Dec 11:58

Choose a tag to compare

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.py detects and reports on
      • Addition / removal of VectorMembers, OneToOneRelations and OneToManyRelations
    • 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
  • 2024-12-09 jmcarcell (PR#716)

    • Mark the collection destructor with override and remove #include <array>
  • 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 LinkNavigator utility class that facilitates the lookup of linked objects
  • 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 a vector<float>
  • 2024-12-02 tmadlener (PR#691)

    • Introduce a new links category into the YAML grammar to automate the declaration of Links.
  • 2024-11-20 Thomas Madlener (PR#709)

    • Remove an option from .clang-tidy that has been removed from newer versions of clang-tidy (>= 18)
  • 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
  • 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 makeReader still recognizes files with RNTuple inside after they have been marked non-experimental in ROOT.
  • 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 GenericParameters where 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.
  • 2024-10-17 Thomas Madlener (PR#697)

    • Temporarily set the JULIA_DEPOT_PATH to a writable directory to make CI pass.
  • 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 and UserDataCollections and in SIOBlockUserData
    • Enable some more complete I/O tests using SIO and RNTuple
  • 2024-10-15 jmcarcell (PR#694)

    • Remove unnecessary inline in std_interoperability.cpp since the variables are only used in that file.
  • 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_ptr to manage the OneToOneRelation pointers in the Obj classes.
  • 2024-09-26 ANUSHKA SAXENA (PR#685)

    • Add advanced CMake usage for PODIO_GENERATE_DATAMODEL to docs
  • 2024-09-24 tmadlener (PR#688)

    • Make sure that we pick up the correct version of pylint in the CI for pre-commit.
  • 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_types member type for interface types and add a type helper to check whether a type is an interface type
  • 2024-09-23 tmadlener (PR#687)

    • Make sure the ROOT_INCLUDE_PATH in the test environment points to the correct place.
  • 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

20 Sep 09:01

Choose a tag to compare

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 exposing podio::version::Version also in python.
    • Remove the version_as_str method again, since that is handled by Version now.
  • 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.
  • 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.
  • 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 for podio-vis functionality in the documentation build process.
  • 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 an RDataSource for working with podio (generated EDM) files and collections. This RDataSource exposes the podio collections directly as columns for RDataFrames. We consider this fairly stable, but still in early stages, there might still be some (breaking) changes to this
  • 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 correct PYTHONPATH
  • 2024-07-31 tmadlener (PR#649)

    • Introduce a thin wrapper script around clang-tidy for usage in pre-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.
  • 2024-07-25 tmadlener (PR#648)

    • Add docstrings to the Reader and Writer interface classes
    • Make sure that makeReader throws an exception if multiple SIO files are passed (see #647)
  • 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
  • 2024-07-23 jmcarcell (PR#645)

    • Fix duplicated includes in generated datamodels when ExtraCode includes are done via <>.
  • 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 from XXXXXXXi to XXXXXXXX|i (i.e. adding a separator between the hex collection ID and the index)
  • 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

25 Jun 09:54

Choose a tag to compare

v01-00-01

  • 2024-06-24 tmadlener (PR#634)

    • Bump CI runners to run on ubuntu-latest
  • 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 (possibly nullptr) pointer
      • Remove if - else check and use implicit conversion of pointer to bool
  • 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

20 Jun 07:45

Choose a tag to compare

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.
  • 2024-06-11 tmadlener (PR#623)

    • Move the implementation of ROOTFrameData member functions into a separate cc file.
  • 2024-06-11 tmadlener (PR#618)

    • Fix minor issues with the Reader and Writer 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
  • 2024-06-11 tmadlener (PR#614)

    • Refactor the RNTupleWriter internals a bit and reduce some code duplication between the RNTupleWriter and the ROOTWriter
    • Add getKeys and getValues methods to GenericParameters
    • Remove the CollectionBranches.h header and move all root related helpers into utilities/RootHelpers.h
  • 2024-06-10 tmadlener (PR#621)

    • Make GenericParameters::print const-correct to allow proper usage
  • 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 aliases size_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 return std::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 and getValue functions to just set and get. This is also a breaking change, but as far as we are aware the GenericParameters are only used internally in podio.
    • Make the Frame::getParameter also return this std::optional. This is a breaking change that might require adaptation of existing code
  • 2024-06-05 tmadlener (PR#608)

    • Add python bindings for the Frame::getName functionality introduced in #586
  • 2024-06-04 jmcarcell (PR#612)

    • Fix Python->Python3 when PODIO_RELAX_PYVER is ON
  • 2024-06-04 jmcarcell (PR#609)

    • Add a parameter cloneRelations for the clone method of the user facing handle classes to be able to clone without the relation information.
  • 2024-06-04 Benedikt Hegner (PR#607)

    • Add documentation for CMake macros
  • 2024-06-04 tmadlener (PR#602)

  • 2024-06-04 Dmitry Kalinkin (PR#599)

    • The Python library is installed to lib/python3.XX/site-packages instead of python by default. This is a more standard prefix for python packages
      • Use the podio_PYTHON_INSTALLDIR cmake variable to change this.
    • Move python setup and compatibility checks with ROOT python version into a dedicated cmake macro (podio_python_setup)
  • 2024-06-04 tmadlener (PR#595)

    • Deprecate the getValue method in favor of the as method for generated interface types.
  • 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 using gcc13 and clang16 as well as bumping the OS to EL9. Build RNTuple by default
    • Update the Ubuntu based workflows to run on ubuntu 22.04
  • 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.
  • 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).
  • 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).
  • 2024-04-03 tmadlener (PR#575)

    • Make sure that the as_type argument is respected in Frame.put_parameter also for lists of doubles / floats.
    • Fix test to actually check for this.
  • 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
    • Update Doxyfile to have no warnings with newer doxygen versions
  • 2024-03-19 Mateusz Jakub Fila ([PR#571](https://github.com/AIDASoft/podio/pull/...

Read more

v00-99

06 Feb 16:11

Choose a tag to compare

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> and vector<Component> into the dictionaries to allow for better interoperability with RNTuple.
      • See #464 for some related discussion.
  • 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 and std::set).
  • 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 deprecated EventStore 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.
  • 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 the RNTupleReader as all the necessary information is also available from metadata that we carry around in any case.
  • 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
  • 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 in OneToOneRelations and in OneToManyRelations.
      • interfaces need to provide a list of types which they interface. Other types cannot be used with them.
  • 2024-01-18 Mateusz Jakub Fila (PR#542)

    • Fixed typos in documentation and comments, updated .gitignore
  • 2024-01-18 jmcarcell (PR#540)

  • 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++
  • 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 and TimedWriter classes in #485
  • 2023-12-15 tmadlener (PR#531)

    • Remove the last few deprecated accessors from GenericParameters.