diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f2080b385..2c9af90cd 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,7 +16,8 @@ jobs: strategy: matrix: version: - - '1.6' + - '1.9' + - '1.10' - '1' os: - ubuntu-20.04 # required for libhdf5 v1.10.4 support @@ -50,9 +51,9 @@ jobs: fail-fast: false matrix: version: - - '1.6' + - '1.9' + - '1.10' - '1' - - '1.11-nightly' - 'nightly' os: - ubuntu-latest @@ -66,14 +67,8 @@ jobs: arch: x86 - os: ubuntu-latest # excluded because HDF5_jll v1.12 does not support i686 arch: x86 - - version: '1.6' - arch: x86 - version: 'nightly' arch: x86 - - version: '1.6' - os: macOS-latest - - version: '1.6' - os: windows-latest steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@latest @@ -123,7 +118,14 @@ jobs: using Pkg try # force it to use this PR's version of the package - Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps + Pkg.develop(PackageSpec[ # resolver may fail with main deps + PackageSpec(path="."), + PackageSpec(path="./filters/H5Zbitshuffle"), + PackageSpec(path="./filters/H5Zblosc"), + PackageSpec(path="./filters/H5Zbzip2"), + PackageSpec(path="./filters/H5Zlz4"), + PackageSpec(path="./filters/H5Zzstd"), + ]) Pkg.update() Pkg.test() # resolver may fail with test time deps catch err diff --git a/Project.toml b/Project.toml index 12d492b93..47061c388 100644 --- a/Project.toml +++ b/Project.toml @@ -26,7 +26,7 @@ MPIPreferences = "0.1.7" Preferences = "1.3" Requires = "1.0" bitshuffle_jll = "0.4.2, 0.5" -julia = "1.6" +julia = "1.9" [extensions] BloscExt = "Blosc" diff --git a/ext/BloscExt/BloscExt.jl b/ext/BloscExt/BloscExt.jl index 3401904bb..451315f92 100644 --- a/ext/BloscExt/BloscExt.jl +++ b/ext/BloscExt/BloscExt.jl @@ -13,6 +13,8 @@ import HDF5.Filters: set_local_func, set_local_cfunc import HDF5.Filters.Shuffle +import HDF5: Properties +import HDF5: set_blosc! export H5Z_FILTER_BLOSC, blosc_filter, BloscFilter @@ -216,6 +218,11 @@ function Base.push!(f::FilterPipeline, blosc::BloscFilter) return f end +# legacy support +set_blosc!(p::Properties, val::Bool) = val && push!(FilterPipeline(p), BloscFilter()) +set_blosc!(p::Properties, level::Integer) = + push!(FilterPipeline(p), BloscFilter(; level=level)) + function __init__() register_filter(BloscFilter) end diff --git a/src/HDF5.jl b/src/HDF5.jl index 977b01ab8..fd791afb0 100644 --- a/src/HDF5.jl +++ b/src/HDF5.jl @@ -129,13 +129,6 @@ function __init__() ) end - @require H5Zblosc = "c8ec2601-a99c-407f-b158-e79c03c2f5f7" begin - set_blosc!(p::Properties, val::Bool) = - val && push!(Filters.FilterPipeline(p), H5Zblosc.BloscFilter()) - set_blosc!(p::Properties, level::Integer) = - push!(Filters.FilterPipeline(p), H5Zblosc.BloscFilter(; level=level)) - end - return nothing end diff --git a/src/properties.jl b/src/properties.jl index a52075bb2..b68b7e8a8 100644 --- a/src/properties.jl +++ b/src/properties.jl @@ -451,7 +451,7 @@ Properties used when creating a new `Dataset`. Inherits from The following options are shortcuts for the various filters, and are set-only. They will be appended to the filter pipeline in the order in which they appear -- `blosc = true | level`: set the [`H5Zblosc.BloscFilter`](@ref) compression +- `blosc = true | level`: set the [`BloscExt.BloscFilter`](@ref) compression filter; argument can be either `true`, or the compression level. - `deflate = true | level`: set the [`Filters.Deflate`](@ref) compression