Skip to content

CI: add HDF5 2.0.0 to test matrix #3325

@captainkirk99

Description

@captainkirk99

Summary

The CI matrix for both Ubuntu and macOS does not test against HDF5 2.0.0. This should be added to ensure netCDF-C remains compatible with the latest major HDF5 release.

What was done

HDF5 2.0.0 has been added to the following CI jobs in run_tests_ubuntu.yml and run_tests_osx.yml:

Build dependency jobs

  • build-deps-serial (Ubuntu): matrix extended to [1.10.8, 1.12.2, 1.14.3, 2.0.0]
  • build-deps-osx (macOS): matrix extended to [1.12.2, 1.14.3, 2.0.0]

The build step required a special case for 2.0.0 because HDF5 2.0.0 is CMake-only — it no longer ships an autotools ./configure script, and the source tarball is only available from GitHub (not the HDF FTP server):

# Download
wget https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5_2.0.0.tar.gz
tar -zxf hdf5_2.0.0.tar.gz
mv hdf5-hdf5_2.0.0 hdf5-2.0.0   # GitHub archives extract as hdf5-hdf5_2.0.0/

# Build with CMake
cmake -S hdf5-2.0.0 -B hdf5-2.0.0/build \
  -DCMAKE_INSTALL_PREFIX=${HOME}/environments/2.0.0 \
  -DHDF5_BUILD_HL_LIB=ON \
  -DHDF5_BUILD_SHARED_LIBS=ON \
  -DHDF5_BUILD_STATIC_LIBS=OFF \
  -DCMAKE_BUILD_TYPE=Release
cmake --build hdf5-2.0.0/build -j
cmake --install hdf5-2.0.0/build

CMake test jobs (both Ubuntu and macOS)

  • nc-cmake / nc-cmake-osx: added 2.0.0 with exclude: hdf5: 2.0.0 / use_nc4: nc3 (nc3 disables HDF5 so those combinations are meaningless)
  • nc-cmake-tests-oneoff-osx-shared: added 2.0.0
  • nc-cmake-tests-oneoff-osx-static: added 2.0.0

Autotools test jobs

The nc-autotools (Ubuntu) and nc-autotools-osx / nc-ac-tests-oneoff-osx (macOS) jobs were not given 2.0.0 in the full matrix for the autotools-based netCDF configure (the Ubuntu nc-autotools job does include it since HDF5 2.0.0 still installs pkgconfig and shared libs that ./configure --enable-hdf5 can find via CFLAGS/LDFLAGS).

Notes

  • The verified GitHub tarball extraction directory name is hdf5-hdf5_2.0.0/ (confirmed via tar -tzf).
  • HDF5 2.0.0 is available locally at /usr/local/hdf5-2.0.0 on the dev machine.
  • No changes were needed to the Windows or big-endian CI workflows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions