On 4 July 2017 at 18:58, Thomas Kluyver <tho...@kluyver.me.uk> wrote: > On Tue, Jul 4, 2017, at 09:45 AM, Nick Coghlan wrote: >> +1, but we should explicitly note in the rationale section of the PEP >> that it's to cover both of the following cases: >> >> * build from an already unpacked and potentially edited sdist" >> * cleanly support explicitly out-of-tree builds even when the >> dependencies for working with the VCS aren't available > > I'm happy to add a note about these requirements. Are you planning to > merge some of Nathaniel's rewrite? If so, I'll hold off from making any > changes until that is done.
My proposed way forward is that I'll put together a PR tomorrow (my time, so Wed July 4 in UTC+10) that restructures things along the lines of Nathan's proposal, but doesn't make any functional changes to the PEP (except to rename some of the hooks to more clearly group them into related families). To be completely explicit, that grouping will be: Mandatory backend hooks: - build_sdist - build_wheel Optional backend hooks: - get_requires_for_build_sdist - get_requires_for_build_wheel - prepare_metadata_for_build_wheel - prepare_input_for_build_wheel The basis for the revised naming convention is: - all optional hooks are called X_for_Y, where Y must be a mandatory hook name - get_requires_* reports dynamic dependencies that can't be captured in pyproject.toml via environment markers - prepare_metadata generates wheel metadata without building binary extensions - prepare_input allows for out-of-tree builds even if the requirements for building an sdist aren't met Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig