On Mon, Jul 17, 2017 at 10:15 PM, Nick Coghlan <ncogh...@gmail.com> wrote:

> On 17 July 2017 at 20:00, Ralf Gommers <ralf.gomm...@gmail.com> wrote:
> >
> >
> > On Mon, Jul 17, 2017 at 8:53 PM, Nick Coghlan <ncogh...@gmail.com>
> wrote:
> >>
> >> On 17 July 2017 at 18:29, Ralf Gommers <ralf.gomm...@gmail.com> wrote:
> >> > On Mon, Jul 17, 2017 at 7:50 PM, Nick Coghlan <ncogh...@gmail.com>
> >> > wrote:
> >> >> The minimal specification for in-place builds is "Whatever you would
> >> >> do to build a wheel file from an unpacked sdist".
> >> >
> >> > Eh no, in-place has nothing to do with building a wheel. Several
> people
> >> > have
> >> > already pointed this out, you're mixing unrelated concepts and that's
> >> > likely
> >> > due to you using a definition for in-place/out-of-place that's
> >> > nonstandard.
> >>
> >> I'm using in-place specifically to mean any given PEP 517 backend's
> >> equivalent of an unqualified "./setup.py build_wheel".
> >
> >
> > Thanks. Very much nonstandard and possibly circular, but at least you've
> > defined it:) I suggest you pick more precise wording, because this leaves
> > little room for the more common use of in-place. Which you can define in
> > several flavors as well, but all of them definitely have the property
> that
> > if you put the source directory on sys.path you can import and use the
> > package.  build_wheel does not have that property.
>
> Ah, thanks for clarifying. That's using "in-place" to refer to the
> Python-specific notion of an editable install ('setup.py develop',
> 'pip install -e', etc).


Not really Python-specific, here's two of the first results of a Google
search:
https://cmake.org/Wiki/CMake_FAQ#Out-of-source_build_trees
https://stackoverflow.com/questions/4018869/what-is-the-in-place-out-of-place-builds
It's basically: build artifacts go right next to the source files. For
Python it then follows that you can import from the source dir, but that's
just a consequence and not part of the definition of in-place at all.


> Not a usage I've personally encountered, but
> I'm also a former embedded systems developer that now works for an
> operating system company, so I'm not necessarily the most up to speed
> on common terminology in environments more specifically focused on
> Python itself, rather than the full C/C++(/Rust/Go)/Python stack :)
>
> The in-place/out-of-tree sense currently used in the PEP (and my posts
> to the list about this point) is the common meaning for compiled
> languages, and hence the one common to most full-fledged build
> systems.
>

Well, you keep on saying "build_wheel". A wheel is a packaging artifact
rather than a build artifact, and is Python-specific. So not common for
compiled languages.

My mental picture is:
1. build steps (in/out-place) produce .o, .so, etc. files
2. building a wheel is a two-step process: first there's a build step (see
point 1), then a packaging step producing a .whl archive.

I suspect most people will see it like that. Hence it is super confusing to
see you describing a *build* concept like in-place with reference to a
*packaging* command like build_wheel.

Cheers,
Ralf


However, it will definitely make sense to clarify that point, as it's
> quite reasonable for folks to read a phrase with a Python specific
> meaning in a PEP, even if key parts of that PEP are primarily about
> effectively interfacing with build systems originally designed to
> handle precompiled languages :)
>
> 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