ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niklas Matthies <>
Subject Re: Sharing ivyconf.xml
Date Tue, 11 Dec 2007 17:00:51 GMT
On Tue 2007-12-11 at 10:55h, Jing Xue wrote on ivy-user:
> I think you are right in principle - that a published ivy.xml does  
> indeed carry assumptions from the original settings with which it was  
> resolved. Although it's probably not the conflict manager - or  
> anything involved in pinpointing the dependency revisions, because in  
> a published ivy.xml, all the properties are substituted, all the  
> transitive depdencies have fixed revisions.

They may have fixed revisions, but unless they are used together with
the strict conflict manager, these are not necessarily the revisions
resolved by a depending module. Repeating my example:

  A ------> C1 -> D
  A -> B -> C2 -> D
       B -> C3 -> D

After publishing a version of B, B's published ivy.xml contains a
fixed version for D. Now we resolve the dependencies for some version
of A that depends on that version of B, but which happens to depend on
a different version of D than the depending version of B does. If
then, for example, the resolution process for A applies a different
latest-strategy when resolving the conflict between the D versions
than B has been using, the resulting version of D might actually be
older than the minimum required version transitively required by B
according to its own latest-strategy for D.

> As far as I can see, the parts that a published ivy.xml _doesn't_  
> remember, yet have an impact on any future builds, are the  
> repositories on it, for ivy still needs to go somewhere to actually  
> fetch the dependencies and their ivy.xml's.  And that's not going to  
> be helped by versioning the repositories, unless all these versions of  
> repositories are made available to the build at the same time, and ivy  
> adds the repository version into the published ivy.xml.

That sounds right. Versioning the repositories can make the results
reproducible, but not necessarily correct. :)

-- Niklas Matthies

View raw message