* config: fix HL Fortran soversion variable typo (#6267)
* Remove 'set -e' from Maven testing scripts (#6262)
* style: update hdf logos (#6265)
close#6258
* Keep CHANGELOG.md entries from 2.1.0 in the file for the 2.1.1 release.
* Update CHANGELOG for HDF5 version 2.1.1 release
* Revert addition of 2.1.0 CHANGELOG.md file as we've decided to keep the
2.1.0 contents in the CHANGELOG.md file for 2.1.x patch releases.
* Create (or maybe assign) Snapshot tag immediately, but delay actual
creation of Release tag until GitHub "Publish Release" is clicked.
Suggested by Claude.
* Update hdf5_plugin variable values for "2.1.1" instead of "master".
* Correct PLUGIN_TGZ_ORIGPATH value for 2.1.1 release.
* Differentiate description.txt for patch releases from that for Major and
Minor releases. Patch release will have only the patch addition to the
top of CHANGELOG.md.
* Add anticipated date for HDF5 2.1.1 release.
* Skip some parallel example tests for small MPIEXEC_MAX_NUMPROCS values (#6224)
* chore: fix grammar (#6227)
* Split static targets into separate optional target [UPDATED] (#6216)
Build-tree exports can't diverge from install-tree exports — the export(EXPORT ...) reads directly from the install export sets. No manual list to keep in sync.
Removed 3 global variables (HDF5_STATIC_LIBRARIES_TO_EXPORT, HDF5_JAVA_LIBRARIES_TO_EXPORT, HDF5_UTILS_TO_EXPORT) and their ~21 set_global_variable calls across tool/utility files.
Fixed the static-only build bug in the PR where the base export set was guarded by BUILD_SHARED_LIBS, breaking tools export.
Removed redundant utils in export files — the PR was dumping tools into all three build-tree export files (java, static, shared). Now they correctly appear only in the base export.
* Apply filters to variable-length data (#6178)
Closes can_apply and set_local filter callbacks skipped for H5T_VARIABLE dtypes #5942. A more detailed explanation of the rationale for this PR is in the linked issue.
Mandatory filters can be now applied to variable-length data. This notably includes h5py object strings and NpyStrings.
Optional filters applied to variable-length data no longer skip can_apply and set_local, only to jump directly to filter. This fixes hdf5_blosc and HDF5_Blosc2, which rely on set_local. Note that all filters which have neither can_apply nor set_local have always worked fine with vlen data, as long as they were tagged as optional. Notable examples are deflate, lzf, bzip2 (from hdf5plugin), and lz4 (also from hdf5plugin).
Lossy filters, such as scale-offset, are and remain untested and most likely broken, as I expect them to treat the vlen metadata as numbers and corrupt it. The right place to ensure proper behaviour is their can_apply function, which however is broken (filters: can_apply does nothing for optional filters #6161).
* Fix MPI Fortran configuration for HDF5Examples (#6206)
When building Fortran parallel examples without MPI wrappers, the
compiler couldn't find mpi.mod because MPI_Fortran_INCLUDE_DIRS
was not populated. This occurred because find_package(MPI) was only
called for C, not Fortran.
Added enable_language(Fortran) and find_package(MPI REQUIRED
COMPONENTS Fortran) to properly configure MPI for Fortran examples,
ensuring MPI include directories and libraries are correctly set.
* Adds RFCs to the RFC table (#6190)
* Added two RFCs to the RFC table
"Adding support for digitally signed plugins to HDF5"
" Write-Ahead log"
* Updated to use the ACM link
* Add HDF5 2.0.0 Library Migration Guide (#6183)
* Add HDF5 2.0.0 Library Migration Guide
* Revise HDF5 migration guide for version 2.0.0
Use 2.0.0 consistently.
* Clarify API changes in HDF5 2.0.0 Migration Guide
* Fixes the "multiple @param documentation sections" doxygen warnings (#6195)
Addresses the "multiple @ param documentation sections" warnings are caused by the interaction of three things:
1. MACRO_EXPANSION = YES with EXPAND_ONLY_PREDEF = NO in Doxyfile.in
2. Versioned API macros in H5version.h like:
\def documentation in APIVersions.dox like:
3. \def H5Tarray_create \api_vers_2{H5Tarray_create,H5Tarray_create1,H5Tarray_create2}
Because Doxygen expands all macros, it sees H5Tarray_create as an alias for H5Tarray_create1. It then associates documentation from both the \def block (for the macro) and the function's own doc block (with \param entries) with the same function — resulting in "multiple @ param documentation sections."
* Update Doxygen version from 1.16.0 to 1.16.1
Use Doxygen 1.16.1 for all platforms. This version includes the latest
bug fixes and improvements while maintaining compatibility with our
documentation format.
* Fix Windows Doxygen installation for version 1.16.1
Handle different Windows binary naming conventions across Doxygen versions:
- 1.16.1 uses: doxygen-VERSION.windows.x64.bin.zip
- 1.16.0 uses: doxygen-VERSION.x64.bin.zip
Try the newer naming convention first, then fall back to the older one
if the download fails. This ensures compatibility across versions.
* Use ssciwr/doxygen-install in setup-doxygen action
Replace direct installation of official Doxygen binaries with
ssciwr/doxygen-install action. This avoids Java documentation parsing
errors that occur with official binaries but not with distribution
builds.
The setup-doxygen action now serves as a thin wrapper around
ssciwr/doxygen-install@f13be16c83 (v1),
using commit hash for security and reproducibility.
* Remove redundant version specification from workflows
The setup-doxygen action already has a default version (1.16.1),
so explicit version specification in workflows is unnecessary.
This follows DRY principles and makes version updates simpler.
* Updates to #6205 (#6208)
* Fix MPI Fortran configuration for HDF5Examples (#6205)
When building Fortran parallel examples standalone without MPI
wrappers, the compiler cannot find mpi.mod because
MPI_Fortran_INCLUDE_DIRS is not populated.
* Use MPI::MPI_Fortran imported target instead of raw MPI variables
Replace manual MPI_Fortran_LIBRARIES, MPI_Fortran_LINK_FLAGS, and
MPI_Fortran_INCLUDE_DIRS usage with the MPI::MPI_Fortran imported
target, which transitively carries all include dirs, compile flags,
and link flags. This eliminates the CMAKE_Fortran_EXE_LINKER_FLAGS
hack and the manual target_include_directories in H5PAR.
* Update nvhpc version to 26.1 with CUDA version 13.1. (#6213)
# branches: [develop]
* Inherit Debug C build flags in Developer build mode (#6182)
* Bump the github-actions group across 1 directory with 11 updates (#6215)
* Bump the github-actions group across 1 directory with 11 updates
Bumps the github-actions group with 11 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [actions/cache](https://github.com/actions/cache) | `5.0.1` | `5.0.3` |
| [lukka/get-cmake](https://github.com/lukka/get-cmake) | `4.2.1` | `4.2.3` |
| [softwareforgood/check-artifact-v4-existence](https://github.com/softwareforgood/check-artifact-v4-existence) | `0.3.0` | `0.4.1` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.31.9` | `4.32.2` |
| [azure/trusted-signing-action](https://github.com/azure/trusted-signing-action) | `0.5.11` | `1.1.0` |
| [cygwin/cygwin-install-action](https://github.com/cygwin/cygwin-install-action) | `7d2dc1e241644c3318bed9ec74115d1929baa681` | `2566376092c4e280f21131be027af3f5bb2420a4` |
| [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) | `5.1.1` | `6.0.0` |
| [vmactions/freebsd-vm](https://github.com/vmactions/freebsd-vm) | `1.3.4` | `1.4.2` |
| [vmactions/openbsd-vm](https://github.com/vmactions/openbsd-vm) | `1.3.1` | `1.3.5` |
| [mpi4py/setup-mpi](https://github.com/mpi4py/setup-mpi) | `1.4.1` | `1.4.2` |
| [actions/setup-python](https://github.com/actions/setup-python) | `6.1.0` | `6.2.0` |
vmactions/openbsd-vm@d6c29ce1b4 (`1.3.5`) failed to run ssh on the github runner. 271a1ba62300483cfc58345ff9f425f1349a2cab for v1.3.4 was used instead.
* Fix issue with some Subfiling VFD test files not getting deleted (#6212)
* CMake: Fix Fortran cross-compilation support
Refactor the cross-compilation infrastructure to rely on the standard
CMAKE_CROSSCOMPILING_EMULATOR variable instead of the custom
CROSSCOMPILING_PATH environment hack.
Key changes:
- Removed `ENVIRONMENT "${CROSSCOMPILING_PATH}"` from all test definitions.
- Updated custom commands (e.g., H5match_types, H5_gen) to invoke the
emulator explicitly when cross-compiling.
- Updated ConfigureChecks.cmake and HDF5UseFortran.cmake to enable
`try_run` checks when an emulator is defined.
- Added config/toolchain/mingw-w64-x86-64-wine.sh wrapper to automatically
locate MinGW runtime libraries (like libgfortran) for Wine execution.
- Cleaned up toolchain files to remove hardcoded emulator paths, deferring
configuration to the build environment.
* Add Doxygen setup that results in missing Doygen documentation. (#6217)
* Added setup-doxygen action in ctest.yml Ubuntu gcc workflow.
* Also added actions/checkout for setup-doxygen.
* Fixes link checker failure (#6219)
Removed https:// as a workaround to avoid error by the link checker.
* Remove force-setting of ZLIB_USE_EXTERNAL / SZIP_USE_EXTERNAL (#6222)
Removes the force-setting of ZLIB_USE_EXTERNAL and SZIP_USE_EXTERNAL to
ON when HDF5_ALLOW_EXTERNAL_SUPPORT is GIT or TGZ so that zlib and
szip can be independently built from the system or externally as desired
* Truncate Subfiling VFD's stub file when truncating subfiles (#6210)
Ensure that the Subfiling VFD's stub file gets truncated when subfiles are
being truncated to avoid a potentially unreadable file when the EOF doesn't
match the stored EOF value
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
* Add CMake function to extract pkg-config info from libraries (#6220)
* Consistent extension for C++ (#6214)
Except for this file, all use cpp instead of cxx. No obvious reason why
the same file types should have different extensions.
* Enable Windows ARM64 CTest CI for release binaries (#6177)
* ci: add Windows ARM64 MSVC CTest job
* ci: add MSYS2 clangarm64 build on Windows ARM64
* cmake: add MSVC ARM64 presets for Windows
* zlib: fix MSVC static library flags for ARM64 builds
* Renamed .hxx file to .h and updated the #include for it.
* Committing clang-format changes
---------
Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: bmribler <39579120+bmribler@users.noreply.github.com>
Co-authored-by: Gerd Heber <gheber@hdfgroup.org>
Co-authored-by: jhendersonHDF <jhenderson@hdfgroup.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Julien Schueller <schueller@phimeca.com>
Co-authored-by: Martin Diehl <mail@martin-diehl.net>
Co-authored-by: Harish RS <harish.rajaselvan@multicorewareinc.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Update so version numbers.
* Add notice for removing alternate release tag to CHANGELOG.md.
* Run workflows previously restricted to develop on release branches
(hdf5_*) also.
Ubuntu Clang tests had problems when using KyleMayes/install-llvm-action to install Clang 18.1 on Ubuntu 24.04, because the Clang that it installed needed libtinfo5 not present in the Ubuntu 24.04 image. However, Clang 18.1.3 is part of the Ubuntu 24.04 image and is used when CMAKE_C_COMPILER and CMAKE_CXX_COMPILER are set to "clang" and "clang++".
Update CI workflows to use symbolic links instead of copying files to re-enable GitHub daily tests.
Workflows:
Update analysis.yml, cygwin.yml, and par-script.yml to use symbolic links instead of copying CTestScript.cmake and HDF5config.cmake.
Update par-source.yml and script.yml similarly to use symbolic links for the same files.
Commands:
Replace cp with ln -s in Linux workflows.
Replace Copy-Item with New-Item -ItemType SymbolicLink in Windows workflows.
Purpose:
Re-enable GitHub daily tests: linked HDF5config.cmake allows CMake to find the HDF5VersionParsing.cmake file to get the HDF5 version.
Also updated runs-on: ubuntu-22.04 to ubuntu-latest.
* Replace last link with version directory path on support site.
Links for downloading doxygen.zip files will be to the GitHub HDF5
releases page.
* Update config/README.md.cmake.in
Removed code to set JAVA_HOME to a specific directory, which seemed to cause a conflict between the Java version used to compile and the runtime Java version.
Setup:
Add JDK 21 setup using actions/setup-java@v5 in arm-main.yml for Windows 11 ARM.
CMake Configuration:
Enable Java build with -DHDF5_BUILD_JAVA=ON in arm-main.yml for Windows 11 ARM.
Fixed#5677
Corrects error return values from 0 to FAIL in H5Z__scaleoffset_decompress_one_byte(), H5Z__scaleoffset_decompress_one_atomic(), and H5Z__scaleoffset_decompress() in H5Zscaleoffset.c
from the documentation/hdf5/latest/ page. There is a redirect in the path to the
releases/hdf5/downloads/latest/ page that doesn't function for the link.
* Add instruction to verify library version compliance with sematic
versioning with link to semantic versioning wiki page.
Update H5.c and version tests for move of major and minor versions to
1st and 2nd version numbers.
* WILL_FAIL for the tcheck_version doesn't need changing for release
branches - removed that instruction from RELEASE_PROCESS.
Change release version instructions to use x.y.z.1 for pre-release
instead of x.y.z-1 as for develop snapshots.
Update bin/h5vers to omit subversion in "Executive Summary" line of CHANGELOG.md.
Prevents confusion on GitHub HDF5 Releases page by aligning version display with snapshot tar.gz and zip files.
* Updated h5vers and release scripts to handle change from RELEASE.txt to
CHANGELOG.md.
* Added links to wiki and cdash for Platforms Tested.
* Don't use heading format for version lines at top of README.md and
CHANGELOG.md files.
* Remove NEWSLETTER files.
Update tarball.yml and release-files.yml to upload description for
snapshots and releases.
* Add path to CHANGELOG.md in tarball.yml.
on Dane and Frontier, which occasionally fails when searching for expected output "Object could not
be found in <h5diff_basic1.h5>" when the object name </nono_obj> is
inserted after "Object". Search string is reduced to "could not
be found".
* Change name of libhdf5hl_fortran installed by autotools to libhdf5_hl_fortran to be
consistent with CMake install and with other hl lib files. Switched
corresponding symlink to libhdf5hl_fortran.
Fixes issue #4684.
* Update h5fc.in to use renamed libhdf5_hl_fortran.
Fix typo in code to create link to libhdf5_hl_fortran.a.
* Removed code to create symlink for previous name of renamed lib
libhdf5hl_fortran.
Add RELEASE.txt entry about changeing name libhdf5hl_fortran to
libhdf5_hl_fortran.
* Update missed line in h5fc.in for libhdf5hl_fortran name change to
libhdf5_hl_fortran. Fixes check-install failure.
* Change name of libhdf5hl_fortran installed by autotools to libhdf5_hl_fortran to be
consistent with CMake install and with other hl lib files. Switched
corresponding symlink to libhdf5hl_fortran.
Fixes issue #4684.
* Update h5fc.in to use renamed libhdf5_hl_fortran.
Fix typo in code to create link to libhdf5_hl_fortran.a.
* Removed code to create symlink for previous name of renamed lib
libhdf5hl_fortran.
Add RELEASE.txt entry about changeing name libhdf5hl_fortran to
libhdf5_hl_fortran.
* Fix a few function names in USAGE comments that don't match the actual
function names.
* Remove typo '['
* Switch to working url for api-compatibility-macros.html.
* Update files to skip list and ignore_words_list for codespell to not
check files generated by autotools. Autotools generate misspellings
that can't be fixed in HDF5 code.
* Replace support.hdfgroup.org URLs for alternative COPYING file
locations in copyright headers with https://www.hdfgroup.org/licenses.
Replace support.hdfgroup.org URL for alternative COPYING_LBNL_HDF5
with github URL.
Tweak chkcopyright script for change from UICOPYRIGHTSTR to
THGCOPYRIGHTSTR.
* Use ubuntu-20.04 for github autotools parallel tests until parallel
configure is fixed on ubuntu 22.04.
* Remove inactive developers from CODEOWNERS.
* Temporarily cat config.log for autotools build in github actions.
* Try ubuntu-latest.
* Attempt to cat config.log even when configure fails.
* Fix syntax.
* Try again
* Try again
* Try again.
* Back to original temporary fix.
* Install libopenmpi-dev with openmpi-bin, which was installed as a
dependency prior to ubuntu-22.04.
* Change how HPC tests are executed
* Move ctest_test commands for serial and parallel tests into cmake files.
* Update checks for uploading Test.xml to CDash.
* Correct cmake scripots.
* Remove extraneous characters.
* Add ctest_start (APPEND).
* Add binary directories to scripts running ctest_test.
* Correct parameters for appending Test.xml.
* Set CTEST_SITE and CTEST_BUILD_NAME.
* Try to pass site and build_name to ctest_test sripts.
* Add site name and build name for ctest_test commands vi environment.
* Revert "Try to pass site and build_name to ctest_test sripts."
This reverts commit d364aaf0fa.
* Correct typo in src/CMakeLists.txt.
* Update batch scripts to run ctest_test scripts.
Co-authored-by: Allen Byrne <byrn@hdfgroup.org>
* Update link for Software Changes in RELEASE.txt.
Add RELEASE.txt contents from 1.13.3 release to HISTORY-1_13.txt.
* Reverse order of entries in HISTORY-1_13.txt to match the order in previous HISTORY
files.
* Updated source file copyright headers to remove "Copyright by the Board of Trustees
of the University of Illinois", which is kept in the top-level COPYING file.
* Some Javadoc warning fixes
* Updated javadoc fixes
* # WARNING: head commit changed in the meantime
HDFFV-11229 Fix long double usage in tools and java
Changed h5dump and h5ls to just print 128-bit for long double type.
Added test and file for dataset and attributes with all three float
types.
* Committing clang-format changes
* HDFFV-11229 Add release note
* HDFFV-11229 windows testfile needed
* fix typo
* Remove non supported message text
* HDFFV-11229 - change ldouble test to check both native and general
* HDFFV-11229 add second file compare
* HDFFV-11229 fix reference file
* HDFFV-11229 autotools check two refs
* HDFFV-11229 revert back to removal of NATIVE_LDOUBLE in tools output
* Committing clang-format changes
* Update release note
* Update attribute type of ref file
* Change source of ninja for macs
* try port instead of brew
* Recommended is to use brew.
* Undo non long double changes
* remove unneeded file
* Fix perl and doxygen CMake code
* Add "option" command for clang options
* Rework CMake add_custom to use the BYPRODUCTS argument
* Add stamp files to BYPRODUCTS
* Only one copy of file exists
* Fix custom cmmand depends targets
* Fix fortran custom command DEPENDS
* Add LD_LIBRARY_PATH to tests
* Add custom target for DEPENDS
* Add h5detect conditionaly to generated target DEPENDS
* Correct DEPENDS targets
* Parallel builds need the mpi compiler for pkgconfig scripts.
* install only if MPI build
* Fortran target depends
* Remove incorrect source attribute
* doxygen adjustments
* doxygen build updates
* Correct version
* Correct function version - function has been merged to 1.12
* Correct version string for map functions
* Cleanup warnings for tools debug builds
* TRILAB-227 - fix indexing for h5diff selections
* Correct location of pos to index function call
* TRILAB-227 Enable test
* Quote subset args
* Use MATCHES because of AppleClang
* if blocks needed for build modes
* Update list of DT platforms
* VS2019 correctly displays float values
* revert VS2019 change
* Issue #669 remove version from pkgcfg filename
* remove version from h5cc script
* Java reference functions updated
enabled fortran in cmake gcc action yaml file
java reference test changed to correctly test refs
jni reference functions that create ids changed to use jni id logging
* Correct BYPRODUCTS argument
* Correct more genereated files BYPRODUCTS
* BYPRODUCTS must have unique locations
* Fix typo
* Fix fortran configure checks
* Rework H5_PAC_C_MAX_REAL_PRECISION setting logic
* Add note about fortran configure change
* Adds a quick for for some egregious chunk_info badness (#722)
* Fixes issue with ccmake that prevents building Fortran (#723)
ccmake runs iteratively, and the check_fortran_source_runs
macros were clobbering a single output file that did not
get updated on further configure iterations
* Fix conflicts with merge
* Move MAX_PRECISION back to HDF5UseFortran.cmake
* Use STREQUAL to test macro argument
* Move C language test to ConfigureChecks from HDF5UseFortran
* MAX_PRECISION defines must be defined
* Organize flags and align autotools and cmake
* Fix comment in no-error-general warnings files.
* Flag cleanup and fix typos
* Add comment
* Correct VAR used to find configure time file
* Set the path correctly
* Update missing release note info.
* Update code owners
* Correct JIRA note
* add known problem.
* Use only core library for testing dynamic plugins.
* Committing clang-format changes
* Update main.yml
* Update HISTORY-1_13.txt
Missing release note added for changed location of CMake configuration files.
* Update HISTORY-1_13.txt
Fix typo
* Update main.yml
revert change
* Updated version to 1.13.4-1 after creating hdf5_1_13_3 branch for 1.13.3
release.
Added new version to exceptions in lines 74-5 of src/H5.c
* Cleared RELEASE.txt entries following HDF5 1.13.3 release.
Co-authored-by: Allen Byrne <byrn@hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Allen Byrne <50328838+byrnHDF@users.noreply.github.com>
Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
* Committing clang-format changes
* Spelling of preceed was corrected to proceed, but should have been
corrected to precede.
* Correct spelling correction of 'preceed' incorrectly to 'proceed'. It should be 'precede'.
* Update version to 1.13.2-1 after 1.13.1 release.
Add Makefile.in to MANIFEST for addition of utils/tools and h5dwalk.
* Update VERS_RELEASE_EXCEPTIONS with new incompatible release version.
* Add HDF5 1.13.1 RELEASE.txt to HISTORY-1_13.txt contents to
HISTORY-1_13.txt.
Clean entries from RELEASE.txt.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Committing clang-format changes
* Spelling of preceed was corrected to proceed, but should have been
corrected to precede.
* Correct spelling correction of 'preceed' incorrectly to 'proceed'. It should be 'precede'.
* OESS-168: Remove clang warnings.
* OESS-168: Address @lrknox and @gnuoyd reviews.
* Eliminate clang warnings listed in PR #1310 without adding new ssize_t
variables.
* Committing clang-format changes
* Add H5_ATTR_UNUSED to wait_for_child call.
Remove unneeded casts in mirror_log calls.
* Keep ssize_t in mirror_server.c line 479.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Hyo-Kyung Lee <hyoklee@hdfgroup.org>
Commit 61464d7e was a fix for a compiler error on OpenBSD where
int_fast8_t is in fact larger than 1 byte. However, the changes broke
H5detect.c generation of H5Tinit.c on Power8 big-endian, and probably on
all big-endian machines. Switching DETECT_BYTE to DETECT_I for 8 byte types doesn't work on our big-endian Power8 machine because switching the last parameter of DETECT_I_BYTE_CORE from "int" to the 8 byte type incorrectly sets dt->shared->u.atomic.order = H5T_ORDER_LE on a big-endian machine. A different fix to accomodate both big-endian and OpenBSD is needed. See commit 61464d7e for OpenBSD info.
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>