[Distutils] build system abstraction PEP

Ralf Gommers ralf.gommers at gmail.com
Thu Oct 29 18:54:19 EDT 2015

On Tue, Oct 27, 2015 at 12:23 AM, Robert Collins <robertc at robertcollins.net>

> On 27 October 2015 at 10:32, Ralf Gommers <ralf.gommers at gmail.com> wrote:
> >

> > (2) Complex example: to build a Scipy wheel on Windows with MinGW the
> > command is ``python setup.py config --compiler=mingw32 build
> > --compiler=mingw32 bdist_wheel``.
> So in this case the build tool needs to know about the compiler stuff
> itself- pip doesn't know. We have a way in pip to tunnel stuff down to
> setuptools today; thats incompatible with dynamically building wheels
> on the fly for 'pip install' - so I'm not sure it needs to be
> reflected here.

It looks like you made a start at

    "Instead we recommend that individual build tools should have
    a config file mechanism to provide such pervasive settings
    across all things built locally."

makes sense, at least up to "across". The same settings for everything
built locally isn't appropriate - should be able to have a config file for
one project. Example: you may want to build with MSVC and with MinGW on

Also, it seems to me like there should be a way to pass the full path of a
config file to the build tool via pip. Can be easily done via an optional
key "config-file" in the build tool description. Example: right now numpy
distributes a site.cfg.example that users can rename to site.cfg and
usually put right next to setup.py. When one uses pip, it may go off
building in some tmpdir, change path envvars, etc. - so how does the build
tool find that config file?


> We'll need some more input on that I think.
> ...
> > mechanism) to the build tool. If it is out of scope, I'd be interested to
> > see what you think are use-cases with complex requirements that are
> enabled
> > by this PEP.
> The PEP is aimed at enabling additional build-tools to be on parity
> with setuptools in *pip install* invocations that go through the
> wheel-autobuild-path in pip.
> The complex examples of passing arbitrary options to setup.py
> currently bypasses wheel building in pip, and so can't be tackled at
> all :(.
> But we can work on including that with some thought.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151029/969de176/attachment.html>

More information about the Distutils-SIG mailing list