ci: lint and test the plugin filters; the conformance probe reads them

scripts/ci-test.sh: the format feature matrix (clippy and tests) adds
plugin-filters; bitshuffle, bzip2 and blosc are each linted alone (blosc
and bitshuffle share code); the facade is linted with plugin-filters; and
the interop section runs tests/plugin_filters_interop.rs with it, against
h5py + hdf5plugin (CI's venv already installs hdf5plugin).

conformance/probe enables plugin-filters. Sweep (tank, 2026-09-26,
conformance/run.sh --no-fetch against the cached corpus): 573 of 697 ok
(baseline 569), no regressions; newly ok: h5ex_d_blosc.h5,
h5ex_d_bshuf.h5, h5ex_d_bzip2.h5, h5ex_d_lzf.h5. h5ex_d_blosc2.h5 and
h5ex_d_zfp.h5 remain UnsupportedFilter.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
osobh
2026-09-26 00:14:28 -05:00
co-authored by Claude Opus 5.5
parent e7a7951f1e
commit 056092b082
3 changed files with 58 additions and 3 deletions
+24 -2
View File
@@ -64,10 +64,29 @@ run_step "cargo clippy --all-targets" cargo clippy \
# 3. Clippy over clawhdf5-format's optional features, which the default
# workspace build never compiles (szip is left out: it needs libaec).
# plugin-filters = bitshuffle, bzip2, blosc (and the default-on lzf).
run_step "cargo clippy (format feature matrix)" cargo clippy \
-p clawhdf5-format \
--all-targets \
--features parallel,lz4,zstd,pcodec,fast-checksum \
--features parallel,lz4,zstd,pcodec,fast-checksum,plugin-filters \
-- -D warnings
# Each plugin filter alone, so none of them leans on another's
# dependencies (bitshuffle and blosc share code).
plugin_filters_alone() {
local f
for f in bitshuffle bzip2 blosc; do
echo "--- $f"
cargo clippy -p clawhdf5-format --all-targets --features "$f" -- -D warnings || return 1
done
}
run_step "cargo clippy (each plugin filter alone)" plugin_filters_alone
# The facade's plugin-filter interop tests only build with the features on.
run_step "cargo clippy (facade plugin filters)" cargo clippy \
-p clawhdf5 \
--all-targets \
--features plugin-filters \
-- -D warnings
# The HNSW index's parallel bulk build is feature-gated too.
@@ -128,7 +147,7 @@ run_step "cargo test" cargo test \
run_step "cargo test (format feature matrix)" cargo test \
-p clawhdf5-format \
--features parallel,lz4,zstd,pcodec,fast-checksum
--features parallel,lz4,zstd,pcodec,fast-checksum,plugin-filters
run_step "cargo test (ann parallel)" cargo test \
-p clawhdf5-ann \
@@ -149,6 +168,9 @@ if "$PYTHON" -c "import h5py" >/dev/null 2>&1 || [ "${CLAWHDF5_REQUIRE_INTEROP:-
# libhdf5's registered plugins) compile and run too.
run_step "h5py interop (format, ignored tests)" cargo test \
-p clawhdf5-format --features lz4,zstd --test writer_h5py_tests -- --include-ignored
# LZF, bitshuffle, bzip2 and Blosc both ways against h5py + hdf5plugin.
run_step "h5py interop (plugin filters)" cargo test \
-p clawhdf5 --features plugin-filters --test plugin_filters_interop
else
echo ""
echo "==> [h5py interop] SKIPPED: no h5py in $PYTHON"