Skip to content

Discussion about supported platforms for wheels #4

Description

@lesteve

It would be nice to have a discussion at the ecosystem level on supported platforms for wheels.

The idea was floated in the past in an numpy context, e.g. this comment by @rgommers numpy/numpy#22318 (comment)

There is also the pypackaging-native page: Expectations that projects provide ever more wheels.

The following questions seems to be relevant:

  • does it make sense to have this decision at the Scientific Python level?
  • can we think of a lightweight decision process that involves a few "core" Scientific Python projects?
  • should we punt the can down the road towards root dependencies e.g. numpy?
  • is there some simple rule of thumb that we could come up with that would help making a decision to add or remove a platform?
  • are we fine removing wheels for some platforms? There is a feeling that once you add a wheel for a platform it's hard to remove it, i.e. "wheels is a larger commitment" or even "wheels are forever", but we did historically remove wheels e.g. for PyPy or 32bit.
  • when do we decide to push back and tell people to do their own PyPI index like https://piwheels.org (for Rasperry Pi), where the burden is on the community that care about the platform rather than on the project maintainers?

About some rule of thumb:

  • it feels like a supported platform would need 2 active core devs (maybe 1 is enough for small projects) that are willing to debug issues on this platform
  • one rule could be based on PyPI download stats (I am not convinced that these stats can be used in a reasonable manner see my recent talk) but I am also opened to suggestions on this.

I am opening this following two recent organized and funded effort to push for wheels for Windows arm and ppc64le (IBM-specific wheels) across the ecosystem. I felt like each project was a bit on its own to decide and push back and that a more coordinated approach could have helped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions