hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <ste...@apache.org>
Subject Re: Developing cross-component patches post-split
Date Fri, 03 Jul 2009 15:45:17 GMT
Todd Lipcon wrote:
> On Wed, Jul 1, 2009 at 10:10 PM, Raghu Angadi <rangadi@yahoo-inc.com> wrote:
>> -1 for committing the jar.
>> Most of the various options proposed sound certainly better.
>> Can build.xml be updated such that Ivy fetches recent (nightly) build?
> This seems slightly better than actually committing the jars. However, what
> should we do when the nightly build has failed hudson tests? We seem to
> sometimes go weeks at a time without a "green" build out of Hudson.
>> HDFS could have a build target that builds common jar from a specified
>> source location for common.
> This is still my preffered option. Whether it does this with a <javac> task
> or with some kind of <subant> or even <exec>, I think having the source
> trees "loosely" tied together for developers is a must.

Here's a stripped down version of how we order our child builds; ivy 
works out the order to build things. Anything in the subdir  external/ 
gets build too, so I can play games with other projects and symbolic links

  <target name="ivy-init" depends="ivy-init-antlib"
     <presetdef name="ivy-projects">
       <ivy:buildlist onMissingDescriptor="skip">
         <fileset file="smartfrog/build.xml" />
         <fileset file="testharness/build.xml" />
         <fileset file="antbuild/build.xml" />
         <fileset dir="release">
           <include name="build.xml" unless="do.not.release"/>
         <fileset dir="extras" includes="**/build.xml">
         <fileset dir="components" includes="**/build.xml" >
           <!--lacks the artifacts to compile-->
           <exclude name="constraints/build.xml" 
         <!--place for symlinks to external projects you want included-->
         <fileset dir="external" includes="**/build.xml"/>
     <ivy-projects reference="child.projects" />
     <echo level="verbose">The order to build the projects is
     <!-- build them-->
     <presetdef name="ivy-delegate" description="Delegate the build">
       <subant verbose="true">
         <buildpath refid="child.projects"/>

This creates a new task <ivy-delegate> that gives the work to the 
children in the right order, you then delegate the work

   <target name="clean" depends="ivy-init,ivy-dirs"
     description="pass clean down to all the ivy-managed projects">
     <ivy-delegate target="clean" />

View raw message