You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by "Xavier Hanin (JIRA)" <ji...@apache.org> on 2007/09/17 12:10:56 UTC

[jira] Commented: (IVY-603) Static revision replacement is not working when a dynamic revision is evicted by a transitive dependency.

    [ 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.