On October 21, 2015 at 6:15:50 PM, Daniel Holth (dholth@gmail.com) wrote:
On Wed, Oct 21, 2015 at 5:52 PM David Cournapeau wrote:
On Wed, Oct 21, 2015 at 10:25 PM, Antoine Pitrou wrote:
On Wed, 21 Oct 2015 21:41:35 +0100 Paul Moore wrote:
On 21 October 2015 at 20:41, Chris Barker 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.
Well, it is if you want it to work with older pips or pip when wheel isn’t also installed. ----------------- Donald Stufft PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA