I've been testing the latestcompatibleconflictresolver in 2.2 trunk (now I 
guess its going to be 2.4 now) as an upgrade from a custom resolver in 1.4 that 
was trying to do what latestcompatibleconflictresolver does.  I'm using the 
trunk version of latestcompatibleconflictresolver (2.4.0.alpha_20120412190413) 
with a module that needs force="true" due to a dependency conflict.  Below is 
the dependency chain.  What happens is all versions of C get blacklisted, since 
there are no version of C that satisfy the dependency (that's why force="true" 
was there), even though we've said force="true" to override at the root node.  
Should the expected behavior be that A 3.2.1 gets chosen instead?  Otherwise 
force attribute doesn't have any meaning to the 
latestcompatibleconflictresolver.

Module0 being built:
A rev=3.2.1 force=true
B rev=[3.0.10,4.0[

ModuleA: Available 3.2.1, 3.1.0, ...
No dependencies

ModuleB: Available 3.1.0, ... and earlier all with same dependencies
C rev=[1.9,2.0[

ModuleC: Available 1.24.0, ... and earlier all with same dependencies
A rev=3.1


BTW, the first time a resolve happens the output is different than repeat 
attempts.  Once its cached, the blacklist of A due to C's conflict doesn't even 
show up.  It is not until I clear the cache that the output tells me the 
problem originates with A.

Reply via email to