Skip to content

pymaxflow: add build-pymaxflow.yml for riscv64 wheels - #1236

Open
luhenry wants to merge 1 commit into
mainfrom
pymaxflow
Open

pymaxflow: add build-pymaxflow.yml for riscv64 wheels#1236
luhenry wants to merge 1 commit into
mainfrom
pymaxflow

Conversation

@luhenry

@luhenry luhenry commented Sep 7, 2026

Copy link
Copy Markdown
Member

Compiles the Cython bindings around Kolmogorov's Boykov-Kolmogorov maxflow/min-cut C++ library. Upstream publishes no riscv64 wheel.

Mirrors upstream's maxflow-deployment.yml deploy-wheels job.

Differs from upstream

  • numpy pinned to our registry via PIP_ONLY_BINARY - PyPI's newest numpy has no riscv64 wheel.
  • Cython pulled from our registry - it has no riscv64 wheel on any index.

Matrix: cp312/cp313/cp314 - cp314t dropped, Cython has no free-threaded wheel anywhere yet.

Testing

  • same as upstream (test_maxflow.py, plus imageio/networkx test deps), staged via test-sources since it's not in the sdist.

License: Project ships no LICENSE at all despite declaring GPL; the vendored core solver's header states GPLv3-or-later explicitly, so the build adds the canonical GPLv3 text plus the solver's own notice.

Patches

  • 0001-Add-LICENSE-matching-setuptools-default-license_file.patch - To upstream, blocked (this port may only touch riseproject-dev/python-wheels). Without it the wheel ships no license text at all.

Built on cp312 locally (macOS, plain pip wheel + pytest against the installed wheel, no cibuildwheel/QEMU available in this environment); 12 passed.

Build-from-checkout cibuildwheel workflow mirroring upstream's own
cibuildwheel-based deployment job, narrowed to manylinux riscv64.
numpy is a build and runtime dependency; Cython is build-only. Both
come from our registry since PyPI ships neither for riscv64.

The project ships no LICENSE file at all despite declaring GPL in
setup.py; the vendored core solver's own header states GPLv3-or-later
explicitly. Adds the canonical GPLv3 text via patch (matching how
conda-forge's feedstock for this package fills the same gap) plus the
vendored solver's own copyright/citation notice, so both land in
dist-info/licenses/.
luhenry added a commit that referenced this pull request Sep 7, 2026
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