Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Evaluate abi3 wheels: one wheel per platform and day-one support for new Python releases

Offen
#46 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
python, rust

Rechercherichtung

Beginne mit pyproject.toml und der maturin-action-Konfiguration und erstelle dann lokal ein abi3 wheel. Führe examples/performance/compile_execute_benchmark.py aus, mit Schwerpunkt auf den Fällen size(items) und timestamp, und anschließend die vollständige Testsuite. Abgeschlossen ist die Aufgabe, wenn du die Vergleichszahlen veröffentlichst und entscheidest, ob der datetime-Performance-Kompromiss den Wechsel unterstützt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement

Context

CI builds one wheel per (platform × Python version): currently 4 CPython versions across 10 platform targets, growing by 10 wheels every October. Users on a Python that shipped after our last release fall back to the sdist and need a Rust toolchain.

Building against the stable ABI (pyo3/abi3-py311) gives one wheel per platform that works on every CPython ≥ 3.11, including ones released after us.

Trade-offs to measure before switching

  • Performance. Under abi3, PyO3 loses some fast paths. The one most likely to matter here is datetime: the chrono conversion used for timestamp/duration values goes through the C datetime API on regular builds but through Python-level attribute access under the limited API. size(items) on a 1000-element list and the timestamp cases in examples/performance/compile_execute_benchmark.py are the numbers to compare. If abi3 costs more than ~10% on timestamp-heavy workloads, keep per-version wheels.
  • Free-threading. abi3 wheels cannot target the free-threaded build, so if we want cp314t wheels (see the GIL issue) we would ship abi3 for the default build plus explicit cp314t wheels.
  • Reproducibility. The --find-interpreter flag in maturin-action becomes unnecessary; pyproject.toml gains [tool.maturin] features = ["pyo3/extension-module", "pyo3/abi3-py311"].

Suggested approach

Build an abi3 wheel locally, run the benchmark and the full test suite against it, and post the numbers here. Decide based on the datetime cases.

Vorherrschende Sprache
Python
Sterne
43
Forks
4
Ø Merge
12 Std. 37 Min.
Gemergte PRs (30 T.)
11

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus hardbyte/python-common-expression-language

Alle Issues in hardbyte/python-common-expression-language

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.