Skip to content

Releases: AIDASoft/podio

v01-01

20 Sep 09:01
Compare
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
Compare
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
Compare
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
Compare
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.

v00-17-04

15 Dec 09:10
Compare
Choose a tag to compare

v00-17-04

  • 2023-12-14 tmadlener (PR#527)

    • Split the ClassGenerator into a base class (mixin) and two specific c++ and julia code generators that only deal with their language specific needs.
      • Instantiate and configure the correct reader in the podio_class_generator.py main script depending on the desired language.
    • Slightly cleanup the MemberVariable to declutter its __init__ method a bit.
  • 2023-12-13 tmadlener (PR#530)

    • Remove the reading of the deprecated old-style format of component definitions in the YAML files.
  • 2023-12-13 tmadlener (PR#485)

    • Remove the deprecated EventStore functionality as announced in #429
  • 2023-12-12 tmadlener (PR#529)

    • Switch the relation range tests to use Frame based I/O.
  • 2023-12-06 tmadlener (PR#526)

    • Switch the edm4hep workflows to an LCG stack with a recent enough version of CMake. Necessary after key4hep/EDM4hep#235
  • 2023-12-05 jmcarcell (PR#523)

    • Remove comment with file name and line number. It's very unlikely it remains up to date when either the name or the content of the files changes
  • 2023-12-04 jmcarcell (PR#521)

    • Do not import ROOT when using podio-dump --help, otherwise it can take a while depending on the system only to print the help.
  • 2023-12-04 tmadlener (PR#514)

    • Introduce the MaybeSharedPtr to manage the Obj* in the user facing handle classes.
      • This splits the control block and the managed object into two distinct entities with potentially different lifetimes, which allows to fix #174 and #492.
      • This increases the size of the user facing handle classes by a factor two, since they are now effectively two pointers instead of one, even if the control block will not be initialized in case a handle is obtained from a collection.
    • Remove the ObjBase base class and make the ObjectID a member of the Obj classes.
    • Make the user facing handle class constructors from an Obj* private as users will not have access to raw Obj* in any case.
      • Introduce a static makeEmpty method for the generated classes in order to create an empty handle, which is also used internally to handle unpersisted relations.
    • Enable more existing test cases in sanitizer workflows now that it has become possible to do so.
  • 2023-12-04 Ananya Gupta (PR#473)

    • Added Julia code generation support in the existing Python interface.
    • Implemented a new design structure for generated Julia code.
    • Added default parameters in constructor definitions with support for Abstract types (for builtins).
    • Created _sort_components_and_datatypes function to perform topological sort on components and datatypes.
    • Created _has_static_arrays_import to check for the need of using Static Arrays in the generated julia code.
    • Added --lang (-l) programming language argument to specify the programming language for code generation, current choices: cpp and julia, default: cpp.
    • Added --upstream-edm code generation support for julia.
    • Added tests in the unit test suite, covering the Julia code generation of the example data models.
    • Added documentation for julia code generation.
    • Added ENABLE_JULIA toggle option. By default it is OFF.
  • 2023-12-01 jmcarcell (PR#520)

    • Add an error message when there is an std::bad_function_call, which currently shows
      a stacktrace and is quite uninformative.
  • 2023-12-01 tmadlener (PR#519)

    • Make generated member getter functions return by value for builtin types. Keep return by const reference for all other types. Fixes #518
  • 2023-12-01 tmadlener (PR#488)

    • Add python bindings for the RNTuple reader and writer
    • Make podio-dump understand RNTuple based files
    • Fix missing storage of datamodel definitions for RNTuple based files

v00-17-03

16 Nov 08:16
Compare
Choose a tag to compare

v00-17-03

  • 2023-11-14 tmadlener (PR#513)
    • Introduce checks in ROOTFrameWriter::writeFrame and ROOTNTupleWriter::writeFrame that ensure consistent contents for all Frames of a given category. If inconsistent contents are found an exception is thrown. Before these changes this might lead to a crash or to unreadable files. Fixes #382
    • Refactor ROOTNTupleWriter internals to have only one map that keeps track of categories instead of two maps and a set that need to be kept consistent.

v00-17-02

08 Nov 16:10
Compare
Choose a tag to compare

v00-17-02

  • 2023-11-08 jmcarcell (PR#511)

    • Decouple generation tools and files from the rest of the podio python files by creating a new folder called podio_gen. This is a transparent change for users that only use the generator script.
      • This makes the configuration / generation times negligible again, because we don't load libraries unnecessarily any longer for the generation.
    • Simplify the python bindings (podio) __init__.py and remove the test_utils from it.
    • Move the tests for writing frames in python to the tests folder, where they belong and also test the SIO python writer.
  • 2023-11-06 jmcarcell (PR#510)

    • Fix legacy tests; an extra argument was being passed and default in the .cpp file example_frame.root was being used which (almost) always exists (because there is a another test creating it) so it was hard to notice.
  • 2023-11-06 jmcarcell (PR#509)

    • Add an option for using clang format and set it to off by default. It is significantly slower to run cmake with this option on.
  • 2023-11-02 jmcarcell (PR#508)

    • Use the cmake ExternalData module to manage test data. This lets cmake take care of downloading the tests by hash so they can be version controlled. In addition, it's possible to set up a local store using -DExternalData_OBJECT_STORES=/path/to/store and it will download the test files there if they are not there but otherwise use them from there, so building from scratch won't download the test files again.
  • 2023-10-16 jmcarcell (PR#507)

    • Copy .clang-format to the dumpmodel test directory and fix some tests when the build directory is not a subdirectory of the main directory. In some tests clang-format will try to find a .clang-format looking in the directories above and if it doesn't exist it will format files differently and some tests will fail.

v00-17-01

13 Oct 08:52
Compare
Choose a tag to compare

v00-17-01

  • 2023-10-12 tmadlener (PR#505)

    • Bump the pylint version for CI to 2.17.7
  • 2023-10-11 tmadlener (PR#502)

    • Add a deleteBuffers function that is populated at generation time to the CollectionReadBuffers to make it possible to dispose of unconsumed buffers. This fixes the main leaks described in #500
    • Make the ROOTFrameData clean up all unconsumed buffers at desctruction.
    • Make sure to delete buffers that are no longer necessary in the CollectionData constructor. This fixes some more leaks described in #500
  • 2023-10-08 Wouter Deconinck (PR#503)

    • Install podio-vis
  • 2023-10-04 jmcarcell (PR#497)

    • Move podio_PYTHON_DIR to the top level CMakeLists so that it is set even when BUILD_TESTING is off
  • 2023-10-02 jmcarcell (PR#496)

    • Add an operator != to fix negative comparisons since after #493 now id() returns a podioObjectID
  • 2023-09-29 tmadlener (PR#493)

    • Make [Mutable]Object::id() return a podio::ObjectID instead of unsigned, since the latter has become useless with #412. Fixes #438
    • Add an operator<<(std::ostream&) for podio::ObjectID

v00-17

25 Sep 06:35
Compare
Choose a tag to compare

v00-17

Barring any unforeseen issues this will be the last pre-release series.

We plan to no longer change the file layouts, especially the default ROOT (TTree based) one. Please let us know if you have any issue that you would still like to be addressed before a version 1.0 release.

Changes w.r.t. v00-16-05

  • 2023-09-22 Juraj Smiesko (PR#491)

    • podio-dump: print warning if requested entry not present in the file
  • 2023-09-22 tmadlener (PR#490)

    • Fix bugs in python imports when podio is built without SIO support. Fixes #489
  • 2023-09-22 tmadlener (PR#486)

    • Make sure to initialize ObjectIDs to untracked to properly track whether they have been added to a Frame or not
    • Change CollectionIDTable interfaces of name and collectionID to return optional to signal whether a collection (ID) is known to the table. This is a breaking change if you use the CollectionIDTable!
      • Avoids having to do the lookup twice to check existence and a subsequent retrieval
    • Fix bug of overly shared CollectionIDTable in ROOTNTupleReader that was uncovered by the CollectionIDTable switch to optional returns.
    • Switch tests from EventStore to Frame based I/O.
    • Fix bug in Frame based I/O that lead to crashes when trying to resolve relations to unpersisted objects.
  • 2023-09-18 tmadlener (PR#484)

    • Make the podio python bindings import structure "feel more pythonic"
  • 2023-09-15 Benedikt Hegner (PR#483)

    • Clarify error message in case of not implemented schema changes
  • 2023-09-15 Benedikt Hegner (PR#482)

    • rename CMake macro createBuffers into create_buffers
  • 2023-09-13 jmcarcell (PR#481)

    • Rename the cmake executable or target unittest to unittest_podio, to avoid possible collisions since the unittest name is relatively common
  • 2023-09-13 Benedikt Hegner (PR#480)

    • Move the code generation of buffers into the 'create_buffers' macro
  • 2023-09-13 Thomas Madlener (PR#472)

    • Allow comparison of data schemata across versions
    • Provide syntax to clarify user intentions in schema evolution
    • Provide schema evolution implementation based on ROOT backend
    • Include infrastructure for future support for schema evolution in other backends
    • Documentation for schema evolution functionality
  • 2023-09-11 tmadlener (PR#477)

    • Use nlohmann/json_fwd.hpp in headers to reduce unnecessary template instantiations. Fixes #475
  • 2023-09-08 tmadlener (PR#478)

    • Add empty method to CollectionBase
    • Add operator== to the collection iterators
  • 2023-09-08 Dmitry Kalinkin (PR#465)

    • Introduce member typedefs to the user facing classes.
      • Object's collection type can now be referenced as Object::collection_type. Conversely, the object type is reachable as ObjectCollection::value_type. The mutable objects can be reached via Object::mutable_type.
  • 2023-08-30 tmadlener (PR#471)

    • Initialize the branch names to be index based for reading (i.e. legacy behavior) for all releases of the v00-16 series.
  • 2023-08-22 Andre Sailer (PR#469)

    • Tests: update required catch2 version to 3.4 for builds with c++20
    • CI: use clang16 on el9 (alma9), instead of clang12 on cs7, using c++20
    • CI: disable key4hep-release-based tests (tabulate available)
  • 2023-08-22 Benedikt Hegner (PR#445)

    • Allow to specify units as part of the datamodel definition
  • 2023-07-26 tmadlener (PR#463)

    • Make sure to only access vector member buffers of collections of datatypes with VectorMembers if they actually exist. This is necessary to make subset collections of such datatypes work in I/O. Fixes #462
    • Add a test that reproduces the original issue and is fixed by this.
  • 2023-07-25 tmadlener (PR#461)

    • Make sure the ROOTFrameReader on the master branch can read v00-16-06 files
    • Add v00-16-06 to the legacy versions that are tested
  • 2023-07-25 tmadlener (PR#447)

    • Add a python wrapper around the different available Frame writers.
    • Add a put method to the Frame wrapper that allows to add collections to the Frame without having to explicitly use cppyy.gbl.std.move. Fixes #432
    • Add test cases that write via python bindings and read via c++.
  • 2023-07-20 tmadlener (PR#457)

    • Simplify the test setup for SIO in CMake and make it explicit on the ENABLE_SIO option rather than on the presence of targets.
  • 2023-07-18 jmcarcell (PR#456)

    • Cache podio_PYTHON_DIR
  • 2023-07-18 jmcarcell (PR#455)

    • Rename CMAKE_BINARY_DIR to PROJECT_BINARY_DIR
  • 2023-07-18 tmadlener (PR#439)

    • Introduce the FrameCategories.h header that puts a few of the conventions and otherwise hardcoded strings into variables / functions.
  • 2023-07-14 jmcarcell (PR#454)

    • Rename CMAKE_{SOURCE,BIN}_DIR to PROJECT_{SOURCE,BIN}_DIR
  • 2023-07-14 tmadlener (PR#452)

    • Extend the pre-processor condition for the to_json functionality to not be visible in rootcling or the root interpreter. Fixes #435
  • 2023-07-13 Benedikt Hegner (PR#450)

    • Add optional description and author fields to component definition
  • 2023-07-13 tmadlener (PR#449)

    • Fix the pre-commit workflow by making it run on top of the key4hep nightlies that come with a recent enough root version to be able to work with the RNTuple addition (#395)
    • Fix a few minor complaints from newer versions of clang-format, clang-tidy and pylint
    • Enable building the RNTuple backend for more workflows (anything that comes with a new enough ROOT essentially).
  • 2023-07-13 tmadlener (PR#448)

    • Remove the lcio datalayout which has been untouched (and unbuilt) for quite a few years.
  • 2023-07-13 tmadlener (PR#446)

    • Make calling finish for the SIOFrameWriter non-mandatory. See #442 for other related changes.
  • 2023-07-11 jmcarcell (PR#442)

    • Allow not calling finish() when using the writers
  • 2023-07-11 jmcarcell (PR#395)

    • Add support for the new RNTuple format by adding a writer, reader and tests.
  • 2023-06-30 Ananya Gupta (PR#437)

    • Modified parse function definition to incorporate missing description in member definition error message. Fixes #436
  • 2023-06-27 Thomas Madlener (PR#413)

    • Introduce podio::SchemaEvolution that can hold schema evolution functions and that offers an evolveBuffers method that does the schema evolution on these buffers before collections are created.
    • Add hooks in podio::Frame to call this when collections are read from the FrameData.
  • 2023-06-23 tmadlener (PR#434)

    • Properly handle the slightly different branch contents before v00-16-04. Fixes #433
    • Add tests that use the ROOTLegacyReader to actually read the downloaded legacy files
  • 2023-06-15 tmadlener (PR#428)

    • Split the tests directory into several (more or less) topical sub-directories to declutter the main test CMakeLists.txt a bit
    • Move commonly used functionality into cmake/podioTests.cmake (e.g. setting up a test environment)
    • Move python unittests config to the python directory
  • 2023-06-15 tmadlener (PR#427)

    • Delay library loading as long as possible, mainly for quicker responses for --help
    • Add a --version flag for dumping the podio version
    • Display collections and parameters in alphabetical order and automatically adjust column widths to fit contents (using the tabulate package).
  • 2023-06-09 Thomas Madlener (PR#402)

    • Add public static constexpr char* type names to the collections and make the getXXXName() methods return string_views to these strings. This is a breaking change to the interface of the collections if you explicitly rely on them being std::string
      • typeName: the full type name of the collection (returned also by getTypeName)
      • valueTypeName: the (immutable) type name of the objects of the collection (returned by getValueTypeName)
      • dataTypeName: the type name of the data PODs (returned by getDataTypeName)
    • Make unittest environment properly use PODIO_SIOBLOCK_PATH
    • USE_EXTERNAL_CATCH2 now can also be set to AUTO to look for a suitable version of Catch2 before falling back and fetching and building it's own version instead of a hard fail.
  • 2023-...

Read more

v00-16-07

30 Aug 17:37
Compare
Choose a tag to compare

v00-16-07

  • 2023-08-30 Thomas Madlener (PR#470)
    • Backport of #439
    • (Partial) backport of #469 to fix CI for this branch. Removed the RNTuple setup since that is not available here yet.
    • Backport the AUTO configuration option for the cmake USE_EXTERNAL_CATCH2 config parameter