On 28 July 2017 at 20:53, Thomas Kluyver <thomas@kluyver.me.uk> wrote:
So I'd like us to circle back round and reconsider allowing projects to specify 'use tool X to make wheels, and tool Y to make sdists'. If everyone else thinks that's unnecessary, I think we'd all be glad to finish this discussion up, but this concern has been growing in my mind for a while, and I want to get it out there before we finalise the PEP.
I think being able to have wheel-only or sdist-only backends is unnecessary. My logic is that I think that it should always be possible to create both wheels and sdists from a project - I have a strong objection to the idea of projects publishing only wheels on PyPI (it's too easy for a project website to disappear, leaving binaries on PyPI with no available source). I don't think it's a good idea to make projects specify how they make wheels and sdists separately - that just adds an additional design burden on the project, as it has to choose two build backends rather than one, and complicates the PEP as we'd have to specify how we'd handle the error if we encountered a project that failed to specify both (I'd be a very strong -1 on the PEP allowing projects to only specify one of the wheel builder or the sdist builder, for the reason I stated above). If a backend developer wants to omit sdist building support, then they can work with another backend developer who does support sdists, and write a wrapper that provides the PEP 517 interface and directs the hooks to the appropriate backend. That seems like an overcomplicated scenario to me, but it's an option if a backend developer feels that strongly. Paul