ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Mauri" <rma...@ariba.com>
Subject Opinions on a possible optimization enhancement to Ivy buildlist to support a form of incremental build
Date Thu, 18 Aug 2011 19:21:15 GMT
I would like to get a discussion started around an enhancement I am
considering to contribute to ivy buildlist.

 

I think it would be a valuable addition, and would like to hear from
others before contributing a formal patch/contribution.

 

The goal of this contribution is to support a form of incremental build
where given a set of changed components the buildlist would return a

short list of components that must be visited for rebuild.

 

Consider a hierarchical component directory structure (the project) and
a master build.xml with subdirectories containing ant/ivy components.

 

Parent

|

|-A

|-B

|-C

|-D

|-E

 

Consider a dependency relationship like (A depends on B etc.)

 A

/\

B C

\ /

D

|

E

 

Today, ivy buildlist can be used by this parent build to ultimately
determine the ordered build sequence (in this case starting from most
independent).

 

E D B C A 

 

Now, given that the  toplevel build has available to it a set of
components have been touched (Change-Set) , 

I'd like to constrain the list returned by ivy buildlist so that only
those components in the change set PLUS 

the components that directly depend on the change set is returned (the
rebuild-list).

 

The reason the direct dependencies are included is to catch API contract
violations that must be caught during the rebuild.

 

Change-Set: {E,C}

 

Rebuild-List: E D C A

 

I assert that subsequent subant iteration over Rebuild-List would be
more optimal than iterating over the entire project

(imagine 100's of comps in the project).

 

The enhancement to build list would be to add an attribute that
represents the Change-Set and enhance the DFS DAG traversal reporting to
return only the Change-Set and the components that depend directly on
Change-set

 

Thoughts?

 

Thanks,

Rich


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message