You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Pier Fumagalli <ia...@gmail.com> on 2008/06/13 13:16:18 UTC

Little problem with "strict" conflict manager...

Hello everyone...

I'm wondering if someone here can lend a hand to figure out one little  
problem. I'm trying to have an uber-strict dependency resolution (if  
two projects don't depend on the same version of another one, I want  
the build to fail) and I've tried to use the "strict" conflict  
manager, but it doesn't seem to work.

Here is my scenario:

                             +-----------+
                             | MyProject |
                             +-----------+
                               /       \
                  depends on  /         \  depends on
                             /           \
+-----------------------------+       +----------------------+
| CommonDependancyProject 4.1 |       | SomeOtherProject 1.0 |
+-----------------------------+       +----------------------+
                                                 |
                                                 | depends on
                                                 |
                                +-----------------------------+
                                | CommonDependancyProject 3.0 |
                                +-----------------------------+


So, as you can see from the drawing above, I have the following:

* MyProject depends on:
   -> CommonDependancyProject version 4.1
   -> SomeOtherProject version 1.0

* SomeOtherProject depends on:
   -> CommonDependancyProject version 3.0

In my case, CommonDependencyProject has introduced some incompatible  
changes between version 4.1 and 3.0, and I want my build to fail if  
this kind of collision is detected, but apparently Ivy happily ignores  
it and picks up CommonDependancyProject 4.1 ignoring entirely 3.0...

I tried the following to solve this:

* I used the "strict" ConflictManager by adding in my Ivy settings file:
     <settings defaultResolver="default"  
defaultConflictManager="strict"/>

* Tried defining a new conflict manager and setting that as default:
     <settings defaultResolver="default"  
defaultConflictManager="uberstrict"/>
     <conflict-managers>
       <regexp-cm name="uberstrict" regexp="(.*)"/>
     </confluct-managers>

* Tried writing my own conflict resolver, but nothing returned by  
"resolveConflicts" seems to work

Simply my "CommonDependancyProject" version 3.0 is never-ever passed  
to the conflict resolver, apparently.

I'm using 2.0 beta 2 but I've tried to download the latest head from  
SVN and the behavior is the same. What am I doing (obviously) wrong?

	Pier


Re: Little problem with "strict" conflict manager...

Posted by ar...@dellroad.org.
On 6/13/08, Pier Fumagalli <pi...@joost.com> wrote:
>
> On 13 Jun 2008, at 13:16, Pier Fumagalli wrote:
>
>> Hello everyone...
>>
>> I'm wondering if someone here can lend a hand to figure out one
>> little problem. I'm trying to have an uber-strict dependency
>> resolution (if two projects don't depend on the same version of
>> another one, I want the build to fail) and I've tried to use the
>> "strict" conflict manager, but it doesn't seem to work.
>
> I actually think I found what I was doing wrong.

Please tell, you've got us curious :-)

-Archie
-- 
Archie L. Cobbs

Re: Little problem with "strict" conflict manager...

Posted by Pier Fumagalli <pi...@joost.com>.
On 13 Jun 2008, at 13:16, Pier Fumagalli wrote:

> Hello everyone...
>
> I'm wondering if someone here can lend a hand to figure out one  
> little problem. I'm trying to have an uber-strict dependency  
> resolution (if two projects don't depend on the same version of  
> another one, I want the build to fail) and I've tried to use the  
> "strict" conflict manager, but it doesn't seem to work.

I actually think I found what I was doing wrong.

	Pier