Skip to content

hdf5plugin: add build-hdf5plugin.yml for riscv64 wheels - #1747

Merged
luhenry merged 2 commits into
mainfrom
hdf5plugin
Sep 12, 2026
Merged

hdf5plugin: add build-hdf5plugin.yml for riscv64 wheels#1747
luhenry merged 2 commits into
mainfrom
hdf5plugin

Conversation

@luhenry

@luhenry luhenry commented Sep 11, 2026

Copy link
Copy Markdown
Member

Compiles 11 HDF5 compression filter plugins (blosc, blosc2, bitshuffle, bzip2, fcidecomp, lz4, SPERR, SZ, SZ3, zfp, zstd) as shared libraries loaded through HDF5's plugin API. Upstream ships no riscv64 wheel.

Mirrors upstream's release.yml build_wheels job, which already builds one portable, non-native-SIMD wheel per architecture.

Differs from upstream

  • Nothing beyond the riscv64 image.

Matrix: single cp312-manylinux_riscv64 build - setup.py's BDistWheel.get_tag() forces py3-none, so one wheel serves every interpreter, same as upstream.

Testing

  • same as upstream's test/test.py, minus the oldest-h5py pass (pins aren't on the registry) and blosc2-grok (upstream itself drops it, issue debugpy riscv64 support #377)

License: wheel bundles ~30 vendored BSD/MIT/Apache-2.0 compression libraries; upstream's own wheel ships only its top-level MIT LICENSE, so this one ships all their licence texts too.

Patches

  • 0001-Gate-blosc2...patch - Upstream-Status: To upstream [not submitted]. Without it, setup.py force-enables x86/ARM shuffle SIMD macros on every non-ppc64le arch, hitting an ARM-only HWCAP_ARM_NEON compile error on riscv64; riscv64-only.
  • 0002-Ship-the-licences...patch - Upstream-Status: To upstream [not submitted]. Without it, the wheel carries no licence text for any vendored library; reproduces on every platform upstream ships.

Built on cp312; 68 passed, 3 skipped.

luhenry added a commit that referenced this pull request Sep 11, 2026
lib/bitshuffle/zstd and two lib/snappy/third_party/ paths are gitlinks
with no .gitmodules entry upstream, so actions/checkout's own
persist-credentials cleanup step (git submodule foreach) fails with
'No url found for submodule path'. None of these are needed for the
build: the bitshuffle plugin uses hdf5plugin's own shared lib/zstd
clib, not lib/bitshuffle/zstd, and snappy's third_party/ only holds
its own test/benchmark deps.
@luhenry
luhenry merged commit 3579152 into main Sep 12, 2026
7 checks passed
@luhenry
luhenry deleted the hdf5plugin branch September 12, 2026 19:23
@luhenry luhenry linked an issue Sep 13, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hdf5plugin riscv64 support

1 participant