From af9ab04511d5ea39cec31cdbfbf3340ea3c68f00 Mon Sep 17 00:00:00 2001 From: Liam Gray Date: Wed, 7 Aug 2024 16:47:40 -0700 Subject: [PATCH 1/4] fix(ci-main): update apt-get/brew before install --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6bab0eb..ff05b42 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,11 +25,13 @@ jobs: - name: Install apt dependencies if: ${{ matrix.os == 'ubuntu-latest' }} run: | + sudo apt-get update sudo apt-get install -y libhdf5-serial-dev hdf5-tools pkg-config - name: Install homebrew dependencies if: ${{ matrix.os == 'macos-latest' }} run: | + brew update brew install hdf5 pkg-config - name: Set up Python ${{ matrix.python-version }} From 1bab8155719cc4353fb4a463684e9fffc13260a9 Mon Sep 17 00:00:00 2001 From: Liam Gray Date: Wed, 7 Aug 2024 16:02:41 -0700 Subject: [PATCH 2/4] feat(ci): bump python versions in main workflow --- .github/workflows/main.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ff05b42..ce9a177 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,15 +12,12 @@ jobs: strategy: matrix: - python-version: ["3.6", "3.7", "3.10"] + python-version: ["3.9", "3.10", "3.12"] os: [ubuntu-latest, macos-latest] - exclude: - - os: macos-latest - python-version: "3.6" runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install apt dependencies if: ${{ matrix.os == 'ubuntu-latest' }} @@ -35,7 +32,7 @@ jobs: brew install hdf5 pkg-config - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From 5d2bbe0728594d1b7c555398e3c902a07c63ecfc Mon Sep 17 00:00:00 2001 From: Liam Gray Date: Wed, 7 Aug 2024 16:02:56 -0700 Subject: [PATCH 3/4] feat(ci): bump HDF5 version in wheels --- .github/workflows/wheels.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 06a5c91..219870f 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -13,15 +13,15 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - hdf5: ["1.10.7"] + hdf5: ["1.10.7", "1.14.4"] steps: # Checkout bitshuffle - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Build wheels for linux and x86 platforms - name: Build wheels - uses: pypa/cibuildwheel@v2.11.2 + uses: pypa/cibuildwheel@v2.19.2 with: output-dir: ./wheelhouse-hdf5-${{ matrix.hdf5}} env: @@ -57,18 +57,18 @@ jobs: name: Build source distribution strategy: matrix: - python-version: ["3.8"] + python-version: ["3.9"] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install apt dependencies run: | sudo apt-get install -y libhdf5-serial-dev hdf5-tools pkg-config - name: Install Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From b80f735bc6a8b5d08063124780bca416a05cee8b Mon Sep 17 00:00:00 2001 From: Liam Gray Date: Wed, 7 Aug 2024 16:37:35 -0700 Subject: [PATCH 4/4] fix(lzf_filter.c): fix H5Z_class_t definition for newer hdf5 api Closes kiyo-masui/bitshuffle#153 --- lzf/lzf_filter.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lzf/lzf_filter.c b/lzf/lzf_filter.c index c6dd4b0..1a9d4da 100644 --- a/lzf/lzf_filter.c +++ b/lzf/lzf_filter.c @@ -43,18 +43,22 @@ #endif /* Deal with the mutiple definitions for H5Z_class_t. - Note: Only HDF5 1.6 and 1.8 are supported. + Note: HDF5 1.6 and >= 1.8 are supported. + See https://portal.hdfgroup.org/hdf5/develop/group___h5_z.html#title6 + for version history. (1) The old class should always be used for HDF5 1.6 (2) The new class should always be used for HDF5 1.8 < 1.8.3 - (3) The old class should be used for HDF5 1.8 >= 1.8.3 only if the + (3) The old class should be used for HDF5 >= 1.8.3 only if the macro H5_USE_16_API is set */ -#if H5_VERS_MAJOR == 1 && H5_VERS_MINOR == 8 && (H5_VERS_RELEASE < 3 || !H5_USE_16_API) -#define H5PY_H5Z_NEWCLS 1 +#if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8 +#define H5PY_H5Z_NEWCLS 0 +#elif H5_VERS_MAJOR == 1 && H5_VERS_MINOR >= 8 && H5_VERS_RELEASE >= 3 && H5_USE_16_API +#define H5PY_H5Z_NEWCLS 0 #else -#define H5PY_H5Z_NEWCLS 0 +#define H5PY_H5Z_NEWCLS 1 #endif size_t lzf_filter(unsigned flags, size_t cd_nelmts,