Skip to content

BLD: supporting future-portable build targets (PEP 803 limited API) #240

Description

@neutrinoceros

Hi, I would like to propose adding support for PEP 803 abi3t as a build target.
This would allow downstream (most notably matplotlib) to start testing Python pre-releases early and without needing to build their dependencies too, as well as future-proof the package's set of published artifacts for compatibility for future versions, eliminating the need for a new release each cycle.

In principle, this could be achieved in stages:

  • support abi3 as a build target
  • publish abi3 nightlies
  • publish abi3 wheels to PyPI (in addition to version-specific ones)
  • support abi3t as a build target
  • publish abi3t nightlies
  • publish abi3t wheels to PyPI (in addition to version-specific ones)

Long term, granted the impact on performance is measured and considered acceptable, it could also make sense to stop shipping version-specific wheels altogether; retaining the ability to build them as needed, in particular for downstream re-packagers, as long as targeting stable ABIs is implemented as an opt-in (rather than an opt-out).

I have not studied the feasibility for this specific package yet, I'm just asking wether this seems like a goal worth pursuing for maintainers.
In my, perhaps limited experience, I don't think I've encountered a situation where this idea wasn't applicable, so it seems worth asking.
Thank you !

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions