Skip to content

Commit

Permalink
Merge remote-tracking branch 'canonical/develop' into fix_chunk_addre…
Browse files Browse the repository at this point in the history
…ss_bugs
  • Loading branch information
derobins committed Mar 21, 2024
2 parents 89dc4b5 + 7f3ab67 commit d84942c
Show file tree
Hide file tree
Showing 254 changed files with 8,713 additions and 2,756 deletions.
27 changes: 25 additions & 2 deletions .github/workflows/release-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,10 @@ jobs:
- name: Create description file
run: |
cat ${{ github.workspace }}/NEWSLETTER.txt > description.txt
echo "SHA256 sums:" >> description.txt
cat sha256sums.txt >> description.txt
- name: PreRelease tag
id: create_prerelease
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
with:
tag_name: "${{ inputs.use_tag }}"
Expand All @@ -202,6 +201,30 @@ jobs:
sha256sums.txt
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
- name: Release tag
id: create_release
if: ${{ (inputs.use_environ == 'release') }}
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
with:
tag_name: "${{ inputs.use_tag }}"
prerelease: false
body_path: description.txt
files: |
${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip
${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.deb
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc.rpm
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_gcc_s3.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_cl.zip
${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204_intel.tar.gz
${{ steps.get-file-base.outputs.FILE_BASE }}-win-vs2022_intel.zip
${{ steps.get-file-base.outputs.FILE_BASE }}.html.abi.reports
sha256sums.txt
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
- name: List files for the space (Linux)
run: |
ls -l ${{ github.workspace }}
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/vfd-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: hdf5 VFD CI main

on:
workflow_call:
inputs:
build_sys:
description: "build system used"
required: true
type: string
build_mode:
description: "release vs. debug build"
required: true
type: string

permissions:
contents: read

jobs:
# Test HDF5 VFDs that are always built by default
#hdf5_vfd_standard:
# uses: ./.github/workflows/vfd-standard.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

# Test HDF5 MPI I/O VFD
#hdf5_vfd_mpiio:
# uses: ./.github/workflows/vfd-mpiio.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

# Test HDF5 Direct VFD
#hdf5_vfd_direct:
# uses: ./.github/workflows/vfd-direct.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

#Test HDF5 Mirror VFD
#hdf5_vfd_mirror:
# uses: ./.github/workflows/vfd-mirror.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

#Test HDF5 ROS3 VFD
#hdf5_vfd_ros3:
# uses: ./.github/workflows/vfd-ros3.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

#Test HDF5 HDFS VFD
#hdf5_vfd_hdfs:
# uses: ./.github/workflows/vfd-hdfs.yml
# with:
# build_sys: "${{ inputs.build_sys }}"
# build_mode: "${{ inputs.build_mode }}"

# Test HDF5 Subfiling VFD
hdf5_vfd_subfiling:
uses: ./.github/workflows/vfd-subfiling.yml
with:
build_sys: "${{ inputs.build_sys }}"
build_mode: "${{ inputs.build_mode }}"
136 changes: 136 additions & 0 deletions .github/workflows/vfd-subfiling.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: Test HDF5 Subfiling VFD

on:
workflow_call:
inputs:
build_sys:
description: "build system used"
required: true
type: string
build_mode:
description: "release vs. debug build"
required: true
type: string

permissions:
contents: read

jobs:
build_and_test:
strategy:
# Let jobs run to completion even if one fails
fail-fast: false
matrix:
os_name: ["Ubuntu"]
# os_name: ["Ubuntu", "MacOS"]
mpi_lib: ["OpenMPI"]
# mpi_lib: ["OpenMPI", "MPICH"]
include:
- os_name: "Ubuntu"
os: ubuntu-latest
mpi_lib: "OpenMPI"
# - os_name: "Ubuntu"
# os: ubuntu-latest
# mpi_lib: "MPICH"
# - os_name: "MacOS"
# os: macos-latest
# mpi_lib: "OpenMPI"
# - os_name: "MacOS"
# os: macos-latest
# mpi_lib: "MPICH"

# Sets the job's name from the properties
name: "Test HDF5 Subfiling VFD (${{ inputs.build_sys }} ${{ inputs.build_mode }}) on ${{ matrix.os_name }} with ${{ matrix.mpi_lib }}"

runs-on: ${{ matrix.os }}

steps:
- name: Install Linux Dependencies
run: |
sudo apt update
sudo apt-get install automake autoconf libtool libtool-bin
if: ${{ matrix.os == 'ubuntu-latest' }}

# For now, just install OpenMPI or MPICH with the package
# manager. Eventually, we should pick one or 2 release
# versions of each, then build and cache those installations
- name: Install OpenMPI
run: |
sudo apt update
sudo apt-get install libopenmpi-dev
echo "CC=mpicc" >> $GITHUB_ENV
if: ${{ matrix.os == 'ubuntu-latest' && matrix.mpi_lib == 'OpenMPI' }}

- name: Install MPICH
run: |
sudo apt update
sudo apt-get install libmpich-dev
echo "CC=mpicc" >> $GITHUB_ENV
if: ${{ matrix.os == 'ubuntu-latest' && matrix.mpi_lib == 'MPICH' }}

- name: Checkout HDF5
uses: actions/[email protected]

- name: Configure HDF5 with Subfiling VFD (Autotools)
shell: bash
run: |
sh ./autogen.sh
mkdir "${{ runner.workspace }}/build"
cd "${{ runner.workspace }}/build"
$GITHUB_WORKSPACE/configure \
--enable-build-mode=${{ inputs.build_mode }} \
--enable-shared \
--disable-static \
--enable-parallel \
--enable-subfiling-vfd \
if: ${{ inputs.build_sys == 'Autotools' }}

- name: Configure HDF5 with Subfiling VFD (CMake)
shell: bash
run: |
mkdir ${{ runner.workspace }}/build
cd ${{ runner.workspace }}/build
cmake -DCMAKE_BUILD_TYPE=${{ inputs.build_mode }} \
-DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}/hdf5_build \
-DBUILD_STATIC_LIBS=OFF \
-DHDF5_TEST_VFD:BOOL=ON \
-DHDF5_ENABLE_PARALLEL:BOOL=ON \
-DHDF5_ENABLE_SUBFILING_VFD:BOOL=ON \
-DMPIEXEC_MAX_NUMPROCS=2 \
$GITHUB_WORKSPACE
cat src/libhdf5.settings
if: ${{ inputs.build_sys == 'CMake' }}

- name: Build HDF5 (Autotools)
shell: bash
working-directory: ${{ runner.workspace }}/build
run: make -j3
if: ${{ inputs.build_sys == 'Autotools' }}

- name: Build HDF5 (CMake)
shell: bash
working-directory: ${{ runner.workspace }}/build
run: |
cmake --build . --parallel 3 --config ${{ inputs.build_mode }}
echo "LD_LIBRARY_PATH=${{ runner.workspace }}/build/bin" >> $GITHUB_ENV
if: ${{ inputs.build_sys == 'CMake' }}

- name: Test HDF5 Subfiling VFD (Autotools)
working-directory: ${{ runner.workspace }}/build/testpar
# For now, just run the tests directly setup for use with the
# Subfiling VFD. We can expand on this once the library's tests
# are better separated into categories for VFD testing.
run: |
mpirun -np 2 t_subfiling_vfd
mpirun -np 2 t_vfd
if: ${{ inputs.build_sys == 'Autotools' }}

- name: Test HDF5 Subfiling VFD (CMake)
working-directory: ${{ runner.workspace }}/build
run: |
# For now, just run the tests directly setup for use with the
# Subfiling VFD. We can expand on this once the library's tests
# are better separated into categories for VFD testing.
ctest --build-config ${{ inputs.build_mode }} -VV \
-R "MPI_TEST_t_subfiling_vfd|MPI_TEST_t_vfd|H5_ph5_subfiling"
if: ${{ inputs.build_sys == 'CMake' }}
47 changes: 47 additions & 0 deletions .github/workflows/vfd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: hdf5 VFD CI

# Run VFD CI daily at 07:00 CDT (12:00 UTC)
on:
workflow_dispatch:
schedule:
- cron: "0 12 * * *"

permissions:
contents: read

jobs:
build_and_test:
strategy:
matrix:
build_sys: ["CMake", "Autotools"]
build_mode: ["Release", "production", "Debug", "debug"]
include:
- build_sys: "CMake"
build_mode: "Release"
- build_sys: "CMake"
build_mode: "Debug"
- build_sys: "Autotools"
build_mode: "production"
- build_sys: "Autotools"
build_mode: "debug"
# Exclude mismatched configurations
exclude:
- build_sys: "CMake"
build_mode: "production"
- build_sys: "CMake"
build_mode: "debug"
- build_sys: "Autotools"
build_mode: "Release"
- build_sys: "Autotools"
build_mode: "Debug"

# Sets the job's name from the properties
name: "${{ matrix.build_sys }} ${{ matrix.build_mode }} Workflows"

# Don't run the action if the commit message says to skip CI
if: "!contains(github.event.head_commit.message, 'skip-ci')"

uses: ./.github/workflows/vfd-main.yml
with:
build_sys: ${{ matrix.build_sys }}
build_mode: ${{ matrix.build_mode }}
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -919,8 +919,8 @@ if (HDF5_ENABLE_THREADSAFE)
message (VERBOSE " **** Allowing unsupported HL and thread-safety options **** ")
endif ()
endif ()
if (H5_HAVE_IOEO)
message (VERBOSE " **** Win32 threads requires WINVER>=0x600 (Windows Vista/7/8) **** ")
if (WIN32)
# When Win32 is available, we use those threads
set (H5_HAVE_WIN_THREADS 1)
else ()
if (NOT H5_HAVE_PTHREAD_H)
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_blosc.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 7; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_bshuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 3; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_bzip2.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 1; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_jpeg.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[3] = {NUM_IMAGES, DIM0, DIM1}, chunk[3] = {CHUNK0, CHUNK1, CHUNK2};
size_t nelmts = 4; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_lz4.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 1; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_lzf.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 3; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_mafisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 8; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_zfp.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[2] = {DIM0, DIM1}, chunk[2] = {CHUNK0, CHUNK1};
size_t nelmts = 3; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/h5ex_d_zstd.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ main(void)
herr_t status;
htri_t avail;
H5Z_filter_t filter_id = 0;
char filter_name[80];
char filter_name[128];
hsize_t dims[3] = {NUM_IMAGES, DIM0, DIM1}, chunk[3] = {CHUNK0, CHUNK1, CHUNK2};
size_t nelmts = 1; /* number of elements in cd_values */
unsigned int flags;
Expand Down
2 changes: 1 addition & 1 deletion HDF5Examples/C/H5FLT/tfiles/h5ex_d_blosc.ddl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ GROUP "/" {
FILTERS {
USER_DEFINED_FILTER {
FILTER_ID 32001
COMMENT HDF5 blosc filter; see http://www.hdfgroup.org/services/contributions.html
COMMENT HDF5 blosc filter; see https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md
PARAMS { 2 2 4 128 4 1 2 }
}
}
Expand Down
Loading

0 comments on commit d84942c

Please sign in to comment.