[Distutils] Request for comment: Proposal to change behaviour of pip install
Nick Coghlan
ncoghlan at gmail.com
Sat Jun 25 17:31:19 EDT 2016
On 25 June 2016 at 03:25, Pradyun Gedam <pradyunsg at gmail.com> wrote:
> Hello List!
>
> There is currently a proposal to change the behaviour to pip install to
> upgrade a package that is passed even if it is already installed.
>
> This behaviour change is accompanied with a change in the upgrade strategy -
> pip would stop “eagerly” upgrading dependencies and would become more
> conservative, upgrading a dependency only when it doesn’t meet lower
> constraints of the newer version of a parent. Moreover, the behaviour of pip
> install --target would also be changed so that --upgrade no longer affects
> it.
>
> A PEP-style write-up
> (https://gist.github.com/pradyunsg/4c9db6a212239fee69b429c96cdc3d73)
> documents the reasoning behind this proposed change, what the change is and
> some alternate proposals that were rejected in the discussions.
>
> This is a request for comments on the pull-request implementing this
> proposal (https://github.com/pypa/pip/pull/3806) for your views, thoughts
> and possible concerns related to it.
Hi Pradyun,
Thanks for putting that together. The assertion in the write-up that
the proposed behaviour matches that of operating system level package
managers doesn't sound right to me:
$ sudo dnf install -q python
Package python-2.7.11-5.fc24.x86_64 is already installed, skipping.
(My system actually has a Python update pending, so the "-q" option is
suppressing the output telling me about that, but either way, it
doesn't make any local changes unless I use the update or upgrade
subcommand or supply the "--best" upgrade strategy option to the
install command)
As far as I am aware, apt-get install behaves the same way - if you
only give a package name, and that package is already installed on the
system, it won't do anything, even if a newer version of that
component is available, and you need to use the "upgrade" subcommand
instead to say "upgrade to the latest available version".
Switching pip's "--upgrade" command line option to a non-eager upgrade
strategy sounds good to me, but making "install" upgrade the requested
component by default when given just a name (rather than a specific
file or URL reference) would be very surprising and problematic.
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Distutils-SIG
mailing list