uv-ffi v0.10.8.post8 - The UX Safety Net & Wheel Backfill Release
The UX Safety Net & Wheel Backfill Release
This release completely overhauls the developer experience (DX) for users on "exotic" platforms (musl, PyPy, riscv64, s390x, etc.) and introduces a massive CI backfill system to ensure every wheel ever built is permanently indexed and available.
-
Smart Source Build Hints (
build.rs): If a user runspip install uv-ffion an exotic platform andpipattempts to build from source, a custombuild.rsscript now intercepts the build process. Before throwing a compiler error, it explicitly prints a clean, highlighted warning instructing the user to use the--extra-index-urlto grab the pre-built wheel. -
Graceful Import Failures (
__init__.py): Added a pure-Python wrapper around the native extension. If the.so/.pydfile fails to load due to ABI/architecture mismatches, the resultingImportErroris intercepted. The user is presented with a highly descriptive error detailing their OS/Architecture and the exactpipcommand to resolve the issue using the extended GitHub index. -
Historical Wheel Recovery: Deployed a powerful new
backfill_wheels.ymlworkflow. This script scans the GitHub API across all past CI runs, deduplicates, downloads, and intelligently routes hundreds of non-expired exotic wheels into their correct GitHub Releases. -
Unified PEP-503 Index: The index generator now intelligently merges PyPI's JSON API responses with the GitHub Release assets, creating a single, comprehensive HTML index of every
uv-ffiwheel in existence. -
README Overhaul: Completely rewrote the root and crate-level
README.mdfiles to clearly separate "Standard Platforms" (PyPI) from "Exotic Platforms" (GitHub Pages), complete with a detailed compatibility matrix. -
Surgical Publishing: Added a
source_onlymanual dispatch option topublish.ymlallowing for quick, wheel-less updates to the source distribution. -
Strict Platform Filtering: Enhanced the publish workflow to strictly filter which CPython targets are permitted onto PyPI, guaranteeing the 10GB limit is never breached.
📚 Documentation:
- crates/uv-ffi/CHANGELOG.md (33 lines)
⚙️ Configuration:
- crates/uv-ffi/pyproject.toml (9 lines)
Updates:
- Update HTML writing logic in backfill_wheels.yml
8 files changed, 600 insertions(+), 332 deletions(-)