ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johannes Stamminger <>
Subject Re: Missing configuration in eviction result
Date Fri, 28 Sep 2007 14:50:54 GMT


On Friday 28 September 2007, Xavier Hanin wrote:
> On 9/28/07, Johannes Stamminger <>
> wrote:
> > Hi!
> >

> > I tried to say, that I am not sure if both configurations should be
> > included,
> > if the requested versions defined by the dependencies resolve to
> > different ones (before conflict management), e.g. with modified example
> >
> > moduleB depends libX-1.5 in conf U,V
> >
> > Now, before conflict management, two *different* versions are resolved,
> > 1.5
> > and 1.7. Now 1.5 indeed get's evicted and I was thinking about, if it
> > would
> > be correct to "merge" the requested configurations. Maybe this should be
> > done
> > only for those, being included in both versions?
> Until now Ivy has always considered configurations as isolated. So in this
> case you would end up with libX 1.5 in V and 1.7 in U. Changing this


Before conflict management we have libX-1.5 in U *and* V, libX-1.7 in U only.
The latest conflict manager now "simply" throws away the libX-1.5 version and 
doing so "forgets" about the need of libX in conf V.

> behavior would be quite complex, and may lead to some troubles: what

I fear that you are correct here ;-(.

> happens when you resolve only one configuration out of two? I think
> dependency resolution must no depend on how the configurations are
> resolved, so we would have to take care of all configurations resolution
> even when you resolve only one configuration... not a very good idea IMO.

Maybe I misunderstood you (would be easier for me to have an example of that), 
but so far: No, you "just" ;-) have to take care on that one configuration 
you are looking for. And it must not be thrown away on eviction as it 
currently would (in my example on resolving for conf V libX would not get 
included at all).

I did not have a look to the conflict manager's sourcecode, yet, so I do not 
have an idea of how it could be implemented.
But in general speaking I would expect that a dependent lib is kept in all 
requested configurations after conflicts' management - or if the chosen 
version (in my example 1.7) does *not* provide all requested configurations 
(note that this is currently *not* covered by the above example!!!), conflict 
management IMHO has to fail (currently it does not).

An example for a case where ivy should fail to resolve would look like:
libX-1.5 provides confs U,V
libX-1.7 provides conf U only

Now with the dependencies

moduleA depends libX-1.+ in conf U
moduleA depends moduleB in conf U,V
moduleB depends libX-1.5 in conf U,V

it should fail as the latest version chosen libX-1.7 cannot fullfill the need 
for conf V.

Kind regards,
Johannes Stamminger

This email (including any attachments) may contain confidential and/or privileged information
or information otherwise protected from disclosure. If you are not the intended recipient,
please notify the sender immediately, do not copy this message or any attachments and do not
use it for any purpose or disclose its content to any person, but delete this message and
any attachments from your system. Astrium disclaims any and all liability if this email transmission
was virus corrupted, altered or falsified.
Astrium GmbH Vorsitzender des Aufsichtsrates: Thomas Mueller - Geschaeftsfuehrung: Evert Dudok
(Vorsitzender), Dr. Reinhold Lutz, Pablo Salame Fischer
Sitz der Gesellschaft: Muenchen - Registergericht: Amtsgericht Muenchen, HRB Nr. 107 647

View raw message