ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maarten Coene (JIRA)" <j...@apache.org>
Subject [jira] Commented: (IVY-1196) Addition of conf="..." on own-organisation dependencies limits transitive resolve depth (and can break IvyDE). Symptoms of various conf="xxx" settings detailed
Date Tue, 15 Jun 2010 14:37:25 GMT

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

Maarten Coene commented on IVY-1196:
------------------------------------

Could you also post the published Ivy files for E, D and C?

> Addition of conf="..." on own-organisation dependencies limits transitive resolve depth
(and can break IvyDE).  Symptoms of various conf="xxx" settings detailed
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: IVY-1196
>                 URL: https://issues.apache.org/jira/browse/IVY-1196
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: ant+ivy and IvyDE
>            Reporter: Al
>            Priority: Critical
>
> The issue is that transitivity was infinite before the introduction of the conf="..."
attribute on internal dependencies. After adding conf="*->*" transitivity is limited to
a depth of 2. If I use conf="default->default" it limits to a depth of 1.
> I'll detail here the conf="*->*" case. Specific issues with other conf attributes
are detailed afterwards.
> The project environment is as follows: (all projects are internal and not third part)
> A -> B
> B -> C
> C -> D
> D -> E
> All projects specify these dependencies as 
> <dependency org="myOrg" name="X" revision="SNAPSHOT" transitive="true" conf="*->*,!javadoc,!sources"
/>
> and have 
> <configuration>
>  <conf name="default" visibility="public" transitive="true" />
>  <conf name="test" visibility="public" transitive="true" />
> </configuration>
> NB: 'test' does not extend 'default'. Also, only artifacts for the conf  'default' are
built and published. I'm trying to sort out issues with the 'default' conf before adding 'test'
in to the mix... one thing at a time, eh.
> Project E builds and publishes fine, no dependencies.
> Project D builds and publishes fine, and resolves project E.
> Project C builds and publishes fine, and resolves projects D and E
> Project B builds and publishes fine, but resolves only projects C and D. IMPORTANT: Project
B does NOT actually reference any class in project E.
> Project A fails to build, and resolves only projects B and C. It DOES reference a class
in project E.
> (For those interested in specifics, project E is a common-utils project, D and C are
api definitions and projects A and B both contain concrete implementations. this means that
project E is missing both the common-utils project A and also an essential low-level API project
B).
> Some other potentially relevant details:
> - All revisions are "SNAPSHOT" and those that publish definitely exist in the repository
and are the most recent publications. (maven friendly requirements)
> - Cleaning caches has no impact.
> - I have a <module org="myOrg" name="*" resolveMode="dynamic" > entry in my settings.xml
file.
> - I've added !source and !javadoc for completeness, and don't know if it fails without
them. If I remove them and leave only conf="*->*" the build will fail for lack of the javadoc
and source jars. If this is the cause of the limited transitivity then I definitely think
that's unexpected behaviour! Also, see my further tests on various conf settings, which should
make it clear that the issue persists in other contexts as well. 
> I have tried different conf settings on the dependencies. Here's what I get:
> - setting conf="default->default", "*->default" or "default->@" leads to a transitive
depth of just 1, and expected build errors as a result; classes in lower dependencies cannot
be resolved
> - setting conf="*->@" or conf="*->#" causes ant+ivy to exhibit the depth=2 limited
transitivity issue and IvyDE to break entirely with claims that unused confs in dependencies
are "private" when in fact they are public (confirmed by ant+ivy treating them as such)
> I can't think of any other things to test. 
> Again, the main issue here is that there seems to be a limit on the depth of transitive
dependency resolution depending on the conf="..." attribute's settings. This is unexpected
behaviour, so I think qualifies as a bug.

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