Skip to content

Provide a table summary view of available wheels per package release #14549

Open
@johnthagen

Description

@johnthagen

What's the problem this feature will solve?

For non pure python, non abi3-wheel packages, it's often challenging to be able to determine if a wheel is available for a given platform and (C)Python version.

Currently, a user has to wade through a long list of wheel file names and decipher their meaning. For example, try to quickly determine which Python versions and platforms are supported by pydantic-core 2.7.0:

Some projects have specific wheels for some CPython versions, but not others. For example, lxml 4.9.3 has macOS universal wheels (i.e., supports ARM) for CPython 3.11 and 3.12 only, but has x86-only wheels for 3.6-3.10.

Tracking down why pip or a workflow tool like Poetry can't resolve a wheel for a specific configuration can be challenging, especially for beginners who aren't familiar with the wheel filename format.

Another problem that this helps solve is to remove one of the uses of the Programming Language :: Python :: 3.x trove classifiers, which some in the community do like using (e.g., it requires a package to do a release just to update the trove classifier when otherwise it might not be needed). This table would make it easy for users of non pure Python, non abi3-wheel packages to quickly see which Python versions have wheels published for, rather than needing to look at the trove classifiers.

Describe the solution you'd like

Display a simple table that summarizes the available wheels for PyPI project releases on their PyPI page. If a project is pure Python and only has a pure Python wheel, this table could be omitted or otherwise simplified to a statement such as "Pure Python" or "All Platforms".

A quick and dirty draft of the idea:

Python Version win_amd64 macosx_11_0_universal2 manylinux_2_28_x86_64
CPython 3.8
CPython 3.9
PyPy 3.9 7.3

Additional context

This was originally discussed at:

@hugovk had some additional ideas, including inverting the rows/columns to make the information flow "down" more than "wide"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions