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
