From dev-return-86586-apmail-ant-dev-archive=ant.apache.org@ant.apache.org Thu Aug 18 23:33:48 2011
Return-Path:
X-Original-To: apmail-ant-dev-archive@www.apache.org
Delivered-To: apmail-ant-dev-archive@www.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 79B868F8D
for ; Thu, 18 Aug 2011 23:33:48 +0000 (UTC)
Received: (qmail 7772 invoked by uid 500); 18 Aug 2011 23:33:48 -0000
Delivered-To: apmail-ant-dev-archive@ant.apache.org
Received: (qmail 7627 invoked by uid 500); 18 Aug 2011 23:33:46 -0000
Mailing-List: contact dev-help@ant.apache.org; run by ezmlm
Precedence: bulk
List-Unsubscribe:
List-Help:
List-Post:
List-Id: "Ant Developers List"
Reply-To: "Ant Developers List"
Delivered-To: mailing list dev@ant.apache.org
Received: (qmail 99485 invoked by uid 99); 18 Aug 2011 19:22:10 -0000
X-ASF-Spam-Status: No, hits=0.6 required=5.0
tests=HTML_MESSAGE,RCVD_IN_DNSWL_MED,SPF_NEUTRAL
X-Spam-Check-By: apache.org
Received-SPF: neutral (athena.apache.org: local policy)
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01CC5DDC.0EBBC61A"
Subject: Opinions on a possible optimization enhancement to Ivy buildlist to support a form of incremental build
Date: Thu, 18 Aug 2011 12:21:15 -0700
Message-ID: <3DDD5D9F240C2C4EB6641445773FD138024DC86F@us-hqmail5.ariba.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: Opinions on a possible optimization enhancement to Ivy buildlist to support a form of incremental build
Thread-Index: Acxd2/+oCNCidn3XTpa0uRf4Nq83RA==
From: "Richard Mauri"
To:
X-OriginalArrivalTime: 18 Aug 2011 19:21:41.0324 (UTC) FILETIME=[0F0780C0:01CC5DDC]
------_=_NextPart_001_01CC5DDC.0EBBC61A
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
I would like to get a discussion started around an enhancement I am
considering to contribute to ivy buildlist.
=20
I think it would be a valuable addition, and would like to hear from
others before contributing a formal patch/contribution.
=20
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.
=20
Consider a hierarchical component directory structure (the project) and
a master build.xml with subdirectories containing ant/ivy components.
=20
Parent
|
|-A
|-B
|-C
|-D
|-E
=20
Consider a dependency relationship like (A depends on B etc.)
A
/\
B C
\ /
D
|
E
=20
Today, ivy buildlist can be used by this parent build to ultimately
determine the ordered build sequence (in this case starting from most
independent).
=20
E D B C A=20
=20
Now, given that the toplevel build has available to it a set of
components have been touched (Change-Set) ,=20
I'd like to constrain the list returned by ivy buildlist so that only
those components in the change set PLUS=20
the components that directly depend on the change set is returned (the
rebuild-list).
=20
The reason the direct dependencies are included is to catch API contract
violations that must be caught during the rebuild.
=20
Change-Set: {E,C}
=20
Rebuild-List: E D C A
=20
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).
=20
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
=20
Thoughts?
=20
Thanks,
Rich
------_=_NextPart_001_01CC5DDC.0EBBC61A--