# Changelog ## Version 2.0.0 This is version 2.0.0 of h5, a high-level C++ interface to the hdf5 library. We thank all contributors: Thomas Hahn, Henri Menke, Dylan Simon, Nils Wentzell, Alexander Hampel Find below an itemized list of changes in this release. ### General * Port h5 to c2py + clair and remove any cpp2py references * Add serialization.hpp to h5.hpp * Add additional group methods used to generate c2py/clair bindings * Add hdf5_format_impl specialization for char_buf * Use "Tuple" as a format string for std::pair and std::tuple * Generalize Storable concept * Remove support for numpy versions < 1.17 * Remove unused pybind11 bindings * Add example codes to doc folder and make sure they compile * Use requires instead of H5_REQUIRES macro * Use h5::object instead of h5::group in format functions * Add overloads for write_hdf5_format and assert_hdf5_format without deducing storage type * Generalize std::map interface to allow for aribtrary comparison types * Bug fix in h5::array_interface::get_parent_shape_and_h5_strides * Read complex datasets written by Julia HDF5.jl and h5py that use the standard {r:double, i:double} HDF5 compound type (#13) * Breaking: rename array_view::is_complex to has_cplx_trailing_dim to reflect the trailing-2-dim buffer-layout convention * Support read/write of std::variant as an HDF5 attribute * List allowed alternatives in std::variant read error messages ### doc * Update documentation of python layer * Add Python interface utilities to doxygen * Add FI support notice to README.md ### fix * #28: make compile def H5_VER_GE_113 PUBLIC * Fix complex scalar attribute read: allow non-zero rank ### cmake * Work around issue in FindHDF5 for cmake 3.25 or older * Add cmake workaround for hdf5 version detection when using hdf5 with subversion (#26) * Fix hdf5 linkeage in python layer * Directly use imported targets provided for hdf5 * Guard c2py FetchContent against a duplicate target when built as a sub-project * Disable C++20 module scanning for clair-c2py compatibility * Suppress -Wc2y-extensions / c++26-extension warnings for Clang * Fix target_link_directories to use the directory where the project library is compiled ## Version 1.3.0 This is version 1.3.0 of h5, a high-level C++ interface to the hdf5 library. We thank all contributors: Thomas Hahn, Alexander Hampel, Henri Menke, Olivier Parcollet, Nils Wentzell Find below an itemized list of changes in this release. ### General * Clean up detail namespace to consistently contain implementation details * Improve test coverage and clean up tests * Bug fix in h5::array_interface * Allow arbitrary block sizes in h5::array_interface * Clean up in h5::array_interface * Bug fix in h5::file ctor * Split object.hpp into multiple header files * Remove default copy constructor in group * Allow additional arguments in generic h5::read and h5::write functions * Allow reading of all integer types into Python long without warning * Correct installation of _h5py.wrap.hxx * Add hxx clair include * Add missing include in h5/macros.hpp * Add missing cstdint include in h5/object.hpp, see issue #915 ### doc * Add documentation to the C++ source code files * Remove any sphinx related files and switch to doxygen to generate documentation * Build and deploy documentation with GitHub Actions ### cmake * Use GNUInstallDirs in install commands * Set policy CMP0144 to new * Use CPP2PY_PYTHON_xxx variables instead of PYTHON_xxx ## Version 1.2.0 This is version 1.2.0 of h5, a high-level C++ interface to the hdf5 library. We thank all contributors: Thomas Hahn, Alexander Hampel, Olivier Parcollet, Dylan Simon, Nils Wentzell Find below an itemized list of changes in this release. ### General * Remove redundant std_addons/complex.hpp header * Rename h5::h5_try_read -> h5::try_read * Add concept h5::Storable * Fix issue in previous commit: Use H5_ASSERT over ASSERT macro * Add function write_slice to enable updating part of an existing dataset * Allow to set hyperslab for filespace in h5_read * Extend vector test to cover complex numbers * Use warnings module to issue python warnings * clang-format all source files * Remove warnings * General cleanup ### cmake * Add compiler warnings for IntelLLVM * Update Findsanitizer.cmake to include TSAN and MSAN * Do not build documentation as subproject * Fix FindHDF5 logic for cmake versions >=3.23 * Fix h5::hdf5 interface target for cmake versions 3.20+ ### jenkins * Update packaging Dockerfiles ### fixes * Fix hsize_t for hdf5 versions >=1.13 * Loosen type-check of hsize_t to restore hdf5 1.13 compatibility. Fix #11 * Fix #10: Do not exceed maximum chunk size in h5::array_interface::write * Fix signature of generic h5::read_attribute and h5::write_attribute * Allow reading vector when stored as subgroup with numbered keys * np.int / np.float / np.complex removed ## Version 1.1.0 This is version 1.1.0 of h5, a high-level C++ interface to the hdf5 library. We thank all contributors: Daniel Bauernfeind, Alexander Hampel, Henri Menke, Dylan Simon, Nils Wentzell Find below an itemized list of changes in this release. ### General * Allow creation of softlinks * Fix logic error in test/python/archive.py * Make test on byte buffer less stringent, compare only archive contents for memory files * Minor correction in error msg when constructing HDFArchiveGroup as a new memory file * Add function as_bytes to HDFArchive class and extend the wrapped File class as necessary * Allow creation HDFArchive as a memory-file only * Consistently use std::byte instead of char for memory files * Merge memory file into file class, expose byte constructor to Python + tests * Allow type conversions in h5_read, but issue warning FIX #7 * Allowed custom key class in reading/writing of a map. (#5) * Cleanup unnecessary hdf5.h include in h5_complex test * Minor correction in h5_read doc for array and vector * Consistently use header guards over pragma once ### doc * Add link to reference doc to README.md * Minor doc cleanups for doxygen generation, add Doxyfile and update .gitignore ### cmake * Bump Version number to 1.1.0 * Set CXX standard using target_compile_features * Bump version requirement to 3.13.5 * Provide a namespaced alias for the python modules ## Version 1.0.0 h5 is a high-level C++ interface to the hdf5 library, which * Provides write and read functions for various STL container types * Provides a generic `array_interface` to store and load multi-dimensional arrays * Takes an RAII approach to manage the reference counting. * Comes with Python bindings. This is the initial release for this project.