ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archie Cobbs <arc...@dellroad.org>
Subject Please vote: changing the default conflict manager
Date Thu, 23 Sep 2010 15:03:45 GMT
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

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