[Distutils] command line versus python API for build system abstraction (was Re: build system abstraction PEP)

Paul Moore p.f.moore at gmail.com
Wed Nov 11 08:30:58 EST 2015

On 10 November 2015 at 22:44, Nathaniel Smith <njs at pobox.com> wrote:
> "Stdin is unspecified, and stdout/stderr can be used for printing
> status messages, errors, etc. just like you're used to from every
> other build system in the world."

This is over simplistic.

We have real-world requirements from users of pip that they *don't*
want to see all of the progress that the various build tools invoke.
That is not something we can ignore. We also have some users saying
they want access to all of the build tool output. And we also have a
requirement for progress reporting.

Taking all of those requirements into account, pip *has* to have some
level of control over the output of a build tool - with setuptools at
the moment, we have no such control (other than "we may or may not
show the output to the user") and that means we struggle to
realistically satisfy all of the conflicting requirements we have.

So we do need much better defined contracts over stdin, stdout and
stderr, and return codes. This is true whether or not the build system
is invoked via a Python API or a CLI.


More information about the Distutils-SIG mailing list