[Python-Dev] Automated Python testing (was Re: status of development documentation)
Jean-Paul Calderone
exarkun at divmod.com
Wed Dec 28 18:36:33 CET 2005
On Wed, 28 Dec 2005 17:43:04 +0100, "\"Martin v. Löwis\"" <martin at v.loewis.de> wrote:
>Tim Peters wrote:
>> Someone sets up a "buildbot master"
>
>That's what I now did:
>
>http://www.python.org/dev/buildbot/
>
>I'm not quite sure on a number of concepts: should there
>be multiple "slaves" per "builder"? Should I have multiple
>factories? How should I pass build-machine specific information
>(like: what compiler to use) in the master, or is that a slave
>thing? How should I deal with branches?
A slave is an entity capable of performing tasks. It can be
asked to perform any task you like, though it may not be able
to perform them all if it lacks some requirements.
A builder is a particular job. It can be performed by any
slave (so long as its requirements are met), or by multiple
slaves.
A factory defines the work to be done by a builder. If which
compiler is being used is an important part of the purpose of
a builder (for example, there might be a builder the purpose of
which is to test a Python built with GCC 3.4 and another the
purpose of which is to test a Python built with GCC 4.0), then
it should be specified in the master configuration. If it is
not important, then it should be left as general as possible,
to allow for the most slaves to be able to complete the task.
I have most often seen branches supported by allowing commits
to trunk to automatically trigger a build on trunk, while
commits to branches do not automatically trigger any builds.
Builds on branches can then be explicitly requested when a
developer wants to know the state of their branch on various
platforms/configurations (often before merging to trunk to
know if they are introducing any regressions, but valuable
at other times as well).
To support branches in this way, you want to use a PBChangeSource
with a prefix of "trunk" and when creating build steps, specify
a a baseURL of "svn//svn.python.org/projects/python/", and
defaultBranch of "trunk".
>
>Anyhow, I created two "builders", both with the same "slave",
>on sparc-sun-solaris2.10, 32-bit mode, gcc. The "python-full"
>builder does "svn export", whereas the "python-quick" builder
>does "svn update". Each of these is associated with an
>AnyBranchScheduler, for both 'trunk' and 'tags/release24-maint'.
>Not sure whether this means that the 2.4 release branch
>will ever be built (as the SVN steps have a defaultBranch of
>"trunk").
I think this means tags/release24-maint won't ever be built
automatically (I haven't used AnyBranchScheduler, and I don't
know much about schedulers in buildbot in general). You
should be able to manually request a build, but for some
reason I don't see the form for doing so on the master website
(<http://twistedmatrix.com/buildbot/full-2.3> for an example
of what this looks like). I'm not sure if this is a buildbot
version problem, or if there is just another piece of
configuration that needs to be set.
Jean-Paul
More information about the Python-Dev
mailing list