diff --git a/.github/workflows/build-lapx.yml b/.github/workflows/build-lapx.yml index 948ce36387ba..cbac0f56ac24 100644 --- a/.github/workflows/build-lapx.yml +++ b/.github/workflows/build-lapx.yml @@ -68,10 +68,15 @@ jobs: only: ${{ matrix.python }}-manylinux_riscv64 env: CIBW_MANYLINUX_RISCV64_IMAGE: ${{ env.MANYLINUX_RISCV64_IMAGE }} + # From 0.11.0 setup.py builds the LAPJVR/LAPJVH solvers with Rust and + # refuses to build without cargo, so install the toolchain in-container. + CIBW_BEFORE_ALL_LINUX: >- + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y # numpy is a build-time (headers) and runtime dependency, scipy a test-only # one; only our registry has either for riscv64. Only-binary keeps a newer # PyPI release from winning the resolution and then compiling from sdist. CIBW_ENVIRONMENT: >- + PATH="$PATH:$HOME/.cargo/bin" PIP_EXTRA_INDEX_URL=https://pypi.riseproject.dev/simple/ PIP_ONLY_BINARY=numpy,scipy CIBW_TEST_REQUIRES: pytest pytest-timeout scipy @@ -90,9 +95,10 @@ jobs: for whl in sys.argv[1:]: names = zipfile.ZipFile(whl).namelist() exts = {n.split("/")[-1].split(".")[0] for n in names if n.endswith(".so")} - assert exts == {"_lapjv", "_lapjvc", "_lapjvs", "_lapjvx"}, exts + assert {"_lapjv", "_lapjvc", "_lapjvs", "_lapjvx"} <= exts, exts licences = {n.rsplit("/", 1)[-1] for n in names if ".dist-info/licenses/" in n} - {""} - assert licences == {"LICENSE", "NOTICE"}, licences + # 0.11.0 vendors Rust crates and ships THIRD_PARTY_NOTICES for them. + assert licences == {"LICENSE", "NOTICE", "THIRD_PARTY_NOTICES"}, licences EOF - name: Store wheels diff --git a/docs/packages/lapx.yaml b/docs/packages/lapx.yaml index 3ccce92a3da6..279f700fdc42 100644 --- a/docs/packages/lapx.yaml +++ b/docs/packages/lapx.yaml @@ -32,3 +32,4 @@ versions: - filename: lapx-0.10.0-cp314-cp314t-manylinux_2_39_riscv64.whl sha256: 51d429455983f49a25a733c3a1b94bdf9a0ec91e39584d78edc5dba2e35b89c2 requires-python: '>=3.7' +- version: 0.11.0