Skip to content

scikit-bio: Add version 0.7.3 - #3071

Draft
luhenry wants to merge 3 commits into
mainfrom
scikit-bio
Draft

luhenry wants to merge 3 commits into
mainfrom
scikit-bio

Conversation

@luhenry

@luhenry luhenry commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Compiles 7 Cython extensions (tree, ordination, distance, alignment, metadata, diversity). Upstream publishes no riscv64 wheel.

Mirrors upstream's wheels.yml.

Differs from upstream

  • Always runs the full test suite - upstream only does this on tags/dispatch/schedule, PRs get a light import check.

Testing

  • same as upstream (python -m skbio.test)

License: OK

Built on cp311 (local x86_64 rehearsal); 7/7 extensions present, import skbio and version check pass.

@luhenry
luhenry marked this pull request as draft October 14, 2026 11:34
The cp312 job segfaulted in tree/tests/test_me.py::test_bme_real, in
skbio/tree/_me.py's _bme calling _bal_avgdist_nest, whose prange asks
for schedule="dynamic". That compiles to libgomp's
GOMP_loop_nonmonotonic_dynamic_* path, which faults on the riscv64
runners (#617). Patch the two dynamic pranges in skbio/tree/_c_me.pyx
to schedule="static"; no other extension uses a non-static schedule.

The cp310 and cp311 jobs failed installing the wheel's runtime
dependencies: h5py and biom-format have riscv64 wheels for cp312+ only,
in our registry and on PyPI, and our scipy for them stops at 1.15.2, so
pip fell back to a scipy sdist and stopped on missing OpenBLAS. Drop
both interpreters until those dependencies are published for them.

The extensions build with -fopenmp, so auditwheel vendors the image's
libgomp into scikit_bio.libs/. Add the gpl_sources job for gcc and pass
its artifact to publish.
All three build legs (cp312/cp313/cp314) failed identically: the wheel
itself built fine, but installing it pulled in scikit-bio's unpinned
pandas>=1.5.0 runtime dependency, which pip resolved to PyPI's newest
release (3.1.0). Our registry only hosts pandas up to 3.0.6 for these
interpreters, so pip fell back to the 3.1.0 sdist, which fails to
build on riscv64: pandas' SIMD moments code calls xsimd::load_unaligned/
reduce_add/broadcast, none of which exist in xsimd's generic/scalar
riscv64 arch.

CIBW_TEST_ENVIRONMENT: PIP_PREFER_BINARY=1 (test-phase only, mirroring
gotcha 354) makes pip prefer our registry's older wheel-backed pandas
over the newer sdist-only one.

This branch has not been deployed

No deployments
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.

1 participant