Skip to content

pytrec-eval-terrier: add build-pytrec-eval-terrier.yml for riscv64 wheels - #1684

Merged
luhenry merged 1 commit into
mainfrom
pytrec-eval-terrier
Sep 10, 2026
Merged

pytrec-eval-terrier: add build-pytrec-eval-terrier.yml for riscv64 wheels#1684
luhenry merged 1 commit into
mainfrom
pytrec-eval-terrier

Conversation

@luhenry

@luhenry luhenry commented Sep 10, 2026

Copy link
Copy Markdown
Member

Compiles the vendored trec_eval C sources (git submodule, pinned v9.0.8) together with a C++ wrapper into a per-interpreter pytrec_eval_ext extension. Upstream publishes no riscv64 wheel.

Mirrors upstream's publish-to-pypi.yml manylinux job; checks out the tag with submodules so cibuildwheel builds and tests it directly.

Differs from upstream

  • Nothing beyond the riscv64 image.

Testing

  • same as upstream

License: Adds LICENSE.trec_eval: the vendored v9.0.8 sources carry a stale non-commercial-only per-file header that usnistgov/trec_eval's current repo-wide license (2024) explicitly supersedes for that same code, permissively; the wheel ships that current text.

Patches

  • 0001-Add-LICENSE.trec_eval-for-the-vendored-trec_eval-source.patch - To upstream, blocked (this port may only touch riseproject-dev/python-wheels). Without it, the wheel ships no license text for the compiled-in trec_eval sources at all - reproduces off riscv64 too.

Built locally (macOS/x86 rehearsal); 5 tests passed.

…eels

setup.py compiles the trec_eval submodule's C sources (pinned to v9.0.8)
together with src/pytrec_eval.cpp into a per-interpreter pytrec_eval_ext
extension. Checks out the upstream tag with submodules, then cibuildwheel
builds and tests it directly - no separate sdist step needed since the
submodule already carries the sources setup.py otherwise fetches over the
network from a GitHub release tarball.

A patch adds LICENSE.trec_eval: v9.0.8's individual .c files still carry
the original author's 2008 per-file header restricting use to "research,
non-commercial purposes", but usnistgov/trec_eval's current repository-wide
LICENSE.md (added 2024) explicitly relicenses "the original trec_eval, up
to version 9" as permissively-redistributable NIST public-service software.
Shipping that current, authoritative text alongside the wrapper's own MIT
LICENSE closes a real gap - the released sdist's PKG-INFO shows only the
wrapper's LICENSE today, same as every other platform wheel upstream's own
CI publishes.

Tests mirror upstream's own push.yml (pytest tests/*.py) against the
submodule's fixtures; numpy/scipy (install_requires) come from our registry
via CIBW_ENVIRONMENT. musllinux is skipped - upstream publishes none either.
luhenry added a commit that referenced this pull request Sep 10, 2026
@luhenry
luhenry merged commit 8ec6bc4 into main Sep 10, 2026
9 checks passed
@luhenry
luhenry deleted the pytrec-eval-terrier branch September 10, 2026 10:44
@luhenry luhenry linked an issue Sep 10, 2026 that may be closed by this pull request
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.

pytrec-eval-terrier riscv64 support

1 participant