Conversation
anastruct is a 2D FEA library for structural engineering with two small Cython extensions (celements, cbasic) doing pure floating-point math via libc.math, no numpy C-API, no arch-specific code. Mirrors upstream's own cibuildwheel-based release.yaml, narrowed to manylinux_riscv64, matching its cp310-cp314 build matrix. numpy is pinned to binary-only (our registry carries it for riscv64; it is both a build-time and runtime dependency). Cython is left unrestricted since our registry only has riscv64 wheels for cp312+, and its own sdist builds cleanly for cp310/cp311, as it already does for crick.
luhenry
added a commit
that referenced
this pull request
Sep 28, 2026
scipy>=1.10.0 is a hard runtime dependency (missed on first pass), and matplotlib is needed for CIBW_TEST_REQUIRES. Neither has a riscv64 wheel on public PyPI, and building either from sdist needs OpenBLAS/gfortran the manylinux_riscv64 image doesn't carry -- cp310 failed exactly this way (scipy meson configure: "Dependency OpenBLAS not found"). Both are on our own registry, so pin them to binary like numpy already was.
Contributor
|
matplotlib (test-only) pulls in pillow, and unpinned pip resolves PyPI's newest pillow release ahead of our registry's -- but that release has no riscv64 wheel anywhere, so pip falls back to a source build, which fails with RequiredDependencyException: jpeg (the manylinux_riscv64 image carries no libjpeg headers). Add pillow to PIP_ONLY_BINARY so pip picks our registry's riscv64 wheel instead, matching build-lightgbm.yml and build-wordcloud.yml's handling of the same matplotlib -> pillow gap.
luhenry
marked this pull request as ready for review
September 28, 2026 14:55
luhenry
added a commit
that referenced
this pull request
Sep 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
anastruct1.7.0Compiles anastruct's
celementsandcbasicCython extensions (plain floating-point beam/truss math vialibc.math, no numpy C API) into a wheel. Upstream publishes no riscv64 wheel.Mirrors upstream's
release.yaml.Differs from upstream
Matrix: cp310-cp314, no cp314t - matches upstream's own release matrix; upstream builds no cp314t either.
Testing
examplestoCIBW_TEST_SOURCESalongsidetests- the FEM test fixtures import upstream's example scripts by path.pytest-describetoCIBW_TEST_REQUIRES- most of the suite is written in its BDDdescribe_*style and is silently uncollected without it.License: OK
Built on cp312; 211 passed.