Skip to content

uv-ffi v0.10.8.post8 - The UX Safety Net & Wheel Backfill Release

Choose a tag to compare

@1minds3t 1minds3t released this 23 Apr 08:58

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 runs pip install uv-ffi on an exotic platform and pip attempts to build from source, a custom build.rs script 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-url to grab the pre-built wheel.

  • Graceful Import Failures (__init__.py): Added a pure-Python wrapper around the native extension. If the .so/.pyd file fails to load due to ABI/architecture mismatches, the resulting ImportError is intercepted. The user is presented with a highly descriptive error detailing their OS/Architecture and the exact pip command to resolve the issue using the extended GitHub index.

  • Historical Wheel Recovery: Deployed a powerful new backfill_wheels.yml workflow. 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-ffi wheel in existence.

  • README Overhaul: Completely rewrote the root and crate-level README.md files to clearly separate "Standard Platforms" (PyPI) from "Exotic Platforms" (GitHub Pages), complete with a detailed compatibility matrix.

  • Surgical Publishing: Added a source_only manual dispatch option to publish.yml allowing 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(-)