@@ -5,32 +5,319 @@ Changelog
55
660.15.0
77------
8- **Date: ** TBA
8+ **Date: ** 2023-03-25
99
10- [Title]
10+ C++17, Error Recovery, ADIOS2 BP5, Append & Read-Linear Modes, Performance & Memory
1111
12- [Summary]
12+ This release adds error recovery mechanisms, in order to access erroneous datasets, created e.g. by crashing simulations.
13+ The BP5 engine of ADIOS2 v2.9 is fully supported by this release, including access to its various features for more fine-grained control of memory usage.
14+ Various I/O performance improvements for HDF5 are activated by default.
15+ Runtime configuration of openPMD and its backends, e.g. selection of backends and compression, is now consistently done via JSON, and alternatively via TOML for better readability.
16+ The data storage/retrieval API now consistently supports all common C++ pointer types (raw and smart pointers), implementing automatic memory optimizations for ADIOS2 BP5 if using unique pointers.
17+
18+ The miminum required C++ version is now C++17.
19+ Supported Python versions are Python 3.10 and 3.11.
1320
1421Changes to "0.14.0"
1522^^^^^^^^^^^^^^^^^^^
1623
1724Features
1825""""""""
1926
20- - Python: support of 3.10 and 3.11, removal of 3.6 #1323
27+ - Python: support of 3.10 and 3.11, removal of 3.6 #1323 #1139
2128- include internally shipped toml11 v3.7.1 #1148 #1227
2229- pybind11: require version 2.10.1+ #1220 #1322
30+ - Switch to C++17 #1103 #1128 #1140 #1157 #1164 #1183 #1185
31+ - Error-recovery during parsing #1150 #1179 #1237
32+ - Extensive update for JSON/TOML configuration #1043
33+ - TOML as an alternative to JSON #1146
34+ - compression configuration via JSON# 1043
35+ - case insensitivity #1043
36+ - datatype conversion for string values #1043
37+ - ``json::merge `` public function #1043 #1333
38+ - better warnings for unused values #1043
39+ - new JSON options: ``backend `` and ``iteration_encoding `` #1043
40+ - ADIOS1 compression configuration via JSON #1043 #1162
41+ - New access types:
42+ - ``APPEND ``: Add new iterations without reading, supports ADIOS2 Append mode #1007 #1302
43+ - ``READ_LINEAR ``: For reading through ADIOS2 steps, for full support of ADIOS2 BP5 #1291 #1379
44+ - ADIOS2:
45+
46+ - Support for ADIOS 2.8 and newer #1166
47+ - Support for ADIOS2 BP5 engine #1119 #1215 #1258 #1262 #1291
48+ - Support for selecting flush targets (buffer/disk) in ADIOS2 BP5 for more fine-grained memory control #1226 #1207
49+ - Add file extensions for ADIOS2: ``.bp4 ``, ``.bp5 `` and furthers, make them behave more as expected #1218
50+ - ADIOS2: Support for operator specification at read time #1191
51+ - ADIOS2: Automatic (de)activation of span API depending on compression configuration #1155
52+ - Optionally explicitly map ADIOS2 steps to openPMD iterations via modifiable attributes (only supported in experimental ADIOS2 modes) #949
53+
54+ - HDF5:
55+
56+ - I/O optimizations for HDF5 #1129 #1133 #1192
57+ - Improve write time by disabling fill #1192
58+
59+ - Miscellaneous API additions:
60+
61+ - Support for all char types (CHAR SCHAR UCHAR) #1275 #1378
62+ - Header for openPMD-defined error types #1080 #1355
63+ - Add ``Series::close() `` API call #1324
64+ - Support for array specializations of C++ smart pointer types #1296
65+ - Direct support for raw pointer types in ``store/loadChunk() `` API, replacing former ``shareRaw() `` #1229
66+ - Support for and backend optimizations (ADIOS2 BP5) based on unique pointer types in ``store/loadChunk() `` #1294
67+ - Use C++ ``std::optional `` types in public Attribute API (``Attribute::getOptional<T>() ``) for dynamic attribute type conversion #1278
68+
69+ - Support for empty string attributes #1087 #1223 #1338
70+ - Support for inconsistent and overflowing padding of filenames in file-based encoding #1118 #1173 #1253
2371
2472Bug Fixes
2573"""""""""
2674
75+ - HDF5
76+
77+ - Support attribute reads from HDF5 Vlen Strings #1084
78+ - Close HFD5 handles in availableChunks task #1386
79+ - ADIOS1
80+
81+ - Fix use-after-free issue in ``ADIOS1IOHandler `` #1224
82+ - ADIOS2
83+
84+ - Don't apply compression operators multiple times #1152
85+ - Fix logic for associating openPMD objects to files and paths therein (needed for interleaved write and close) #1073
86+ - Fix precedence of environment variable vs. JSON configuration
87+ - Detect changing datatypes and warn/fail accordingly #1356
88+ - Remove deprecated debug parameter in ADIOS2 #1269
89+ - HDF5
90+
91+ - missing HDF5 include #1236
2792- CMake:
2893
2994 - MPI: prefer HDF5 in Config package, too #1340
95+ - ADIOS1: do not include as ``-isystem `` #1076
96+ - Remove caching of global CMake variables #1313
97+ - Fix Build & Install Option Names #1326
98+ - Prefer parallel HDF5 in find_package in downstream use #1340
99+ - CMake: Multi-Config Generator #1384
100+ - Warnings:
101+
102+ - Avoid copying std::string in for loop #1268
103+ - SerialIOTest: Fix GCC Pragma Check #1213 #1260
104+ - Fix ``-Wsign-compare `` #1202
105+ - Python:
106+
107+ - Fix ``__repr__ `` (time and Iteration) #1242 #1149
108+ - Python Tests: Fix ``long `` Numpy Type #1348
109+ - use ``double `` as standard for attributes #1290 #1369kk
110+ - Fix ``dtype_from_numpy `` #1357
111+ - Wheels: Fix macOS arm64 (M1) builds #1233
112+ - Avoid use-after-free in Python bindings #1225
113+ - Patch MSVC pybind11 debug bug #1209
114+ - sign compare warning #1198
115+ - Don't forget closing unmodified files #1083
116+ - Diverse relaxations on attribute type conversions #1085 #1096 #1137
117+ - Performance bug: Don't reread iterations that are already parsed #1089
118+ - Performance bug: Don't flush prematurely #1264
119+ - Avoid object slicing in Series class #1107
120+ - Logical fixes for opening iterations #1239
121+
122+ Breaking Changes
123+ """"""""""""""""
124+
125+ - Deprecations
126+
127+ - ``Iteration::closedByWriter() `` attribute #1088
128+ - ``shareRaw `` (replaced with raw- and unique-ptr overloads, see features section) #1229
129+ - ADIOS1 backend (deprecation notice has hints on upgrading to ADIOS2) #1314
130+ - Redesign of public class structure
131+
132+ - Apply frontend redesign to Container and deriving classes #1115 #1159
133+ - Removal of APIs
134+ - ``Dataset::transform ``, ``Dataset::compression `` and ``Dataset::chunksize `` #1043
135+
136+ .. note ::
137+
138+ See :ref: `NEWS.rst <install-upgrade >` for a more detailed upgrade guide.
139+
140+ Other
141+ """""
142+ - Catch2: updated to 2.13.10 #1299 #1344
143+ - Tests & Examples:
144+
145+ - Test: Interleaved Write and Close #1073 #1078
146+ - Extend and fix examples 8a and 8b (bench write/read parallel) #1131 #1144 #1231 #1359 #1240
147+ - support variable encoding #1131
148+ - block located at top left corner was mistaken to read a block in the center #1131
149+ - GPU support in example 8a #1240
150+ - Extensive Python example for Streaming API #1141
151+ - General overhaul of examples to newest API standards #1371
152+ - CI
153+
154+ - URL Check for broken links #1086
155+ - CI savings (abort prior push, draft skips most) #1116
156+ - Appveyor fixes for Python Executable #1127
157+ - Pre-commit and clang-format #1142 #1175 #1178 #1032 #1222 #1370
158+ - ADIOS1: Fix Serial Builds, CI: Clang 10->12 #1167
159+ - Upgrade NVHPC Apt repository #1241
160+ - Spack upgrade to v0.17.1 and further fixes #1244
161+ - Update CUDA repository key #1256
162+ - Switch from Conda to Mamba #1261
163+ - Remove ``-Wno-deprecated-declarations `` where possible #1246
164+ - Expand read-only permission tests #1272
165+ - Ensure that the CI also build against ADIOS2 v2.7.1 #1271
166+ - Build(deps): Bump s-weigand/setup-conda from 1.1.0 to 1.1.1 #1284
167+ - Style w/ Ubuntu 22.04 #1346
168+ - Add CodeQL workflow for GitHub code scanning #1345
169+ - Cache Action v3 #1358 #1362
170+ - Spack: No More ``load -r `` #1125
171+ - CMake
172+
173+ - Extra CMake Arg Control in ``setup.py `` #1199
174+ - Do not strip Python symbols in Debug #1219
175+ - Disable in-source builds #1079
176+ - Fixes for NVCC #1102 #1103 #1184
177+ - Set RPATHs on installed targets #1105
178+ - CMake 3.22+: Policy ``CMP0127 `` #1165
179+ - Warning Flags First in ``CXXFLAGS `` #1172
180+ - Docs
181+
182+ - More easily findable documentation for ``-DPython_EXECUTABLE `` #1104 and lazy parsing #1111
183+ - HDF5 performance tuning and known issues #1129 #1132
184+ - HDF5: Document ``HDF5_USE_FILE_LOCKING `` #1106
185+ - SST/libfabric installation notes for Cray systems #1134
186+ - OpenMPI: Document ``OMPI_MCA_io `` Control #1114
187+ - Update Citation & Add BibTeX (#1168)
188+ - Fix CLI Highlighting #1171
189+ - HDF5 versions that support collective metadata #1250
190+ - Recommend Static Build for Superbuilds #1325
191+ - Latest Sphinx, Docutils, RTD #1341
192+ - Tooling
193+ - ``openpmd-pipe ``: better optional support for MPI #1186 #1336
194+ - ``openpmd-ls ``: use lazy parsing #1111
195+ - Enable use of ``Series::setName() `` and ``Series::setIterationEncoding() `` in combination with file-based encoding 1081
196+ - Remove ``DATATYPE ``, ``HIGHEST_DATATYPE `` AND ``LOWEST_DATATYPE `` from Datatype enumeration #1100
197+ - Check for undefined datatypes in dataset definitions #1099
198+ - Include ``StringManip `` header into public headers #1124
199+ - Add default constructor for ``DynamicMemoryView `` class #1156
200+ - Helpful error message upon wrong backend specification #1214
201+ - Helpful error message for errors in ``loadChunk `` API #1373
202+ - No warning when opening a single file of a file-based Series #1368
203+ - Add ``IterationIndex_t `` type alias #1285
204+
205+
206+ 0.14.5
207+ ------
208+ **Date: ** 2022-06-07
209+
210+ Improve Series Parsing, Python & Fix Backend Bugs
211+
212+ This release improves reading back iterations that overflow the specified zero-pattern.
213+ ADIOS1, ADIOS2 and HDF5 backend stability and performance were improved.
214+ Python bindings got additional wheel platform support and various smaller issues were fixed.
215+
216+ Changes to "0.14.4"
217+ ^^^^^^^^^^^^^^^^^^^
218+
219+ Bug Fixes
220+ """""""""
221+
222+ - Series and iterations:
223+
224+ - fix read of overflowing zero patterns #1173 #1253
225+ - fix for opening an iteration #1239
226+ - ADIOS1:
227+
228+ - fix use-after-free in ``ADIOS1IOHandler `` #1224
229+ - Remove task from IO queue if it fails with exception #1179
230+ - ADIOS2:
231+
232+ - Remove deprecated debug parameter in ADIOS2 #1269
233+ - Add memory leak suppression: ``ps_make_timer_name_ `` #1235
234+ - Don't safeguard empty strings while reading #1223
235+ - HDF5:
236+
237+ - missing HDF5 include #1236
238+ - Python:
239+
240+ - Wheels: Fix macOS arm64 (M1) builds #1233
241+ - Python Iteration: Fix ``__repr__ `` (time) #1242
242+ - Increase reference count also in other ``load_chunk `` overload #1225
243+ - Do Not Strip Symbols In Debug #1219
244+ - Patch MSVC pybind11 debug bug #1209
30245
31246Other
32247"""""
33- - Catch2: updated to 2.13.10 #1299 #...
248+
249+ - HDF5:
250+
251+ - Improve write time by disabling fill #1192
252+ - Update documented HDF5 versions with collective metadata issues #1250
253+ - Print warning if mpi4py is not found in ``openpmd-pipe `` #1186
254+ - Pass-through flushing parameters #1226
255+ - Clang-Format #1032 #1222
256+ - Warnings:
257+
258+ - Avoid copying std::string in for loop #1268
259+ - SerialIOTest: Fix GCC Pragma Check #1213 #1260
260+ - Fix ``-Wsign-compare `` #1202
261+ - CI:
262+
263+ - Fix Conda Build - <3 Mamba #1261
264+ - Fix Spack #1244
265+ - Update CUDA repo key #1256
266+ - NVHPC New Apt Repo #1241
267+ - Python:
268+
269+ - ``setup.py ``: Extra CMake Arg Control #1199
270+ - sign compare warning #1198
271+
272+
273+ 0.14.4
274+ ------
275+ **Date: ** 2022-01-21
276+
277+ Increased Compatibility & Python Install Bug
278+
279+ This release fixes various read/parsing bugs and increases compatibility with upcoming versions of ADIOS and old releases of Intel ``icpc ``.
280+ An installation issue for pip-based installs from source in the last release was fixed and Python 3.10 support added.
281+ Various documentation and installation warnings have been fixed.
282+
283+ Changes to "0.14.3"
284+ ^^^^^^^^^^^^^^^^^^^
285+
286+ Bug Fixes
287+ """""""""
288+
289+ - ADIOS2:
290+
291+ - automatically deactivate ``span `` based ``Put `` API when operators are present #1155
292+ - solve incompatibilities w/ post-``2.7.1 `` ``master ``-branch #1166
293+ - ICC 19.1.2: C++17 work-arounds (``variant ``) #1157
294+ - Don't apply compression operators multiple times in variable-based iteration encoding #1152
295+ - Reading/parsing:
296+
297+ - remove invalid records from data structures entirely #1150
298+ - fix grid spacing with type long double #1137
299+ - Python:
300+
301+ - fix ``Iteration `` ``__repr__ `` typo #1149
302+ - add ``cmake/ `` to ``MANIFEST.in `` #1140
303+
304+ Other
305+ """""
306+
307+ - add simple ``.pre-commit-config.yaml ``
308+ - Python:
309+
310+ - support Python 3.10 #1139
311+ - CMake:
312+
313+ - warning flags first in ``CXXFLAGS `` #1172
314+ - add policy CMP0127 (v3.22+) #1165
315+ - Docs:
316+
317+ - fix CLI highlighting #1171
318+ - update citation & add BibTeX #1168
319+ - fix HDF5 JSON File #1169
320+ - minor warnings #1170
34321
35322
363230.14.3
0 commit comments