On 2 June 2017 at 23:42, Thomas Kluyver email@example.com wrote:
As was suggested at some point, I have added a build_sdist hook to my PR, with the following details:
For the sdist case, I'd prefer to leave the actual archive creation in the hands of the frontend as far as the plugin API is concerned. That lets us completely duck the fact that the sdist naming scheme and exact archive format aren't formally defined anywhere, and for pip's local build use case, we want the unpacked tree anyway.
In a lot of ways, it's closer in spirit to the wheel metadata generation hook than it is to the wheel building hook.
I was going to object to this aspect, but I realised there's a clear marker file that frontends can use to determine if they're working with an already exported sdist tree: PKG-INFO
That means the invocation protocol for the additional hook can be:
Having two hooks still leaves us open to "VCS -> sdist -> build tree -> wheel" and "VCS -> build tree -> wheel" giving different answers, and that's specifically the loophole we're aiming to close by including this in PEP 517 rather than leaving it until later.
Instead, the flow that I think makes sense is "VCS -> sdist tree [-> sdist tree -> sdist tree -> ...] -> wheel", and the above model where the export filtering is only used when PKG-INFO doesn't exist yet will give us that.
-- Nick Coghlan | firstname.lastname@example.org | Brisbane, Australia