ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Guice (JIRA)" <>
Subject [jira] Commented: (IVY-594) Add a transitive attribute to buildlist
Date Thu, 18 Jun 2009 23:26:07 GMT


Josh Guice commented on IVY-594:

I too have this problem.  In the buildlist example in the docs it says this "Builds a list
of build.xml files sorted according to the ivy.xml files found in an ivy directory relative
to those build files. Only build.xml files of modules which are dependencies of myapp (either
direct or transitive) are put in the result list."

The caveat is that all the ivy files between the root module and the transitive dependency
(down the chain) must be present in the local work area for a complete buildlist to be generated
(complete is defined as one that include all dependencies [transitive included] that are available
locally to build)

In the OP's example, if you only have A and C present in the work dir and you compute a buildlist
based on root A then C will not be included in the buildlist.  But if you also put module
B in the work dir, then ivy can then follow the transitive trail and correctly calculate a
build path C,B,A.

I suppose what we're asking is that if I only have A and C in my local work dir and they are
dependent transitively via B, then buildlist should be able to figure that out and produce
a build-path including A and C.

When buildlist sees that A depends on B, but no ivy.xml is present locally for B, it should
perform a resolve operation to get the ivy.xml for B (using whatever selectors are in A's
dependency block).  Then  follow the dependencies in B's remotely resolved ivy.xml adding
any dependencies that *are* present locally to the build path (further resolving any that
aren't present, continuing to add any local matches, until it exhausts the dependency graph).

In short, given A -> B -> C and locally present A and C I would expect ivy to be able
to correctly give me a build path of C,A when A is the root.

Hope this helps clarify the requirements a bit.

The use-case for this is that without this functionality developers must ensure that they
have downloaded all modules in the dependency chain (rather than just the ones they need to
change).  This makes setup a bit complicated in an environment where there are sometimes a
dozen or more modules in the dependency graph.  Ideally they could only checkout the modules
they want to modify and if they are related at all ivy would correctly compute a build path
included them.


> Add a transitive attribute to buildlist
> ---------------------------------------
>                 Key: IVY-594
>                 URL:
>             Project: Ivy
>          Issue Type: New Feature
>            Reporter: Gilles Scokart
> Currently the buildlist task only order the given ivy file without considering the dependencies
that are not in the ivy files.
> For instance if you have module A depending on B, and B depending on C, and you ask a
buildlist ordoering A and C without giving the ivy.xml file of B, the result will be unknown.
> We should add an optional parameter 'transitive' to ask to take into account the transitive
dependencies of the modules.

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

View raw message