-
Notifications
You must be signed in to change notification settings - Fork 291
Description
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/buildCMake test jobs (both Ubuntu and macOS)
nc-cmake/nc-cmake-osx: added2.0.0withexclude: hdf5: 2.0.0 / use_nc4: nc3(nc3 disables HDF5 so those combinations are meaningless)nc-cmake-tests-oneoff-osx-shared: added2.0.0nc-cmake-tests-oneoff-osx-static: added2.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 viatar -tzf). - HDF5 2.0.0 is available locally at
/usr/local/hdf5-2.0.0on the dev machine. - No changes were needed to the Windows or big-endian CI workflows.