Skip to content

anastruct: Add version 1.7.0 - #2433

Merged
luhenry merged 3 commits into
mainfrom
anastruct
Sep 28, 2026
Merged

luhenry merged 3 commits into
mainfrom
anastruct

Conversation

@luhenry

@luhenry luhenry commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Compiles anastruct's celements and cbasic Cython extensions (plain floating-point beam/truss math via libc.math, no numpy C API) into a wheel. Upstream publishes no riscv64 wheel.

Mirrors upstream's release.yaml.

Differs from upstream

  • Nothing beyond the riscv64 image.

Matrix: cp310-cp314, no cp314t - matches upstream's own release matrix; upstream builds no cp314t either.

Testing

  • Adds examples to CIBW_TEST_SOURCES alongside tests - the FEM test fixtures import upstream's example scripts by path.
  • Adds pytest-describe to CIBW_TEST_REQUIRES - most of the suite is written in its BDD describe_* style and is silently uncollected without it.

License: OK

Built on cp312; 211 passed.

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.
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-28 15:38 UTC

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
luhenry marked this pull request as ready for review September 28, 2026 14:55
@luhenry
luhenry merged commit e7bd90d into main Sep 28, 2026
13 checks passed
@luhenry
luhenry deleted the anastruct branch September 28, 2026 15:35
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