On 27 June 2017 at 01:33, Daniel Holth <dholth@gmail.com> wrote:
My impressions on reading what is hopefully the current version of the PEP
Are there different paths to get to sdist/wheel for example tree -> prepare sdist/wheel files -> build sdist and tree -> build sdist, tree -> build wheel depending on what [pip] decides to do? Should the frontend do both and compare the result to make sure it is the same?
I'm not entirely clear on what the prepare hooks should do.
The rationalizations interleaved between the descriptions of each hook distract from what the hooks should actually do. Suggested replacement rationalization: "Some people like to build [format]. This hook builds [format]".
I think it would be worth restructuring that part of the PEP so the required hooks (build_sdist, build_wheel) are listed in their own section, followed by a separate section for the optional ones (get_build_sdist_requires, get_build_wheel_requires, prepare_wheel_metadata, prepare_wheel_input_files) The latter four all already define what frontends are expected to do if they're missing: get_build_sdist_requires: assume no extra dependencies for build_sdist get_build_wheel_requires: assume no extra dependencies for build_wheel prepare_wheel_metadata: call build_wheel and extract the dist-info directory prepare_wheel_input_files: call build_sdist and unpack the resulting archive Backends will only need to implement those if the default behaviours are either wrong (e.g. the backend may need extra platform dependent dependencies), or grossly inefficient. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia