Repository navigation
Conversation
Split out of the passagemath/passagemath monorepo (a SageMath fork) at pkgs/sagemath-objects, tagged passagemath-<version>. Compiled scope is small (62 .pyx across sage/structure, sage/cpython, sage/categories, sage/misc, sage/libs/gmp) with no ISA/SIMD-specific code; external deps (gmp, mpfr, mpc) satisfy Sage's own minimum-version checks via Rocky 10's system -devel packages, so no from-source toolchain build is needed, unlike gmpy2. gmpy2 has no musllinux riscv64 wheel, so musllinux is dropped; cp311 is dropped since gmpy2/cysignals both require >=3.12. The sdist is built by replaying build/pkgs/sagemath_objects/spkg-src (./bootstrap renders pyproject.toml.m4, then python -m build --sdist --no-isolation --skip-dependency-check against the real upstream checkout) rather than upstream's full ./configure && make python_build chain, which bootstraps the whole Sage distribution and is unneeded for this split package's own sdist.
|
|
The python_sdist job's sparse checkout of passagemath/passagemath listed only subdirectories, so the root-level ./bootstrap script was never materialised and "Render pyproject.toml" failed with exit 127. bootstrap also needs the root pyproject.toml: sage-get-system-packages install-requires-toml reads build-system/dependency constraints from it first, and without it falls back to the bare package names in build/pkgs/*/version_requirements.txt, rendering pyproject.toml with unconstrained cython/gmpy2/cysignals. With both paths added the rendered pyproject.toml matches the one in the PyPI passagemath-objects 10.8.13 sdist.
|
What failed: job 116282397236, step "Render pyproject.toml": Root cause: the non-cone Once Fix: added Local validation (same tag, the exact pattern list extracted from the updated workflow, patch applied, then
I did not run the later "build sdist" step locally, so the next CI run is the first real test of it. |
…uild build --no-isolation uses the current environment as-is instead of creating one from build-system.requires, so setuptools (the rendered pyproject.toml's build backend) must already be installed. The sdist step only installed build, passagemath-setup, and passagemath-environment, so the backend import failed: "ModuleNotFoundError: No module named 'setuptools'". Not riscv64-specific - reproduces on any platform.
|
The
Fixed by adding Generated by Claude Code |
passagemath-objects10.8.13Compiles Sage's core structure/coercion/category engine - 62 Cython modules under sage/structure, sage/cpython, sage/categories, sage/misc, sage/libs/gmp. Upstream publishes no riscv64 wheel.
Mirrors upstream's own sdist release recipe (
build/pkgs/sagemath_objects/spkg-src).Differs from upstream
./bootstrap, not the full./configure && make python_buildchain - that bootstraps the whole Sage distribution, unneeded for this split package's own sdistdnf install gmp-devel mpfr-devel libmpc-devel- system packages satisfy Sage's own minimum-version checks, no from-source build neededTesting: same as upstream (none - this split package carries no doctest step)
License: Adds the package's own LICENSE (GPL-2.0-or-later); upstream's sdist/wheel ship the licence expression but no licence text at all.
Patches
0001-add-the-package-s-own-licence-file.patch- To upstream (not yet submitted). Without it the wheel carries a licence expression with no accompanying text. Reproduces off riscv64 too.Verified the sdist step locally against the real upstream checkout: produces a 693 KB sdist, matching upstream's released size.