Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#46 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
48/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
python, rust

Piste de recherche

Commencez par pyproject.toml et la configuration de maturin-action, puis construisez localement une abi3 wheel. Exécutez examples/performance/compile_execute_benchmark.py, en vous concentrant sur les cas size(items) et timestamp, puis lancez la suite complète de tests. La tâche est terminée lorsque vous publiez les chiffres de comparaison et décidez si le compromis de performances de datetime justifie le changement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Python
Étoiles
43
Forks
4
Merge moyen
12 h 37 min
PR mergées (30 j)
11

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de hardbyte/python-common-expression-language

Toutes les issues de hardbyte/python-common-expression-language

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.