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

Reply via email to