Repository navigation
Conversation
|
…runtime-32 pyproject.toml's [build-system] requires pins "polars>=0.20.6", which maturin never actually needs (its Rust polars dependency comes from crates.io, and get_requires_for_build_wheel() returns no extra requirements). Resolving it anyway pulls the newest polars (2.0.0), whose polars-runtime-32 wheel build falls back to source on riscv64 and needs a newer Rust edition than the pinned nightly-2024-08-25 toolchain provides. Switch the cibuildwheel frontend to "pip; args: --no-build-isolation" and preinstall only maturin, so build-system.requires is never resolved.
|
CI was failing in the Root cause: upstream's Fix: switched the cibuildwheel build frontend to |
Cargo.toml enables pulp's and faer's "nightly" features on every
non-ARM target. On riscv64, pulp 0.18.22's "nightly" re-exports
core::arch::riscv64 without enabling the riscv_ext_intrinsics feature
gate, so the build fails on nightly-2024-08-25 with:
error[E0658]: use of unstable library feature 'riscv_ext_intrinsics'
--> pulp-0.18.22/src/core_arch/mod.rs:24:13
Patch Cargo.toml so riscv64 gets faer and pulp without "nightly" (as
upstream already does for ARM), keeping faer's other features. The
dependency graph is unchanged, so the committed Cargo.lock still
resolves with --locked.
…r for current polars Test with polars[pandas,pyarrow] as tests/requirements-test.txt does: statsmodels' formula API and the statistics test go through DataFrame.to_pandas(), which needs pyarrow. Cap polars below 2.0 at test time: the 0.3.5 suite calls Expr.flatten, removed in polars 2.0. Patch the _make_data test helper to return float values from its map_elements(return_dtype=Float64) UDF; polars 1.36 and later no longer cast the Int64 group column implicitly, which broke test_non_contiguous.
…els only
The test-requires install resolved PyPI's newest numpy (2.5.4) and pandas
(3.1.0), which have no riscv64 wheel and are newer than the registry's, so
pip built both from sdist. numpy took 20 minutes; pandas 3.1.0 then failed
to compile its xsimd-based moments_simd.hpp on riscv64:
error: 'load_unaligned' is not a member of 'xsimd'
Set PIP_ONLY_BINARY for the compiled test dependencies in the test
environment only, so they resolve to the registry's riscv64 wheels
(numpy 2.4.3, pandas 3.0.6, pyarrow 26.0.0, scipy 1.17.1, statsmodels
0.15.0, scikit-learn 1.9.1, polars-runtime-32 1.44.2).
polars-ols0.3.5Compiles the
_polars_olspyo3-polars plugin (Rust, faer, abi3-py38). Upstream publishes no riscv64 wheel.Mirrors upstream's
CI.yml.Differs from upstream
nightly-2024-08-25-rust-toolchain.tomlfloats on nightly; this is the release's build dateMatrix: one cp38-abi3 wheel, built on cp312 and tested on cp312/cp313. cp314: statsmodels (test dependency) has no riscv64 wheel; cp314t: pyo3 0.21 has no free-threading support.
Testing
License: OK