Skip to content

v0.5.0

Choose a tag to compare

@kurok kurok released this 03 Aug 10:12

Stable-ABI wheels: one wheel per platform now covers every CPython ≥ 3.11.

Changed

  • Wheels target the CPython stable ABI (cp311-abi3, via the pyo3/abi3-py311 feature). A single wheel per platform supports every CPython ≥ 3.11 — including versions released after the build — so a new CPython minor no longer requires a repo change or a new release to be installable (#14, #15, #101).
  • The abi3 build benchmarked ~11% faster than the version-specific build (min parse time, CPython 3.12, Apple Silicon), so no hybrid version-specific wheels are shipped.
  • CI builds one abi3 wheel and runs the full CPython 3.11–3.14 test matrix against that same wheel — the stable-ABI contract is verified, not assumed. The publish matrix collapsed from one wheel per interpreter to one per platform.

Not included

  • Free-threaded CPython (cp313t/cp314t) wheels remain deferred: free-threaded builds don't support the stable ABI, and the required shared-state audit is sequenced after the lazy-parsing work (#97). On 3.13t/3.14t the source build still installs, with the GIL re-enabled on import.

PyPI availability

This release does not reach PyPI yet. The fast-mail-parser project on PyPI is still owned by a third party and remains at 0.2.5; the PEP 541 transfer request (pypi/support#11044) is open. Once the transfer completes and a Trusted Publisher is configured, the publish job can be re-run for this tag (skip-existing makes that safe). #14 and #15 close when the fixed release actually lands on PyPI.