incubator-ivy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xavier Hanin (JIRA)" <j...@apache.org>
Subject [jira] Commented: (IVY-603) Static revision replacement is not working when a dynamic revision is evicted by a transitive dependency.
Date Mon, 17 Sep 2007 12:10:56 GMT

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

Xavier Hanin commented on IVY-603:
----------------------------------

I agree this is a bug, but I'm not sure about the expected result. IMO, replacing 1+ by 1.2
would be more correct, because 1+ is resolved as being 1.2, not 2.2. 2.2 is the version selected
after conflict resolution. And this still ensure dependency resolution reproducibility (since
the exact same conflict resolution will occur). 

What makes me think this solution is better is if you have different conflict resolutions
in different configurations. Imagine you depend on C 2.0 only in conf runtime, but depends
on A 1+ in both runtime and buildtime confs. Then the selected version for A will be 1.2 for
the buildtime conf and 2.2 for the runtime conf. So in this case I see no other solution than
replacing 1+ by 1.2, and conflict resolution will do the rest when reproducing the dependency
resolution.

Does it make sense? Do you think I can mark the issue resolved if I fix the issue like I suggest?

> Static revision replacement is not working when a dynamic revision is evicted by a transitive
dependency.
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: IVY-603
>                 URL: https://issues.apache.org/jira/browse/IVY-603
>             Project: Ivy
>          Issue Type: Bug
>          Components: Ant, Core
>    Affects Versions: 1.4.1, 2.0.0-alpha-2
>            Reporter: Matthias Kilian
>            Assignee: Xavier Hanin
>         Attachments: deliver-dyn-evicted-1.4.x.diff, deliver-dyn-evicted-trunk.diff
>
>
> If A depends on B, rev="1+" (which resolves to, say, A-1.2) and on C, rev="2.0", *and*
C-2.0 depends on A, rev="2.2", i.e. if during resolution a dynamic dependency (A-1+ in this
case) is evicted via a transitive dependency (A-2.2 via C-2.0), the delivered Ivy-file still
contains the A-1+ dependency.
> This seems to be similar to IVY-404 and IVY-415, but maybe completely unrelated implementation-wise.
> I'll append testcases for both 1.4.x and trunk.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message