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.