ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pit WaldispĆ¼hl (JIRA) <j...@apache.org>
Subject [jira] [Commented] (IVY-1174) resolved module can include configurations of evicted versions
Date Tue, 05 Jul 2011 16:47:16 GMT

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

Pit WaldispĆ¼hl commented on IVY-1174:
-------------------------------------

We've got the same problem (with Ivy 2.1.0 - 20090925235825) in our company. We've started
using Ivy without configurations. Configurations were introduced later. Problems now occure
when a dependency "A", revision "N" without configuration (i.e. having 'default' configuration)
is evicted and resolved to a revision "M" having a specified (i.e non-default) configurations.
Ivy will search "M" with 'default' configurations which doesn't exist, leading to an unresolved
dependency

E. g.:

Rev 1.0.0 of ModA is used by ModB, rev 1.0.0. No configurations are used.

<!-- ModB; 1.0.0 -->
<ivy-module [..]
   <info module="ModB" [..]
   [..]
   <dependencies>
     <dependency name="ModA" rev="1.0.0" [..]
     [..]
   [..]

In Version 2.0.0 of ModB, a configuration 'x' is introduced. ModB still depends on ModA 1.0.0

<!-- ModB; 2.0.0 -->
<ivy-module [..]
   <info module="ModB" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]

   <dependencies>
     <dependency name="ModA" rev="1.0.0" conf="x->default" [..] 
     [..]
   [..]

ModC,1.0.0 with configuration 'x' depends on ModB, 2.0.0 as well as on a new rev 2.0.0 of
ModA using configurations 'x' as well.

<!-- ModA; 2.0.0 -->
<ivy-module [..]
   <info module="ModA" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]
   [..]

<!-- ModC; 1.0.0 -->
<ivy-module [..]
   <info module="ModC" [..]
      [..]
   <configurations>
      <conf name="x" [..]
      [..]

   <dependencies>
     <dependency name="ModA" rev="2.0.0" conf="x->x" [..] 
     <dependency name="ModB" rev="2.0.0" conf="x->x" [..] 
     [..]
   [..]

Ivy produces output like
  [ivy:resolve] == resolving dependencies [..]#ModC;working@[..]->[..]#ModA;2.0.0 [x->default]

So instead of rev. 1.0.0 of ModA, Ivy correctly resolved rev. 2.0.0 but with the wrong configuration
'default' of the evicted rev 1.0.0. This leads to:

[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           ::          UNRESOLVED DEPENDENCIES         ::
[ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve]           :: [..]#ModA;2.0.0: configuration not found in [..]#ModA;2.0.0: 'default'.
It was required from [..]#ModC;1.0.0 x



> resolved module can include configurations of evicted versions
> --------------------------------------------------------------
>
>                 Key: IVY-1174
>                 URL: https://issues.apache.org/jira/browse/IVY-1174
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0-RC2
>            Reporter: Willem Verstraeten
>         Attachments: IVY-1174.zip
>
>
> Scenario:
> module_parent, with two revisions:
>   1.0, which has configurations default and runtime, where default extends runtime
>   1.0.3, which only has configuration default
> module_middle, which depends on module_parent:1.0
> module_between, which depends on module_parent:1.0.3
> module_entry, which depends on module_middle and module_between
> When resolving module_entry, version 1.0 of module_parent will be evicted, but ivy will
complain about module_parent not having a runtime configuration. Apparently, ivy has mashed
the configurations from the 1.0 version (which was evicted) with those of 1.0.3, where there
actually is no runtime configuration.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

Mime
View raw message