Skip to content

correctionlib: add build-correctionlib.yml for riscv64 wheels - #1107

Merged
luhenry merged 5 commits into
mainfrom
correctionlib
Sep 7, 2026
Merged

correctionlib: add build-correctionlib.yml for riscv64 wheels#1107
luhenry merged 5 commits into
mainfrom
correctionlib

Conversation

@luhenry

@luhenry luhenry commented Sep 6, 2026

Copy link
Copy Markdown
Member

Compiles the pybind11 C++ correction-factor library CMS/particle-physics analyses use to apply calibration factors, vendoring pybind11/rapidjson/cpp-peglib/pcg-cpp/xxhash/lwtnn as submodules. Upstream publishes no riscv64 wheel.

Mirrors upstream's wheels.yml.

Differs from upstream

  • Dropped musllinux - no riscv64 numpy wheel anywhere
  • Dropped awkward/dask-awkward from test deps - their awkward-cpp dependency has no riscv64 wheel yet
  • cp314t builds but skips tests - pandas/scipy publish no cp314t wheel on any platform yet

Testing

  • same as upstream, minus the two test files that hard-import awkward
  • cp314t: build only, no tests (see above)

License: OK

Standard sdist-then-cibuildwheel port of the pybind11 correction-factor
library (vendored pybind11/rapidjson/cpp-peglib/pcg-cpp/xxhash/lwtnn
submodules). Drops musllinux (no riscv64 numpy wheel), narrows the test
group to skip awkward/dask-awkward (their awkward-cpp dependency has no
riscv64 wheel published yet), and builds but does not test cp314t (pandas
and scipy publish no cp314t wheel on any platform yet).
…t dep

CIBW_TEST_REQUIRES adds to, not replaces, pyproject's test-groups, so the
full upstream `test` group (including awkward/dask-awkward) was still
installed alongside it. Clear it with CIBW_TEST_GROUPS: ''. Also drop
uproot, which pulls in cramjam (no riscv64 wheel, fails cross-compiling
from source) and which no test here actually imports. Restore upstream's
own PIP_ONLY_BINARY so a similar gap fails fast instead of attempting a
multi-hour source build.
…gence)

test_lwtnn_example asserts exact float equality on a lwtnn/Eigen neural-network
evaluation and diverges from riscv64 at the 15th significant digit (~3e-16
relative, a couple of ULP) - an architecture-dependent rounding difference in
the vectorized matmul, not a functional bug. Upstream hit and deselected the
identical failure on manylinux_aarch64 (cms-nanoAOD/correctionlib#348).
luhenry added a commit that referenced this pull request Sep 6, 2026
304, not 302 - renumbered to avoid a collision while landing the new
gotcha entry in the skill (see gotchas/test-failures-and-flakes.md).
@luhenry
luhenry merged commit 702daa0 into main Sep 7, 2026
10 checks passed
@luhenry
luhenry deleted the correctionlib branch September 7, 2026 07:24
@luhenry luhenry linked an issue Sep 7, 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.

correctionlib riscv64 support

1 participant