Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta
#46 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python, rust

Direzione di ricerca

Inizia da pyproject.toml e dalla configurazione di maturin-action, quindi crea localmente una abi3 wheel. Esegui examples/performance/compile_execute_benchmark.py, concentrandoti sui casi size(items) e timestamp, seguito dall'intera suite di test. Il lavoro è completato quando pubblichi i numeri del confronto e decidi se il compromesso sulle prestazioni di datetime supporta il passaggio.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
43
Fork
4
Merge medio
9h 57m
PR unite (30g)
14

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di hardbyte/python-common-expression-language

Tutte le issue di hardbyte/python-common-expression-language

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.