On 20 July 2017 at 20:55, Nathaniel Smith <njs@pobox.com> wrote:
On Thu, Jul 20, 2017 at 3:22 AM, Paul Moore <p.f.moore@gmail.com> wrote: My impression is that people are going to have to pretty much read from scratch anyway, because the official version is kind of in a messy state right now.
Aside from the need to better specify the semantics of the build_directory parameter, there's nothing messy about the actual specification section, which is what Paul is referring to (since he's one of the folks that reviewed the PRs): https://www.python.org/dev/peps/pep-0517/#build-backend-interface
It's had a number of changes merged recently, it has more changes pending in a PR,
As Donald picked up, what got missed were some of the later examples in the non-normative section, which is the PR that Thomas hadn't had a change to review yet. He's done so now, and I've merged it, so the web version should be self-consistent again shortly.
it's missing features that everyone agrees are needed (NotImplementedError), and it's in a confusing shape because of how it's grown organically over the last ~1.5 years, while my draft is cleaned up into some rational structure.
Thomas also cleaned up the PEP itself, and that's the version he, Paul and I were iteratively updating as the discussion was in progress.
And even if we eventually want to stick with the version in the PEPs repository, then IMO it's probably more useful to look at a minimal thing and ask "what is this missing?" than to look at something with extra stuff added and ask "what can we take away?".
That's what we did that when you first posted your proposed changes, and several of us found it to be both lacking (missing the metadata preparation hook and out-of-tree build support) *and* overly complicated (adding support for arbitrary tool-specific extensions for no clear reason). However, the related discussion did lead to one already captured change (switching explicitly out-of-tree builds from an optional hook to a simple build_directory parameter, which makes them much easier to delegate to third party build systems), as well as one pending change that isn't yet present in either variant: specifically raising NotImplementedError to indicate that an operation isn't supported in the current environment (either because of missing metadata or missing tools). So while your set of questions is good, you're proposing to ask them about the wrong API design at this point, as it's the one currently in PEP 517 that's close to acceptance & implementation, not anything else. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia