[pony-build] continuous integration and version control; next tasks

C. Titus Brown ctb at msu.edu
Sat Jan 23 22:50:45 PST 2010


Hi folks,

here's some general info on how to think about next week's tasks for the
UCOSP students.  Kibitzing comments welcome :)

The process behind any continuous build system is this:

1) go get the source code
2) build the source code on at least one configuration
3) run some set of tests to verify that the build is sane
4) report

...because, after all, the goal is to verify that the latest source code
isn't broken without making a programmer go and build it on all of the
configurations that the software supports.

The way that pony-build works is that this entire process is laid out in a
client script that is run on each configuration (e.g. Windows with Python 2.6)
you want to test.  This script is mostly boilerplate code that you don't
need to change -- setup and reporting -- with primarily the 'commands' list
being what needs to change.  The commands are largely individual to the
project under test, although for Python software there's a pretty stereotyped
build process.

Your first task was to write one of these client scripts, commit it, and push
it to github.  Now, the task for next week is to make them actually work :)

For example, if you look at Khushboo's script, there are a couple of reasons
why it won't currently run, build, and report the results to a pony-build
server:

   http://github.com/kshakya/pony-build/blob/master/client/build-nose.py

For one thing, the repo for nose is hosted on bitbucket, which is a hosting
service that uses the Mercurial (a.k.a. hg) version control system.  But the
source code checkout command in the commands list is 'GitClone', which uses git
-- incompatible with bitbucket.  Also, I think the repo URL is incorrect.

So to get this working I'd suggest that Khushboo --

 - first go online to the bitbucket repository for nose,
 - read about the commands necessary to check out a mercurial version control
   archive,
 - install Mercurial on her computer,
 - check out nose,
 - verify that she can run the commands to build and test nose,
 - modify the script so that it runs on her computer & reports the results
   to the central pony-build server.

Now, I'm only picking on Khushboo because we were taking a look at her
source code earlier today, and so it offered a convenient example!

So, by next Sunday, could everyone be sure to have written a working client
script OR have identified what's standing in their way and either fixed it
or written up a description of what needs to be done?  One result of
a working client script should be a new entry on this page,

	http://lyorn.idyll.org/ctb/pb-dev/

showing that a build was run on your machine and the results were reported
to this central server.

thanks,
--titus
-- 
C. Titus Brown, ctb at msu.edu



More information about the pony-build mailing list