Repository navigation
Roadmap: towards caniuse for Python wheels #43
patrickballard
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
wheelgap started as a small CLI that answers one question: which of my dependencies have no prebuilt wheel for the platforms I ship to? In its first two days it gained six contributors (thank you @nodearray, @jwalith4418-Mj, @Swarneil1905, @Daiyuanranfeng, @draarivpatel-ui and @O1sumitkumar) and four releases, adding lockfile support for uv, Poetry, PDM, Pipenv and pylock, Docker-aware targets, Pyodide, pre-commit, and a GitHub Action.
This post is about where it goes next. Comments, objections and better ideas are very welcome below.
The idea: caniuse, but for Python wheels
Web developers have caniuse.com: one place to ask "does this work in that browser?". Python has no equivalent for the question we keep running into:
That question gets more common every year. Each new Python release, platform and ABI adds another column, and today the answers are spread across one-question trackers, issue threads and Dockerfile comments.
So the plan is to grow wheelgap from a CLI into an open, community-maintained map of Python wheel coverage, with the CLI as one way to use it:
psycopg[binary]instead." "Addlibpq-devto your image." "Pyodide bundles this." "Upstream is tracking it in issue docs: add a free-threading readiness recipe #123." Small, reviewed files that anyone can add, shown in the CLI's--explainoutput and on the site.Phases
Dates are aims, not promises.
Phase 1: the tracker (aiming for December 2026)
wheelgap.check_package("numpy", "2.3.4", targets=[...]), so the scanner and other tools don't go through the CLI Shipped in 0.4.0.python -m wheelgap.scan); runs every night.coverage.json, CC0Phase 2: the knowledge base (early 2027)
wheelgap --explainand on the site, with an "add a note" link on every gap--pyodide-lock) (Scanner: count packages Pyodide bundles itself #49)Phase 3: campaigns and integrations (2027)
wheelgap diff(wheelgap diff: new gaps between two lockfiles #51)Ongoing: more platforms, more inputs
How the project will be run
How you can help right now
Questions, ideas and disagreements are all welcome in the replies, or in Ideas.
Patrick
All reactions