[Distutils] status check on PEP 517

Nick Coghlan ncoghlan at gmail.com
Thu Jul 20 08:59:51 EDT 2017


On 20 July 2017 at 20:55, Nathaniel Smith <njs at pobox.com> wrote:
> On Thu, Jul 20, 2017 at 3:22 AM, Paul Moore <p.f.moore at 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 at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list