You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by "Stephen Haberman (JIRA)" <ji...@apache.org> on 2015/08/31 15:55:45 UTC

[jira] [Commented] (IVY-1141) dependencies failed using branch attribute (and extra attrubutes)

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

Stephen Haberman commented on IVY-1141:
---------------------------------------

FWIW since commenting on this issue in ~2013, we've done two things:

1) I adapted the patch to "needModuleDescriptor" to conditionally evaluate whether askedMrid has authoritative branch information in it...e.g. if you do use a path with "/[branch]/" in it, then the branch is accurate without the full module descriptor, so we can keep the fast path of not hitting the network:

https://github.com/stephenh/ant-ivy/commit/d4f2d98f7c050c3410d37319ba2d8838ad390acc

However, if you don't have "/[branch]/" in your path, then it will detect asking for a branch, and tell Ivy to fetch the full module descriptor.

Note that the commit above was proof of concept so I didn't worry about making breaking changes to the API. It would have to be revisited to see if it could be made non-breaking.

But the major improvement over the "branch-fix.diff" that I attached a few years ago, is that the github commit keeps the "only scan file lists" behavior for projects that use branches + have branches in the path.

2) We started using branches in our path, so the issue is technically somewhat moot for us at this point. E.g. we can run vanilla Ivy, and not worry about branch-inaccurate askedMrids, or we can run with the patch above (which we do), which keeps the fast-path behavior for repos like ours, but adds the fall back for repos without branch in the path.


> dependencies failed using branch attribute (and extra attrubutes)
> -----------------------------------------------------------------
>
>                 Key: IVY-1141
>                 URL: https://issues.apache.org/jira/browse/IVY-1141
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.0
>         Environment: windows 
>            Reporter: Daniel Schwager
>            Assignee: Maarten Coene
>              Labels: patch
>         Attachments: branch-fix.diff
>
>
> *** Investigation
> i tried to use the branch attribute inside my projekt DEV like this:
> 	<ivy-module version="1.1">
> 		<info ... module="DEV" ....
> 		<dependency org="testng" name="testng" 
> 			branch="mybranch1" rev="latest.integration"  
> 			conf="compile,tests->default"/>
> 		.....
> If I now try to resolve my dependencies, it failed
> because ivy 2.1.0 try to resolve the latest version (5.6) of testng/testng
> which has NO branch-keyword inside it's ivy.xml. The ivy.xml
> of version testng/testng/4.6 contains the following:
> <ivy-module version="1.1">
>     <info
>         organisation="testng" module="testng"
>         branch="mybranch1"  revision="4.6.1.2"
>         status="release"         
>         publication="20060227000000">
>       .....
> It looks like the resolver skip this 4.6.1.2 version (which is the only one containing the 
> branch attribute "mybranch1") and try to download the 5.6 (containing NO branch attribute !). 
> I go the following error message:
> [ivy:configure] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
> ...
> 	---------------------------------------------------------------------
> [ivy:resolve] :: problems summary ::
> [ivy:resolve] :::: WARNINGS
> [ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve] 		::          UNRESOLVED DEPENDENCIES         ::
> [ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve] 		:: testng#testng#mybranch1;latest.integration: several problems occured while resolving dependency: testng#testng#mybranch1;latest.integration {compile=[default], tests=[default]}:
> [ivy:resolve] 	java.text.ParseException: inconsistent module descriptor file found in 'I:\testng\testng\5.6\ivy.xml': bad branch name: expected='mybranch1' found='null'; 
> [ivy:resolve] 	java.text.ParseException: inconsistent module descriptor file found in 'http://ivyrepos.dtnet.de/testng/testng/5.6/ivy.xml': bad branch name: expected='mybranch1' found='null'; 
> [ivy:resolve] 		::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve] 
> [ivy:resolve] :::: ERRORS
> [ivy:resolve] 		shared-filesystem: bad branch name found in I:\testng\testng\5.6\ivy.xml: expected='mybranch1 found='null'
> [ivy:resolve] 		shared-web: bad branch name found in http://ivyrepos.dtnet.de/testng/testng/5.6/ivy.xml: expected='mybranch1 found='null'
> [ivy:resolve] 
> [ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> *** Make it reproducable
> I create a VERY small sample project (build.xml & ivy.xml)
> using a sample ivyrepos on our server.
> Could somebody look closer to the problem by downloading the project from
>     http://www.opensource-online.org/fileadmin/swd/ivy/ivy-test.zip
> To run, yust unzip and start "ant -f build.xml" and you can see the failure:
> [ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve]           ::          UNRESOLVED DEPENDENCIES         ::
> [ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve]           :: testng#testng#mybranch1;latest.integration: java.text.ParseException: inconsistent module descriptor file found in 'http:/
> www.opensource-online.org/fileadmin/swd/ivy/testng/testng/5.6/ivy.xml': bad branch name: expected='mybranch1' found='';
> [ivy:resolve]           ::::::::::::::::::::::::::::::::::::::::::::::
> [ivy:resolve]
> [ivy:resolve] :::: ERRORS
> [ivy:resolve]           default: bad branch name found in http://www.opensource-online.org/fileadmin/swd/ivy/testng/testng/5.6/ivy.xml: expected='myb
> anch1 found=''
> [ivy:resolve]
> [ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
> *** Same problem using extra attributes instead auf branch attribute
> if tried a workaround not using the branch-keyword but defining a own extra atrribute like this:
> <ivy-module version="2.0" xmlns:swd="http://softwaredemo.de/ivy/extra">
>  ...
> 		<dependency org="testng" name="testng"  swd:suite="mybranch-e2" rev="latest.integration"  
> 					conf="compile,tests->default"/>
> But this tells me a similar result - also a failure.
> regards
> Danny
> P.S.: refer also to http://old.nabble.com/dependencies-failed-using-branch-attribute-td26411302.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)