[Distutils] Overriding dependency versions

Jim Fulton jim at zope.com
Thu May 16 16:16:17 CEST 2013


On Thu, May 16, 2013 at 10:13 AM, Daniel Holth <dholth at gmail.com> wrote:
> On Thu, May 16, 2013 at 10:08 AM, Jim Fulton <jim at zope.com> wrote:
>> On Thu, May 16, 2013 at 9:51 AM, Daniel Holth <dholth at gmail.com> wrote:
>>> If you were to say:
>>>
>>> install gerbil==3 wheel==0.16
>>>
>>> and gerbil version 3's requirements were:
>>>
>>> water_bottle == 4
>>> shavings < 7
>>> wheel >= 0.16 # of course
>>>
>>> and shavings's requirements were:
>>>
>>> cedar == 0.9
>>>
>>> The root of the dependency graph is "gerbil==3 wheel==0.16.0". These
>>> are the only == constraints that will be honored.
>>>
>>> The proposed option would keep "gerbil==3 wheel==0.16.0", convert
>>> water_bottle==4 and cedar==0.9 to just water_bottle and cedar, and
>>> respect the >= and < constraints.
>>
>> Ignoring requirements, especially in the absence of conflict, as in
>> the case above, seems like a bad idea to me.  I could see high-level
>> == requirements overriding lower-level requirements, possibly with a
>> warning.
>>
>> (I'm not sure what the scope of this discussion is; whether it's just
>> pip, or whether
>> the original question was meant to be general.)
>
> It is a general idea which would of course have to be implemented in
> pip or whatever.   Generally, what do do when your dependencies
> declare incorrect dependencies of any kind; specifically the idea of
> making it easy to ignore == because it is almost always wrong.

I don't think it should be up to the tool to decide that a dependency is wrong.

IMO, the tool should satisfy the declared dependencies as well as possible,
report conflicts, and give the user a way to decide a conflict.

Jim

-- 
Jim Fulton
http://www.linkedin.com/in/jimfulton


More information about the Distutils-SIG mailing list