[V3dot10] [Ann] auto build and test system (middle of next week)

Keith Hodges keith_hodges at yahoo.co.uk
Fri Jan 19 12:07:49 UTC 2007

Its nice to have lots of conversation on here at last about what we 
could do. I feel everyone is running away with themselves with ideas. As 
the biblical saying goes. "Everything is possible,... if you believe!".

I have been working hard to produce 'an' auto build system, this now 
works, YAY! I hope that it will give everyone what they want to some 

However I will say up front that this build system is 'purposefully' not 
designed to support a serial change/update stream process for 
development (deployment possibly). I feel that the serial nature of the 
update stream process, psychologically at least, makes the process 
incremental, and additive*. Removing a chunk and breaking lots of things 
that take 6 months to fix is not that easy. I am looking to support more 
radical non-sequential approach to change.

*in other compile-build approaches the build time brings a different 
pressure to re-factor, modularise and simplify.

With my proposed solution a branch, lets call it '-radicalcull', could 
begin by pulling out a large chunk of code, lets say, FileStream mess, 
and work could progress in that branch for several months to build an 
alternative which eventually becomes refined into an incrementally 
applicable piece, to be adopted into the stable branch in the future. I 
envision many such subsystem redesign projects running simultaneously. 
At some point we all desire to redesign some large part of the system, 
however since there is no mechanism for getting our new piece, tested 
integrated and adopted the motivation to do the work is limited.

This approach also helps us by slowing us down in a sense, we are not 
condemned to constantly keep up-to-date with the ever flowing update 
stream. Progress forward building on top of 3.9 can continue in the 
-stable and -unstable branches. Meanwhile if someone wants to spend 3 
months working on retrieving the change history for 3.8-3.9 then they 
can do so.
In three months time they can attempt to put their revised  "3.9 with 
fixed change history" in at the beginning of the -stable branch in the 
branch -stableWithHistory and see whether anything breaks. If this 
proves to be successful the -stable branch can then adopt the fixed 
change history image as a starting point, and no one will have lost any 

This build system is also a test server, since not only does it build an 
image for use, it continues to test that image and hence builds an image 
with all the tests run and ready for debugging should any tests not be 
green. So, as of the middle of next week-ish we have a build system. 
Whether this system is what everyone wants I don't know, but there will 
be something on the table to try out.

David, as I said this approach does not use an update stream, (which 
looking at 3.9 ScriptLoader the process seemed to be built around the 
update stream with multi-package sized updates) however if you do not 
want to download complete images, the entire build process is documented 
publically on the wiki, and you can run the build script locally (or 
even the build system itself) to obtain the same result.

This is the idea behind this build system, nothing is exclusive, 
everyone can have a go. You can have a local build system, which only 
builds the branches you are interested in, whenever they are updated. 
The work can be as centralised or decentralised as you wish. You can 
have your own branch of development scripts specified in your own wiki, 
or in local text files. It is all open and flexible.

At present there is no "perfectly re-build the build I did last tuesday 
from scratch" functionality as yet, though it is doable. Whether this is 
needed, given that an archive of (daily) images with "this is how this 
image was done" log, will be available, I don't know. (btw, I only have 
20G of disk space with 600Mb left on it so...)

as for how I think we could progress with this build process I shall pop 
that in a subsequent email

best regards


p.s. If you would like to offer to host the build process, or have a 
nice fat big empty hard disk that you could donate, or have any ideas 
please let me know.

p.p.s. if you want to run a build server yourself then I recommend a 
secure chroot jail in which you can run squeak and ruby, (possibly cvs 
too) If you succeed in setting this up by the time I am ready to publish 
then perhaps you could explain to me how to do it!

All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine 

More information about the V3dot10 mailing list