Wondering how people setup for repeatable integration builds using ivy.

I'm currently reading through some of the documentation that I skimmed over 
previously when I put together a simple mirror repository for external projects 
that we are using. 
http://ant.apache.org/ivy/history/latest-milestone/bestpractices.html in 
particular the section "Dealing with integration versions". 

Now I need to start handling the inter project dependencies a bit better, 
particular as the number of components increase. In the section "Dealing with 
integration versions", I'm leaning towards using the second option 
"automatically create a new version for each", however I'm not sure how to 
handle making sure that the version constraints put in place allow for 
repeatable builds.

For head of tree builds, using 'latest.integration' seems fine. But I see that 
falling down if someone wishes to build older releases in order to retest bugs.

Example
SVN tree @ revision 2000
QA need a build of revision 900 to test for a particular bug, the existing one 
has been pruned, so will need a fresh build
Tree consists of components A, B and C where both A and B rely on C. Build 
order is something that I'll have to work out with the continuous integration 
software I'm using.
How do I ensure that that components A & B, don't use a build of C that is 
newer that svn revision 900?


It seems that I'm likely to either 
i) include the svn revision as part of the version number of each integration 
release and have the continuous integration software set the svn revision used 
as a property at build time. And code the version constratins to use this 
revision as a max limit? (seems very svn centric as it relies on numerically 
increasing repository revision strings)
ii) or when rebuilding older builds create a temporary repository that is used 
instead and have all components build and publish to this repository. Thus the 
components with dependencies can just reference the latest.integration release 
from the temporary repository which will be guarenteed to include binaries only 
from the same source repository revision


Any other options, or am I missing something in ivy that will make this easier 
to handle?


--
Regards,
Darragh Bailey

Systems Software Engineer
Hewlett Packard Galway Ltd.

Postal Address:    Hewlett Packard Galway Limited, Ballybrit Business Park, 
Galway
Registered Office: Hewlett Packard Galway Limited, 63-74 Sir John Rogerson's 
Quay Dublin 2
Registered Number: 361933 


Reply via email to