ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archie Cobbs <arc...@dellroad.org>
Subject Re: Please vote: changing the default conflict manager
Date Thu, 23 Sep 2010 15:56:53 GMT
You're right that the dependency from X -> Y says rev="[1.0,)" butt he
dependency from A -> Y says rev="1.0". Since we're talking about resolving
A, I would expect "1.0" to be the right choice since it satisfies A's
constraint, not "2.0", which does not.

-Archie

On Thu, Sep 23, 2010 at 10:32 AM, James Davis <james.davis@atsid.com> wrote:

> To me, the current default behavior makes sense.  The dependency for X is
> listed as 1.0 (inclusive) or newer, not 1.0 explicitly.  I myself would find
> it confusing and surprising if it resolved to 1.0 if 2.0 was available.
>
> James Davis * QA Engineer II/Software Engineer
> Applied Technical Systems, Inc. * Information Engineering
> web: www.atsid.com * e-mail: james.davis@atsid.com
> (p) 360.698.7100 x241 * (f) 360.698.7200
>
> -----Original Message-----
> From: archie.cobbs@gmail.com [mailto:archie.cobbs@gmail.com] On Behalf Of
> Archie Cobbs
> Sent: Thursday, September 23, 2010 8:04 AM
> To: Ivy Users
> Subject: Please vote: changing the default conflict manager
>
> In my opinion, the default behavior of ivy is very non-intuitive and
> violates POLA <
> http://en.wikipedia.org/wiki/Principle_of_least_astonishment>
> .
>
> I'm referring specifically to the default conflict manager being
> "latest-revision" instead of "latest-compatible".
>
> For a concrete example of what this means, suppose we have modules A, X and
> Y with these dependencies:
>
> A:
>
>  <dependency name="X" rev="3.0"/>
>  <dependency name="Y" rev="1.0"/>
>
> X:
>
>  <dependency name="Y" rev="[1.0,)"/>
>
> Y:
>
>  No dependencies
>
> Now suppose we resolve A. If only version 1.0 of Y exists, then ivy will
> choose Y=1.0 and everything is fine. Now suppose a few months later version
> 2.0 of Y is released and added to the repository. The next time A is
> resolved, ivy will choose version Y=2.0... even though the dependency in
> module A specifically states rev="1.0" for Y.
>
> To me this seems completely insane... at least for being the
> *default*behavior of ivy.
>
> However, this is just my opinion... and fixing it would mean changing ivy's
> default behavior in a backward-incompatible manner, by changing the default
> conflict manager from "latest-revision" to "latest-compatible".
>
> So the question is: would you support this change, or would it be too
> disruptive (or you just don't like it, etc.)?
>
> Thanks,
> -Archie
>
> --
> Archie L. Cobbs
>



-- 
Archie L. Cobbs

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message