From 355ff59f7798729b77c63daf7004bf0df8689c38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 10 Dec 2025 10:55:32 +0100 Subject: [PATCH 01/10] Steal changelog from 0.16.1 --- CHANGELOG.rst | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f02069f097..f37d7f0cb1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,16 +3,40 @@ Changelog ========= -0.16.0 +0.16.1 ------ +**Date:** 2025-01-15 -Changes to "0.15.0" +New Backends, Extension, Perf. & Memory + +This is the 0.16.0 release but with internal version bumps where they were missing. + +Changes to "0.16.0" ^^^^^^^^^^^^^^^^^^^ +Bug Fixes +""""""""" + +- HDF5: Delete and re-create attribute when overwriting with diff. type #1697 +- TOUCH IOTask: Avoid setting files as dirty in non-write modes #1704 +- Fix CMake variables for controlling internal dependencies #1678 +- Bump toml11 dependency to ``v4.2.0`` by default #1679 +- Set ``PYBIND11_FINDPYTHON=ON`` #1684 +- Properly check for empty ``HDF5_VERSION`` in CMake #1702 +- Fix ICX build #1690 +- Explicitly specify ADIOS2 components in openPMDConfig.cmake #1693 +- Example 12: Use ``ULONG`` for particle patches #1710 + Other """"" -- ADIOS2: require version 2.9.0 #1711 +- Replace deprecated Python unittest API call #1681 +- Remove ``mpirun_workaround.sh`` #1698 +- CI: Upgrade appleclang14 build to MacOS 13 #1703 +- Docs: + + - Fix Shipped Internally #1682 + - Fix leftover ADIOS2 mentions #1683 0.16.0 ------ From 28f6b19941bcfef61e9aa29b405d55ae5ae8d1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 10 Dec 2025 10:57:33 +0100 Subject: [PATCH 02/10] Remove dev label from version --- CITATION.cff | 2 +- docs/source/conf.py | 2 +- include/openPMD/version.hpp | 2 +- setup.py | 2 +- test/SerialIOTest.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 9504dca156..4dec898e1b 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -37,7 +37,7 @@ contact: orcid: https://orcid.org/0000-0003-1943-7141 email: axelhuebl@lbl.gov title: "openPMD-api: C++ & Python API for Scientific I/O with openPMD" -version: 0.17.0-dev +version: 0.17.0 repository-code: https://github.com/openPMD/openPMD-api doi: 10.14278/rodare.27 license: LGPL-3.0-or-later diff --git a/docs/source/conf.py b/docs/source/conf.py index 553f0f5b9e..b43a175ea1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -93,7 +93,7 @@ # The short X.Y version. version = u'0.17.0' # The full version, including alpha/beta/rc tags. -release = u'0.17.0-dev' +release = u'0.17.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/include/openPMD/version.hpp b/include/openPMD/version.hpp index 1e02337e97..af650df8e5 100644 --- a/include/openPMD/version.hpp +++ b/include/openPMD/version.hpp @@ -30,7 +30,7 @@ #define OPENPMDAPI_VERSION_MAJOR 0 #define OPENPMDAPI_VERSION_MINOR 17 #define OPENPMDAPI_VERSION_PATCH 0 -#define OPENPMDAPI_VERSION_LABEL "dev" +#define OPENPMDAPI_VERSION_LABEL "" /** @} */ /** maximum supported version of the openPMD standard (read & write, diff --git a/setup.py b/setup.py index 644b8e7545..4351d3f015 100644 --- a/setup.py +++ b/setup.py @@ -181,7 +181,7 @@ def build_extension(self, ext): setup( name='openPMD-api', # note PEP-440 syntax: x.y.zaN but x.y.z.devN - version='0.17.0.dev', + version='0.17.0', author='Axel Huebl, Franz Poeschel, Fabian Koller, Junmin Gu', author_email='axelhuebl@lbl.gov, f.poeschel@hzdr.de', maintainer='Axel Huebl', diff --git a/test/SerialIOTest.cpp b/test/SerialIOTest.cpp index 77e1741f9c..21a6600a14 100644 --- a/test/SerialIOTest.cpp +++ b/test/SerialIOTest.cpp @@ -6617,7 +6617,7 @@ void adios2_bp5_no_steps(bool usesteps) IO.DefineAttribute("/openPMD", std::string("1.1.0")); IO.DefineAttribute("/openPMDextension", uint32_t(0)); IO.DefineAttribute("/software", std::string("openPMD-api")); - IO.DefineAttribute("/softwareVersion", std::string("0.17.0-dev")); + IO.DefineAttribute("/softwareVersion", std::string("0.17.0")); IO.DefineAttribute("/data/0/dt", double(1)); IO.DefineAttribute( From 6af6e4b2ed5119341a9a717004f44bc7963802c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 10 Dec 2025 11:06:23 +0100 Subject: [PATCH 03/10] First draft --- CHANGELOG.rst | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f37d7f0cb1..6a8957abf9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,123 @@ Changelog ========= +0.17.0 +------ +**Date:** TBD + + +Changes to "0.16.1" +^^^^^^^^^^^^^^^^^^^ + +Features +"""""""" + +- Chunk Distribution: + + - Add chunk distribution algorithms for load-balanced data reading (#824) + - Strategies: RoundRobin, Blocks, BlocksOfSourceRanks, ByHostname, DiscardingStrategy (#824) + - Python bindings for chunk distribution strategies (#824) + - Integration with openpmd-pipe tool (#824) +- HDF5: + + - Support for HDF5 filters (compression) with JSON/TOML configuration (#1644) + - Support for opening scalar datasets (#1764) + - Improved support for various filter implementations (Blosc2, etc.) (#1644) +- Streaming & API: + + - Unify Random-Access API and Streaming API into ``Series::snapshots()`` (#1592) + - Non-spatial meshes support (#1534) + - More consistent behavior for reopening Iterations (#1810) + - Deferred iteration parsing with hints on timeout (#1802) +- ADIOS2: + + - Fixes for ADIOS2 v2.11 (#1804) + - Random-access for variable-based encoding with step selection (#1706) + - Improved support for partial datasets in ReadRandomAccess mode (#1746) + - Support for reading v-based Series (#1750) + - JSON/TOML: Abbreviated IO modes (#1493) +- JSON Schema: + + - Add JSON schema for openPMD file validation (#1426) + - Dataset-specific JSON/TOML configuration (#1646) +- Performance: + + - Performance optimizations for interacting with many meshes/species types (#1741) + - Improvements in include time optimization (#1774) +- Miscellaneous: + + - Pickle API: Cache unpickled Series to avoid repeated file access (#1654) + - Support for C++20 standard (#1798) + - OpenPMD version 2.0 support (#1551) + +Bug Fixes +""""""""" + +- ADIOS2: + + - Fix for Span API with BP5 (#1771) + - Workaround for joined_dim with maximum size_t value (#1740) + - Fix late unique_ptr puts without CLOSE_FILE or ADVANCE operations (#1744) + - Fix uninitialized values (#1745) + - Fix double write from unique_ptr in ADIOS2 (#1743) + - Fix breakup with BP5+groupbased with more than 100 steps (#1732) + - Fix hangup with writeIterations() (#1728) + - Support for old CMake versions (#1742) + - Support for zero-sized storeChunk in Span API Python (#1738) + - Variable encoding: Safeguards for READ_LINEAR mode (#1753) + - Support partial datasets in variable encoding (#1746) + - Always use CurrentStep() in mode::Read (#1749) + - Fix flushing performance for file-based Series with many steps (#1642) + - ADIOS2 bugfix for currentStep access in random access (#1706) +- HDF5: + + - Support for HDF5 >= 2.0.0 parallel detection (#1812) + - Fix for reopening Iterations (#1794) + - HDF5 parallel check for HDF5 >= 2.0.0 (#1812) +- Python: + + - Fix reference counting (#1775) + - Type conversions for Series constructor (#1737) +- General: + + - Fix missing check for constant components (#1776) + - Fixes for deferred initialization (#1777) + - Remove unnecessary putJsonContents() calls (#1782) + - Remove leftover debugging messages (#1816) + - Fix Variant issue with certain CUDA versions (#1807) + - Fix Iteration::open() for correct use of Span API (#1794) + - Deactivate Span API by default in BP5 (#1771) + - iterator::operator== fix for C++20 (#1798) + - Avoid setting read Series as dirty (#1806) + +Other +""""" + +- CMake: + + - Skip MPICXX dependency (#1785) + - Support for OpenPMD API v2.0 (#1551) +- CI/Infrastructure: + + - Upgrade to macOS-14 (#1808) + - Upgrade Musllinux runner to Ubuntu 24.04 (#1795) + - Upgrade NVidia Nvhpc runner to 25.9 (#1811) + - Clang Tidy and Sanitizer: Use clang-19 on Ubuntu 24.04 (#1783) + - Update CodeQL action to v4 (#1790) + - Various pre-commit updates +- Documentation: + + - Update streaming documentation to snapshots API (#1773) + - Doc: First Write with explicit float64 type (#1780) +- Python: + + - storeChunk: use const-type pointers (#1778) +- Tooling: + + - Add compile-time check for issue #1720 (#1722) + - Move Ubuntu 20.04 workflows to 22.04 (#1731) + - WarpX repo update (#1733) + 0.16.1 ------ **Date:** 2025-01-15 From 9753e468c6dcc70fb49055bf51ce6cf7e06206f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 10 Dec 2025 13:49:39 +0100 Subject: [PATCH 04/10] Fixes --- CHANGELOG.rst | 90 +++++++++++++++++++++------------------------------ 1 file changed, 37 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6a8957abf9..7632b77bb9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,83 +14,72 @@ Changes to "0.16.1" Features """""""" -- Chunk Distribution: +- API: - - Add chunk distribution algorithms for load-balanced data reading (#824) - - Strategies: RoundRobin, Blocks, BlocksOfSourceRanks, ByHostname, DiscardingStrategy (#824) - - Python bindings for chunk distribution strategies (#824) - - Integration with openpmd-pipe tool (#824) + - Unify Random-Access API and Streaming API into ``Series::snapshots()``, support reopening closed Iterations (#1592 #1810) + - Dataset-specific JSON/TOML configuration (#1646) + - Add a selection of chunk distribution algorithms for parallel data access (including RoundRobin, Blocks, BlocksOfSourceRanks, ByHostname, DiscardingStrategy) to the API and to ``openpmd-pipe`` (#824) - HDF5: - - Support for HDF5 filters (compression) with JSON/TOML configuration (#1644) + - HDF5 2.0.0 support (#1812) + - HDF5 filters (compression) with JSON/TOML configuration, C++ and Python examples for compression (#1644) - Support for opening scalar datasets (#1764) - - Improved support for various filter implementations (Blosc2, etc.) (#1644) -- Streaming & API: - - - Unify Random-Access API and Streaming API into ``Series::snapshots()`` (#1592) - - Non-spatial meshes support (#1534) - - More consistent behavior for reopening Iterations (#1810) - - Deferred iteration parsing with hints on timeout (#1802) - ADIOS2: - - Fixes for ADIOS2 v2.11 (#1804) - - Random-access for variable-based encoding with step selection (#1706) - - Improved support for partial datasets in ReadRandomAccess mode (#1746) - - Support for reading v-based Series (#1750) - - JSON/TOML: Abbreviated IO modes (#1493) -- JSON Schema: + - ADIOS2 v2.11 support (#1804) + - Support reading variable encoding in random access mode (using step selection) (#1706 #1750) + - Support reading variable-encoded datasets with changing metadata (partial datasets, modifiable attributes) (#1746) + - Allow only up to 100 steps by default in BP5 group encoding (performance consideration) (#1732) +- JSON/TOML IO backends: - - Add JSON schema for openPMD file validation (#1426) - - Dataset-specific JSON/TOML configuration (#1646) + - JSON/TOML: Abbreviated IO modes (#1493) - Performance: - Performance optimizations for interacting with many meshes/species types (#1741) - - Improvements in include time optimization (#1774) + - C++ API: optimized include times (#1774) + - Improve hlushing performance for file-based Series with many steps (#1642) - Miscellaneous: + - Add JSON schema for openPMD file validation, introduce openpmd-convert-toml-json tool (#1426) + - Experimental support for openPMD standard 2.0 (#1551) + - Non-spatial meshes (in standard 2.0) (#1534) + - Stderr hints for lazy parsing when appropriate (#1802) + - storeChunk: use const-type pointers (#1778) - Pickle API: Cache unpickled Series to avoid repeated file access (#1654) - - Support for C++20 standard (#1798) - - OpenPMD version 2.0 support (#1551) Bug Fixes """"""""" - ADIOS2: - - Fix for Span API with BP5 (#1771) - - Workaround for joined_dim with maximum size_t value (#1740) + - Deactivate Span API in BP5 up to ADIOS2 v2.10.2 (#1771) + - Fix propagation of joined dimension to the backend (#1740) - Fix late unique_ptr puts without CLOSE_FILE or ADVANCE operations (#1744) - - Fix uninitialized values (#1745) - - Fix double write from unique_ptr in ADIOS2 (#1743) - - Fix breakup with BP5+groupbased with more than 100 steps (#1732) + - Fix double write from unique_ptr (#1743) - Fix hangup with writeIterations() (#1728) - - Support for old CMake versions (#1742) - - Support for zero-sized storeChunk in Span API Python (#1738) - - Variable encoding: Safeguards for READ_LINEAR mode (#1753) - - Support partial datasets in variable encoding (#1746) - - Always use CurrentStep() in mode::Read (#1749) - - Fix flushing performance for file-based Series with many steps (#1642) - - ADIOS2 bugfix for currentStep access in random access (#1706) + - Always use CurrentStep() in mode::Read, fixing nonstandard SST workflows (#1749) - HDF5: - - Support for HDF5 >= 2.0.0 parallel detection (#1812) - - Fix for reopening Iterations (#1794) - - HDF5 parallel check for HDF5 >= 2.0.0 (#1812) + +JSON/TOML IO backend: + + - Remove unnecessary putJsonContents() calls (#1782) + - Fix uninitialized values (#1745) - Python: - Fix reference counting (#1775) - Type conversions for Series constructor (#1737) + - Support for zero-sized storeChunk in Span API Python (#1738) - General: - Fix missing check for constant components (#1776) - Fixes for deferred initialization (#1777) - - Remove unnecessary putJsonContents() calls (#1782) - Remove leftover debugging messages (#1816) - - Fix Variant issue with certain CUDA versions (#1807) - - Fix Iteration::open() for correct use of Span API (#1794) - - Deactivate Span API by default in BP5 (#1771) + - Fix Variant issue with certain CUDA versions (#1722 #1807) + - Fix behavior of Iteration::open() for correct use of Span API (#1794) - iterator::operator== fix for C++20 (#1798) - - Avoid setting read Series as dirty (#1806) + - Fix a couple of false positive warnings (#1806) + - Safeguards for READ_LINEAR mode (#1753) Other """"" @@ -98,28 +87,23 @@ Other - CMake: - Skip MPICXX dependency (#1785) - - Support for OpenPMD API v2.0 (#1551) - CI/Infrastructure: - Upgrade to macOS-14 (#1808) - Upgrade Musllinux runner to Ubuntu 24.04 (#1795) - - Upgrade NVidia Nvhpc runner to 25.9 (#1811) + - Upgrade Nvidia Nvhpc runner to 25.9 (#1811) - Clang Tidy and Sanitizer: Use clang-19 on Ubuntu 24.04 (#1783) - Update CodeQL action to v4 (#1790) + - Support for new CMake versions (#1742) - Various pre-commit updates + - Move Ubuntu 20.04 workflows to 22.04 (#1731) - Documentation: - Update streaming documentation to snapshots API (#1773) - Doc: First Write with explicit float64 type (#1780) -- Python: - - - storeChunk: use const-type pointers (#1778) -- Tooling: - - - Add compile-time check for issue #1720 (#1722) - - Move Ubuntu 20.04 workflows to 22.04 (#1731) - WarpX repo update (#1733) + 0.16.1 ------ **Date:** 2025-01-15 From 87e12db0cf13799edd0b00a56e36607a0a954809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 17 Dec 2025 16:31:23 +0100 Subject: [PATCH 05/10] News.rst --- NEWS.rst | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/NEWS.rst b/NEWS.rst index 66a273f2a8..d07646e3d6 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -6,7 +6,19 @@ Upgrade Guide 0.17.0 ------ -ADIOS 2.9.0 is now the minimally supported version for ADIOS2 support. +ADIOS 2.9.0 is now the minimally supported version for ADIOS2; support for ADIOS 2.11.0 has been added. +HDF5 1.8.13 is now the minimally supported version for HDF5, support for HDF5 2.0 has been added. + +A new unified API for accessing Iterations/Snapshots has been introduced in ``series.snapshots()``. +This replaces access via ``series.iterations``, ``series.writeIterations()`` and ``series.readIterations()`` which are now deprecated. +``series.writeIterations()`` and ``series.readIterations()`` are now implemented internally in terms of ``series.snapshots()``, but remain backward-compatible to old useage. + +The behavior of ``series.snapshots()`` is determined by the selected ``Access`` type: + +* ``Access::CREATE_RANDOM_ACCESS`` and ``Access::READ_RANDOM_ACCESS`` behave the same way as ``series.iterations`` did so far. + ``Access::CREATE`` and ``Access::READ_ONLY`` are now aliases for these two access types. +* ``Access::CREATE_LINEAR`` and ``Access::READ_LINEAR`` are used for creating/accessing Iterations one after another, e.g. in a Stream. These modes are more restricted in their API contract, but will work for streaming and file data alike, and ensure more resource-friendly IO patterns. + If the ADIOS2 backend uses steps, then old steps cannot be reopened after closing them. Python 3.8 and 3.9 support is EOL and removed. Python 3.14 is now supported. From 235d27debbaf367080bb0c9eb2eb17d7ff3a0fab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 7 Jan 2026 17:25:50 +0100 Subject: [PATCH 06/10] Add most recent PRs --- CHANGELOG.rst | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 7632b77bb9..64048279c6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -37,15 +37,21 @@ Features - Performance optimizations for interacting with many meshes/species types (#1741) - C++ API: optimized include times (#1774) - - Improve hlushing performance for file-based Series with many steps (#1642) + - Improve flushing performance for file-based Series with many steps (#1642) +- Python: + + - DataFrame: Add attribute columns (#1814) - Miscellaneous: - Add JSON schema for openPMD file validation, introduce openpmd-convert-toml-json tool (#1426) - Experimental support for openPMD standard 2.0 (#1551) - Non-spatial meshes (in standard 2.0) (#1534) - - Stderr hints for lazy parsing when appropriate (#1802) + - Optional shape in constant components (#1661) + - Stderr hints for lazy parsing when appropriate (#1802 #1816) - storeChunk: use const-type pointers (#1778) + - Span API: use std::unique_ptr in default fallback (#1820) - Pickle API: Cache unpickled Series to avoid repeated file access (#1654) + - Fix license headers (#1819) Bug Fixes """"""""" @@ -78,7 +84,7 @@ JSON/TOML IO backend: - Fix Variant issue with certain CUDA versions (#1722 #1807) - Fix behavior of Iteration::open() for correct use of Span API (#1794) - iterator::operator== fix for C++20 (#1798) - - Fix a couple of false positive warnings (#1806) + - Fix a couple of false positive warnings (#1806 #1824) - Safeguards for READ_LINEAR mode (#1753) Other @@ -102,6 +108,7 @@ Other - Update streaming documentation to snapshots API (#1773) - Doc: First Write with explicit float64 type (#1780) - WarpX repo update (#1733) + - Link code examples to current version instead of dev (#1821) 0.16.1 From 61e80496077f733cb0b3e7927685a719ebe3f6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 7 Jan 2026 17:34:56 +0100 Subject: [PATCH 07/10] Syntax fix --- CHANGELOG.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 64048279c6..b8b7df195c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -64,10 +64,10 @@ Bug Fixes - Fix double write from unique_ptr (#1743) - Fix hangup with writeIterations() (#1728) - Always use CurrentStep() in mode::Read, fixing nonstandard SST workflows (#1749) -- HDF5: +.. - HDF5: -JSON/TOML IO backend: +- JSON/TOML IO backend: - Remove unnecessary putJsonContents() calls (#1782) - Fix uninitialized values (#1745) From fdc66b5178c4cbec21c439aaf57323c7fe96dd8d Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Tue, 13 Jan 2026 10:59:39 -0800 Subject: [PATCH 08/10] Changelog: Formatting, Summary, Date --- CHANGELOG.rst | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b8b7df195c..9df2ee1492 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,7 +5,15 @@ Changelog 0.17.0 ------ -**Date:** TBD +**Date:** 2025-01-14 + +Chunk Distribution Strategies, HDF5 Compression, Snapshots API Improvements, Variable Encoding & Performance + +This release adds support for advanced chunk distribution strategies for data organization in parallel read operations. +New filtering and compression features are available for HDF5 via JSON/TOML configuration. +The streaming API has been refined with the unified Snapshots API and improved support for lazy parsing. +ADIOS2 variable-based encoding has been further improved with support for various backends and edge cases. +HDF5 scalar dataset reading is now supported, and multiple performance optimizations have been added throughout. Changes to "0.16.1" @@ -49,7 +57,7 @@ Features - Optional shape in constant components (#1661) - Stderr hints for lazy parsing when appropriate (#1802 #1816) - storeChunk: use const-type pointers (#1778) - - Span API: use std::unique_ptr in default fallback (#1820) + - Span API: use ``std::unique_ptr`` in default fallback (#1820) - Pickle API: Cache unpickled Series to avoid repeated file access (#1654) - Fix license headers (#1819) @@ -60,16 +68,14 @@ Bug Fixes - Deactivate Span API in BP5 up to ADIOS2 v2.10.2 (#1771) - Fix propagation of joined dimension to the backend (#1740) - - Fix late unique_ptr puts without CLOSE_FILE or ADVANCE operations (#1744) - - Fix double write from unique_ptr (#1743) - - Fix hangup with writeIterations() (#1728) - - Always use CurrentStep() in mode::Read, fixing nonstandard SST workflows (#1749) -.. - HDF5: - + - Fix late ``unique_ptr`` puts without ``CLOSE_FILE`` or ``ADVANCE`` operations (#1744) + - Fix double write from ``unique_ptr`` (#1743) + - Fix hangup with ``writeIterations()`` (#1728) + - Always use ``CurrentStep()`` in ``mode::Read``, fixing nonstandard SST workflows (#1749) - JSON/TOML IO backend: - - Remove unnecessary putJsonContents() calls (#1782) + - Remove unnecessary ``putJsonContents()`` calls (#1782) - Fix uninitialized values (#1745) - Python: @@ -82,17 +88,17 @@ Bug Fixes - Fixes for deferred initialization (#1777) - Remove leftover debugging messages (#1816) - Fix Variant issue with certain CUDA versions (#1722 #1807) - - Fix behavior of Iteration::open() for correct use of Span API (#1794) - - iterator::operator== fix for C++20 (#1798) + - Fix behavior of ``Iteration::open()`` for correct use of Span API (#1794) + - ``iterator::operator==`` fix for C++20 (#1798) - Fix a couple of false positive warnings (#1806 #1824) - - Safeguards for READ_LINEAR mode (#1753) + - Safeguards for ``READ_LINEAR`` mode (#1753) Other """"" - CMake: - - Skip MPICXX dependency (#1785) + - Skip ``MPICXX`` dependency (#1785) - CI/Infrastructure: - Upgrade to macOS-14 (#1808) @@ -106,9 +112,9 @@ Other - Documentation: - Update streaming documentation to snapshots API (#1773) - - Doc: First Write with explicit float64 type (#1780) + - Doc: First Write with explicit ``float64`` type (#1780) - WarpX repo update (#1733) - - Link code examples to current version instead of dev (#1821) + - Link code examples to current version instead of ``dev`` (#1821) 0.16.1 From e79ad8b31f92f7e57f3dc5ba9c528cedabd152e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20P=C3=B6schel?= Date: Wed, 14 Jan 2026 12:09:56 +0100 Subject: [PATCH 09/10] Reorganize summary --- CHANGELOG.rst | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9df2ee1492..abf8b3326f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,13 +7,14 @@ Changelog ------ **Date:** 2025-01-14 -Chunk Distribution Strategies, HDF5 Compression, Snapshots API Improvements, Variable Encoding & Performance - -This release adds support for advanced chunk distribution strategies for data organization in parallel read operations. -New filtering and compression features are available for HDF5 via JSON/TOML configuration. -The streaming API has been refined with the unified Snapshots API and improved support for lazy parsing. -ADIOS2 variable-based encoding has been further improved with support for various backends and edge cases. -HDF5 scalar dataset reading is now supported, and multiple performance optimizations have been added throughout. +Unified Snapshots API, HDF5 Compression, Dataset-Specific Backend Configuration, fully supported Variable Encoding in ADIOS2, Chunk Distribution Strategies & Performance + +This release unifies the Streaming API and the Random-Access File API into a unified Snapshots API, with improved support for lazy parsing. +Filtering and compression features are now also available for HDF5 (previously only ADIOS2), configured via JSON/TOML. +JSON/TOML configuration can now target individual datasets for an improved tuning of compression operations. +Variable Encoding is now fully supported in ADIOS2 (one ADIOS2 step per Iteration), as an alternative for File Encoding (one file per Iteration). +Advanced chunk distribution strategies are now available in the API and in ``openpmd-pipe`` for data organization in parallel read operations. +Multiple performance optimizations have been added throughout. Changes to "0.16.1" From 77af6c35c5f3d4988ea6814822286a562466d618 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Sat, 17 Jan 2026 10:00:37 -0800 Subject: [PATCH 10/10] Add latest fix --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index abf8b3326f..1582a287a3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -93,6 +93,7 @@ Bug Fixes - ``iterator::operator==`` fix for C++20 (#1798) - Fix a couple of false positive warnings (#1806 #1824) - Safeguards for ``READ_LINEAR`` mode (#1753) + - Fix & simplify ``BaseRecord::erase`` (#1841) Other """""