I agree.  We have 80 modules in our dependency hierarchy and used QuickBuild2 
to do continuous on each of the modules.  But as Tim pointed out, we got into 
compatibility issues when IVY detected conflicts and picked one as the winner.  
We have since gone to doing 4 full 80 module builds in dependency order 4 times 
per 24 hour period.  We still use QuickBuild2 because I believe it is the most 
flexible and powerful out of the box and their plugin API, due out later this 
month, will only make it better.

---
Shawn Castrianni

-----Original Message-----
From: Tim Brown [mailto:[email protected]] 
Sent: Wednesday, January 20, 2010 8:42 AM
To: [email protected]
Cc: [email protected]
Subject: Re: Building a module only when changed

+1 to that.

We use Cruise to trigger builds based upon SCM changes (amongst other
things).

However, I _have_ setup builds where it determined if a particular module
has been built since it's last change.  This was using Subversion, so excuse
the svn commands ;-)


   - svn info the module directory, extract out the last changed revision
   - ivy findrevision that module, that revision into your repo
   - if it doesn't exist, build it.

That said, I don't recommend going with this approach.  In my experience,
the gains of not just rebuilding everything outweigh the expected speed
improvement.  You start finding cases where X hasn't changed, but depends on
Y.  Y changes, and is no longer compatible with X.

You get into the impact-zone approach of testing, which adds to the overhead
of determining if you need to build, etc.

My $0.02.

~Tim


On Wed, Jan 20, 2010 at 6:33 AM, Gareth Western <[email protected]>wrote:

> This sounds more like an issue for your build system rather than the
> software. I think what you're looking for is a "Continuous
> Integration" server such as Hudson, CruiseControl, or Bamboo. There
> are loads of others, but those are the 3 I hear about most frequently.
>
> These typically monitor your SCM for changes and then invoke a build
> mechanism (Ant files, Maven, custom schell scripts, etc.), and then
> publish the resulting artifacts somewhere (upload to FTP, publish in
> Ivy, etc).
>
> Hudson: http://hudson-ci.org/
> CruiseControl: http://cruisecontrol.sourceforge.net/
> Bamboo: http://www.atlassian.com/software/bamboo/
>
> Is that what you meant?
>
> On Wed, Jan 20, 2010 at 2:17 PM, Timothy Aston <[email protected]>
> wrote:
> >
> >
> > I'm wondering if anyone can advise on techniques for having a module
> build
> > only if there are changes.  i.e. if the modified dates on any files in a
> > particular fileset (the source files) are later than the publication date
> > of the latest version of the module.  I have a feeling this may require
> > ant-contrib, which is OK as our build is already using that for other
> > reasons.
> >
> >
> > -Tim
>

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and 
privileged information for the sole use of the intended recipient.  Any review, 
use, distribution, or disclosure by others is strictly prohibited.  If you are 
not the intended recipient (or authorized to receive information for the 
intended recipient), please contact the sender by reply e-mail and delete all 
copies of this message.

Reply via email to