Skip to content

Building c-extension wheels for multiple python versions #268

@gaborbernat

Description

@gaborbernat

Assume you have a c-extension project (something with cython), that builds a wheel only for the current python major/minor python version. Currently building wheels for all supported python versions (e.g. CPython 3.6, 3.7, 3.8, 3.9 is very tedious with the build project). You have to create four virtual environments, install the build four times and invoke it four times (make sure your build executable names pick up the right host python version). I propose we allow a mode to build these set of wheels in a single command. Something like:

python -m build --wheel py36,py37,py38,py39 --sdist .

The good news is implementing this is simple with what we have, if we make this use case require the virtualenv extra. All we have to do is to invoke the build in a loop and pass on these python specification strings to virtualenv here. I think it's alright to support non-host python targets with the virtualenv extra only (essentially making the default --wheel py).

@FFY00 @layday @henryiii thoughts? If we agree I can do the implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions