|
3 | 3 | Changelog |
4 | 4 | ========= |
5 | 5 |
|
6 | | -0.16.0 |
| 6 | +0.17.0 |
7 | 7 | ------ |
| 8 | +**Date:** 2025-01-14 |
8 | 9 |
|
9 | | -Changes to "0.15.0" |
| 10 | +Unified Snapshots API, HDF5 Compression, Dataset-Specific Backend Configuration, fully supported Variable Encoding in ADIOS2, Chunk Distribution Strategies & Performance |
| 11 | + |
| 12 | +This release unifies the Streaming API and the Random-Access File API into a unified Snapshots API, with improved support for lazy parsing. |
| 13 | +Filtering and compression features are now also available for HDF5 (previously only ADIOS2), configured via JSON/TOML. |
| 14 | +JSON/TOML configuration can now target individual datasets for an improved tuning of compression operations. |
| 15 | +Variable Encoding is now fully supported in ADIOS2 (one ADIOS2 step per Iteration), as an alternative for File Encoding (one file per Iteration). |
| 16 | +Advanced chunk distribution strategies are now available in the API and in ``openpmd-pipe`` for data organization in parallel read operations. |
| 17 | +Multiple performance optimizations have been added throughout. |
| 18 | + |
| 19 | + |
| 20 | +Changes to "0.16.1" |
| 21 | +^^^^^^^^^^^^^^^^^^^ |
| 22 | + |
| 23 | +Features |
| 24 | +"""""""" |
| 25 | + |
| 26 | +- API: |
| 27 | + |
| 28 | + - Unify Random-Access API and Streaming API into ``Series::snapshots()``, support reopening closed Iterations (#1592 #1810) |
| 29 | + - Dataset-specific JSON/TOML configuration (#1646) |
| 30 | + - 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) |
| 31 | +- HDF5: |
| 32 | + |
| 33 | + - HDF5 2.0.0 support (#1812) |
| 34 | + - HDF5 filters (compression) with JSON/TOML configuration, C++ and Python examples for compression (#1644) |
| 35 | + - Support for opening scalar datasets (#1764) |
| 36 | +- ADIOS2: |
| 37 | + |
| 38 | + - ADIOS2 v2.11 support (#1804) |
| 39 | + - Support reading variable encoding in random access mode (using step selection) (#1706 #1750) |
| 40 | + - Support reading variable-encoded datasets with changing metadata (partial datasets, modifiable attributes) (#1746) |
| 41 | + - Allow only up to 100 steps by default in BP5 group encoding (performance consideration) (#1732) |
| 42 | +- JSON/TOML IO backends: |
| 43 | + |
| 44 | + - JSON/TOML: Abbreviated IO modes (#1493) |
| 45 | +- Performance: |
| 46 | + |
| 47 | + - Performance optimizations for interacting with many meshes/species types (#1741) |
| 48 | + - C++ API: optimized include times (#1774) |
| 49 | + - Improve flushing performance for file-based Series with many steps (#1642) |
| 50 | +- Python: |
| 51 | + |
| 52 | + - DataFrame: Add attribute columns (#1814) |
| 53 | +- Miscellaneous: |
| 54 | + |
| 55 | + - Add JSON schema for openPMD file validation, introduce openpmd-convert-toml-json tool (#1426) |
| 56 | + - Experimental support for openPMD standard 2.0 (#1551) |
| 57 | + - Non-spatial meshes (in standard 2.0) (#1534) |
| 58 | + - Optional shape in constant components (#1661) |
| 59 | + - Stderr hints for lazy parsing when appropriate (#1802 #1816) |
| 60 | + - storeChunk: use const-type pointers (#1778) |
| 61 | + - Span API: use ``std::unique_ptr`` in default fallback (#1820) |
| 62 | + - Pickle API: Cache unpickled Series to avoid repeated file access (#1654) |
| 63 | + - Fix license headers (#1819) |
| 64 | + |
| 65 | +Bug Fixes |
| 66 | +""""""""" |
| 67 | + |
| 68 | +- ADIOS2: |
| 69 | + |
| 70 | + - Deactivate Span API in BP5 up to ADIOS2 v2.10.2 (#1771) |
| 71 | + - Fix propagation of joined dimension to the backend (#1740) |
| 72 | + - Fix late ``unique_ptr`` puts without ``CLOSE_FILE`` or ``ADVANCE`` operations (#1744) |
| 73 | + - Fix double write from ``unique_ptr`` (#1743) |
| 74 | + - Fix hangup with ``writeIterations()`` (#1728) |
| 75 | + - Always use ``CurrentStep()`` in ``mode::Read``, fixing nonstandard SST workflows (#1749) |
| 76 | + |
| 77 | +- JSON/TOML IO backend: |
| 78 | + |
| 79 | + - Remove unnecessary ``putJsonContents()`` calls (#1782) |
| 80 | + - Fix uninitialized values (#1745) |
| 81 | +- Python: |
| 82 | + |
| 83 | + - Fix reference counting (#1775) |
| 84 | + - Type conversions for Series constructor (#1737) |
| 85 | + - Support for zero-sized storeChunk in Span API Python (#1738) |
| 86 | +- General: |
| 87 | + |
| 88 | + - Fix missing check for constant components (#1776) |
| 89 | + - Fixes for deferred initialization (#1777) |
| 90 | + - Remove leftover debugging messages (#1816) |
| 91 | + - Fix Variant issue with certain CUDA versions (#1722 #1807) |
| 92 | + - Fix behavior of ``Iteration::open()`` for correct use of Span API (#1794) |
| 93 | + - ``iterator::operator==`` fix for C++20 (#1798) |
| 94 | + - Fix a couple of false positive warnings (#1806 #1824) |
| 95 | + - Safeguards for ``READ_LINEAR`` mode (#1753) |
| 96 | + - Fix & simplify ``BaseRecord::erase`` (#1841) |
| 97 | + |
| 98 | +Other |
| 99 | +""""" |
| 100 | + |
| 101 | +- CMake: |
| 102 | + |
| 103 | + - Skip ``MPICXX`` dependency (#1785) |
| 104 | +- CI/Infrastructure: |
| 105 | + |
| 106 | + - Upgrade to macOS-14 (#1808) |
| 107 | + - Upgrade Musllinux runner to Ubuntu 24.04 (#1795) |
| 108 | + - Upgrade Nvidia Nvhpc runner to 25.9 (#1811) |
| 109 | + - Clang Tidy and Sanitizer: Use clang-19 on Ubuntu 24.04 (#1783) |
| 110 | + - Update CodeQL action to v4 (#1790) |
| 111 | + - Support for new CMake versions (#1742) |
| 112 | + - Various pre-commit updates |
| 113 | + - Move Ubuntu 20.04 workflows to 22.04 (#1731) |
| 114 | +- Documentation: |
| 115 | + |
| 116 | + - Update streaming documentation to snapshots API (#1773) |
| 117 | + - Doc: First Write with explicit ``float64`` type (#1780) |
| 118 | + - WarpX repo update (#1733) |
| 119 | + - Link code examples to current version instead of ``dev`` (#1821) |
| 120 | + |
| 121 | + |
| 122 | +0.16.1 |
| 123 | +------ |
| 124 | +**Date:** 2025-01-15 |
| 125 | + |
| 126 | +New Backends, Extension, Perf. & Memory |
| 127 | + |
| 128 | +This is the 0.16.0 release but with internal version bumps where they were missing. |
| 129 | + |
| 130 | +Changes to "0.16.0" |
10 | 131 | ^^^^^^^^^^^^^^^^^^^ |
11 | 132 |
|
| 133 | +Bug Fixes |
| 134 | +""""""""" |
| 135 | + |
| 136 | +- HDF5: Delete and re-create attribute when overwriting with diff. type #1697 |
| 137 | +- TOUCH IOTask: Avoid setting files as dirty in non-write modes #1704 |
| 138 | +- Fix CMake variables for controlling internal dependencies #1678 |
| 139 | +- Bump toml11 dependency to ``v4.2.0`` by default #1679 |
| 140 | +- Set ``PYBIND11_FINDPYTHON=ON`` #1684 |
| 141 | +- Properly check for empty ``HDF5_VERSION`` in CMake #1702 |
| 142 | +- Fix ICX build #1690 |
| 143 | +- Explicitly specify ADIOS2 components in openPMDConfig.cmake #1693 |
| 144 | +- Example 12: Use ``ULONG`` for particle patches #1710 |
| 145 | + |
12 | 146 | Other |
13 | 147 | """"" |
14 | 148 |
|
15 | | -- ADIOS2: require version 2.9.0 #1711 |
| 149 | +- Replace deprecated Python unittest API call #1681 |
| 150 | +- Remove ``mpirun_workaround.sh`` #1698 |
| 151 | +- CI: Upgrade appleclang14 build to MacOS 13 #1703 |
| 152 | +- Docs: |
| 153 | + |
| 154 | + - Fix Shipped Internally #1682 |
| 155 | + - Fix leftover ADIOS2 mentions #1683 |
16 | 156 |
|
17 | 157 | 0.16.0 |
18 | 158 | ------ |
|
0 commit comments