[Distutils] [Numpy-discussion] Proposal: stop supporting 'setup.py install'; start requiring 'pip install .' instead
Paul Moore
p.f.moore at gmail.com
Sun Nov 8 08:23:34 EST 2015
On 8 November 2015 at 11:13, Ralf Gommers <ralf.gommers at gmail.com> wrote:
> You only have two categories? I'm missing at least one important category:
> users who install things from a vcs or manually downloaded code (pre-release
> that's not on pypi for example). This category is probably a lot larger that
> than that of developers.
Hmm, I very occasionally will install the dev version of pip to get a
fix I need. But I don't consider myself in that role as someone who
pip should cater for - rather I expect to manage doing so myself,
whether that's by editing the pip code to add a local version ID, or
just by dealing with the odd edge cases.
I find it hard to imagine that there are a significant number of users
who install from development sources but who aren't developers (at
least to the extent that testers of pre-release code are also
developers).
> As soon as you produce a wheel with any compiled code inside, it matters with
> which compiler (and build flags, etc.) you build it. There are typically subtle, and
> sometimes very obvious, functional differences. Same for sdists, contents for
> example depend on the Cython version you have installed when you generate it.
By "functional differences" I mean code changes, not build flag or
compiler version changes. My rule is that if 2 wheels have the same
version, they should be buildable from the exact same source code.
(Ideally I'd like to say sdist here, but I don't want to get sucked
into the distinction between source directory and sdist again, which
is yet another completely independent debate).
> "wheels and sdists" != "release artifacts"
Please explain. All you've done here is state that you don't agree
with me, but given no reasons.
Let me restate my comment, without using the disputed term:
"for me the act of producing wheels and sdists should freeze the version number"
I find it hard to understand what the point of a version number *is*,
if it's not to identify a specific set of source code that has been
used to generate the wheels and sdists that are tagged with that
version number. Temporary development builds can be in all sorts of
inconsistent states, and one of those states might be "the code has
been changed but the version number hasn't" but as soon as you give a
wheel or sdist to anyone else, you have a responsibility to identify
the source code that the wheel/sdist came from, and the version number
is how you do that.
Personally, I think the issue here is that there are a lot of people
in the scientific community who people outside that community would
class as "developers", but who aren't considered that way from within
the community. I tend to try to assign to these people the expertise
and responsibilities that I would expect of a developer, not of an end
user. If in fact they are a distinct class of user, then I think the
scientific community need to explain more clearly what expertise and
responsibilities pip can expect of these users. And why treating them
as developers isn't reasonable.
Paul
More information about the Distutils-SIG
mailing list