I'm struggling to understand the objections here. As I understand the PEP, the input to building a wheel is a source tree. That may come from an unpacked sdist or a VCS checkout; hopefully those contain basically the same files, give or take some unimportant generated files in an sdist.

This seems to work for building wheels with setup.py (as pip already does), and it's not a problem for flit. So why does pip need to know how to make an sdist?

I understand the concern about copying many unnecessary files if the source tree is copied into a build directory, though I'm not entirely sure why we'd need to do that. I don't think the source tree is often so big as to be problematic, though. My clone of the IPython repository, with many years of active git history and a build of the Sphinx docs, is still under 50 MB. Most repos I work with are much smaller. If we define optional mechanisms to filter which files are copied, a fallback to copying the whole directory sounds acceptable.

Thomas