[V3dot10] [Ann] auto build and test system (middle of next week)
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
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