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"
           xmlns:ivy="antlib:org.apache.ivy.ant">
     <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>
         <fileset dir="extras" includes="**/build.xml">
         </fileset>
         <fileset dir="components" includes="**/build.xml" >
           <!--lacks the artifacts to compile-->
           <exclude name="constraints/build.xml" 
unless="constraints.enabled"/>
         </fileset>
         <!--place for symlinks to external projects you want included-->
         <fileset dir="external" includes="**/build.xml"/>
       </ivy:buildlist>
     </presetdef>
     <ivy-projects reference="child.projects" />
     <echo level="verbose">The order to build the projects is
       ${toString:child.projects}
     </echo>
     <!-- build them-->
     <presetdef name="ivy-delegate" description="Delegate the build">
       <subant verbose="true">
         <buildpath refid="child.projects"/>
       </subant>
     </presetdef>

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" />
   </target>


Mime
View raw message