ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Hannon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IVY-1485) Incorrect revision of dependencies put in to delivered Ivy files
Date Mon, 10 Apr 2017 09:47:41 GMT

    [ https://issues.apache.org/jira/browse/IVY-1485?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15962661#comment-15962661
] 

Peter Hannon commented on IVY-1485:
-----------------------------------

I can confirm I'm observing this behaviour with Apache Ivy 2.4.0 - 20141213170938, it's not
just happening in the release candidate.
As soon as I switch back to 2.2.0 I'm getting the correct replacement of dynamic revisions
with static revisions in the top level ivy.xml when using ivy:deliver in an ANT script. Any
possibility of getting the patch released soon?

> Incorrect revision of dependencies put in to delivered Ivy files
> ----------------------------------------------------------------
>
>                 Key: IVY-1485
>                 URL: https://issues.apache.org/jira/browse/IVY-1485
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.3.0, 2.4.0-RC1
>            Reporter: Perrin Morrow
>            Priority: Critical
>         Attachments: 0001-Add-test-cases-for-IVY-1485.patch, 0002-Ensure-dependency-is-applicable-to-all-confs-of-matc.patch,
ivy-1485-test-cases.patch
>
>
> Ivy deliver incorrectly replaces top-level dependency revision with one from a transitive
dependency in a different conf.
> When writing the resolved Ivy properties into the cache, the Ivy ResolveEngine does not
take into account the top-level confs. If it finds the same dependency on any transitive path
it will prefer the resolved revision of the transitive dependency over that of the top-level
dependency even when that transitive dependency is being resolved into a completely different
top-level conf. This results in a delivered Ivy file, that when resolved again will pull in
the wrong version of that top-level dependency.
> Consider the following Ivy dependency chain:
> {noformat}
> top-level
>   [conf1]
>     - modA#1
>   [conf2]
>     - modB#1
>       - modA#2
> {noformat}
> Ivy resolve and retrieve will pull modA#1 into conf1 and modA#2 into conf2, as expected.
> Ivy deliver, however, will replace modA#1 with modA#2 in the delivered ivy descriptor.
When that delivered ivy file is resolved again (by some other module depending on it) it will
pull in modA#2 into both conf1 and conf2.
> This appears to be a regression in Ivy 2.3.0.  It did not happen with Ivy 2.2.0.  (Maybe
related to IVY-1300?)
> We have written some test cases that demonstrate the problem (a diff against the Git
repository master) which I will attach.
> We're also working on a patch to fix this but so far it has proved elusive.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message