On Wed, Oct 21, 2015 at 5:52 PM David Cournapeau <cournape@gmail.com> wrote:
On Wed, Oct 21, 2015 at 10:25 PM, Antoine Pitrou <solipsis@pitrou.net> wrote:
On Wed, 21 Oct 2015 21:41:35 +0100
Paul Moore <p.f.moore@gmail.com> wrote:
> On 21 October 2015 at 20:41, Chris Barker <chris.barker@noaa.gov> wrote:
> > As I understand it, the current "API" that pip knows about is:
> >
> > "some subset of what setuptools provides"
> >
> > So my proposal is here is to provide a way for users to easily use jsut that
> > subset.
>
> https://pip.pypa.io/en/stable/reference/pip_install/#build-system-interface
>
> All you need to do is write a setup.py, which can do *anything you
> like*,

Reading this, the CLI options which have to be implemented are
completely tied to setuptools' own view of the world.
`--single-version-externally-managed`? `--install-headers`? Why should
a random build system care about that gunk? What should it do with it?

I agree it is not ideal, but it is not *that* hard. Regarding `--single-version-externally-managed`, if you don't care about setuptools interoperability, I believe it is safe to just ignore the flag (or more exactly do like what distutils does, that is installed directly in site-packages, and make `--single-version-externally-managed` a no-op). install_headers, I am not sure how many projects depend on that. The only projects I know that install headers (numpy, etc...) are not using the setuptools mechanism.

If that's deemed useful, I could write a simple implementation that does not use distutils/setuptools but support that interface as an example (I have something similar enough times that I unfortunately know the ropes :) )

Also, it's no longer necessary to implement 'setup.py install' at all; you can just implement bdist_wheel and pip will go from there.

Of course if pip can beat us to a better interface that would be great too, but a setup.py shim would be a fun little project that someone could do alone.