[Distutils] build system abstraction PEP

Marcus Smith qwcode at gmail.com
Thu Oct 29 07:33:57 EDT 2015

> > 4) Although using a process interface is not necessarily a problem, I
> don't
> > agree with your point on why a python interface would be unworkable.
> You're
> > assuming that pip would try to import all the build tools (for every
> > dependency it's processing) in the master process.  An alternative could
> be
> > that pip would have it's own tool (that runs as a subprocess in an
> isolated
> > env) that knows how to load and work with python build interfaces.   You
> > could argue that a python api is  an advantage, because build tools
> aren't
> That would mean that pip has to have the same exact version of it embedded
> in the environment that build tools will be run in, which it doesn't have
> today.

sorry, I can't make clear sense of your sentence here.  :  )

I'll just explain my point again.

pip doesn't necessarily have to "interact with many different versions of
the same build tool during a single invocation" if for example it's
subprocessing the interactions to some "pip-build" tool that handles the
imports and use of the python API.  I.e. pips calls some "pip-build" too
(per build), which does the import, not pip itself.

and again, it's not about arguing for this idea, but just that your
"in-process APIs are harder" argument doesn't decide the matter.

> I see no problem with evolving them in lockstep,

it's unnecessarily complex IMO.  if they're really in lockstep, then
they're one thing it seems to me.

I'd rather avoid the chance for a bug where something tries to parse a
> v2 schema build
> description with a v1 schema parser.

but it won't happen?  the pypa.yaml schema version would determine the
parser version that's used.

> > 7) it's unclear when pip get's to run "dist-info" and when the result
> might
> > be different.   For example, we've discussed that run time dependencies
> may
> > get clarifed *after* the build process.... so this command might produce
> > different results at different times?
> Pip would run dist-info when determining the install-requires and
> extras for the package.

you're not addressing the point about how the act of building can create
new run time dependencies, per the whole long discussion with Nathaniel
 recently  (his draft deals with this matter explicitly)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151029/f6ab19d2/attachment.html>

More information about the Distutils-SIG mailing list