Skip to content

passagemath-libbraiding: Add version 10.8.13 - #4757

Draft
luhenry wants to merge 5 commits into
mainfrom
port/passagemath-libbraiding
Draft

luhenry wants to merge 5 commits into
mainfrom
port/passagemath-libbraiding

Conversation

@luhenry

@luhenry luhenry commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Compiles the Cython wrapper sage.libs.braiding over the libbraiding C++ library. Upstream publishes no riscv64 wheel.

Builds the sdist the same way as build-passagemath-objects.yml; upstream's own dist.yml builds every split through a full Sage ./configure && make.

Differs from upstream

  • libbraiding built from the release tarball upstream pins - Rocky 10 has no libbraiding package

Matrix: cp311 dropped - cysignals has no cp311 riscv64 wheel. Otherwise upstream's cp312-abi3 and cp314t, manylinux and musllinux.

Testing

  • Upstream's doctests need passagemath-groups' BraidGroup and passagemath-repl, which are not on riscv64; the module's doctest examples are replayed against a minimal braid stand-in instead.

License: Wheel bundles libbraiding (GPL-3.0-or-later); upstream ships no licence text for it or for the package itself, so the build adds both.

Patches

  • 0001-add-the-package-s-own-and-libbraiding-s-licence-files.patch - To upstream (not yet submitted). Without it the wheel carries no licence text. Not riscv64-specific.

Not built yet; CI pending.

Build the riscv64 wheels of passagemath-libbraiding, the libbraiding
split of the passagemath/passagemath monorepo, the same way
build-passagemath-objects.yml does: sparse checkout at tag
passagemath-<version>, ./bootstrap, sdist, then cibuildwheel.

Unlike most passagemath-* splits, its build-system requires neither
passagemath-objects nor passagemath-categories, only cysignals,
cython and the pure sage_conf/sage_setup/environment helpers.
libbraiding itself is built from the release tarball pinned in
upstream's build/pkgs/libbraiding, and the wheels are tested by
replaying the module's doctests against a minimal braid stand-in.
luhenry added a commit that referenced this pull request Nov 9, 2026
…ver actually blocked on passagemath-objects)
…g.py

sage_setup only descends into an implicit namespace package directory that
holds an __init__.py or an all*.py file. Without
src/sage/libs/all__sagemath_libbraiding.py in the sparse checkout, sage/libs
was skipped, braiding.pyx was never found, and the build produced a
py3-none-any wheel that cibuildwheel rejects.
_publish-wheel.yml now requires a matrix input (main's "publish:
Validate effective wheel targets"), but this PR branch forked before
that landed and passagemath-libbraiding has never been merged to
main, so build-passagemath-libbraiding.yml never picked up the
matching one-line update every already-published package's workflow
got. The merge ref combines the new required-input _publish-wheel.yml
with this branch's old build-passagemath-libbraiding.yml, so any run
has failed startup with "Input matrix is required, but not provided".

Pass it the same way the mass-update commit did for every other
package's publish job.

This branch has not been deployed

No deployments
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