[Buildbot-devel] Splitting slave from master
Dustin J. Mitchell
dustin at zmanda.com
Sat Jun 5 19:33:48 UTC 2010
On Sat, Jun 5, 2010 at 11:17 AM, Greg Ward <greg at gerg.ca> wrote:
> Mercurial has two top-level packages, 'mercurial' and 'hgext'. Works
> just fine. I know for sure that distutils doesn't care. Neither does
> Python, nor RPM nor dpkg nor any other software that you're likely to
> encounter.
I shouldn't have used the term "package" - what I'd like is to have
two separate installable, um, "things" (eggs in setuptools' terms):
easy_install buildslave # <--- has very few requirements other than Twisted
easy_install buildbot # <--- has lots of requirements
This has the advantage of making the more common installation
(buildslave) much simpler and faster, and also allows us to test that
more widely - for example, a buildslave will work fine under cygwin,
but apparently pysqlite doesn't work under cygwin so it's impossible
to run a master there.
So that's my plan. At this point, I'm looking at just making a
master/ and slave/ directory in version control, and putting a
distinct setup.py in each of them. The package namespaces are
non-overlapping (to keep things simple - I know setuptools supports
namespaces, but I'm wary..): buildslave.* for buildslave stuff and
buildbot.* for buildmaster (so no change in master-side module names).
I'm finishing it up, but the work in progress is here:
http://github.com/djmitche/buildbot/tree/splitslave
And this is being tracked in bug #880.
I'm still interested in examples of apps that have this kind of split
(client/server, master/slave, lite/full) and use two distinct
"things".
Dustin
--
Open Source Storage Engineer
http://www.zmanda.com
More information about the devel
mailing list