[Buildbot-devel] Comparing Buildbot with Jenkins: ease of setup issues

John Carr johnmdcarr at me.com
Wed Jul 18 19:01:51 UTC 2012

Thanks for the mention!

I've talked to Dustin a fair bit about my little project already. I don't know if all of it will ever be a "fit" for core or contrib (it certainly isnt yet), but where parts of it fit i'm certainly trying to put them upstream.

If I was trying to make buildbot more user friendly I would be tempted to run it as a seperate project. Buildbot as a framework, and something else as the effort to make it simple for end users. Because if a configuration tool exposes *all* of the buildbot potential it will become as incomprehensible to beginners as the main config files.

A stepping stone for buildbot core might be to provide configuration helpers. For example, I have one which inspects a url and determines whether to setup an SVN checkout or a Git clone. Mine doesn't need to but it could take a list of steps and add those after the checkout. As well as creating a skeletal build factory it also creates a change source and scheduler and wires it all together. If it doesn't quite fit then I can do it manually. Because it uses a poller it "just works" without complicated poller setup. And with the "poke a url to trigger a poll" change i landed, it can be used in "commit and build immediately" scenarios without any more configuration work on the buildbot side. The user just has to be able to "curl" a url. This might look something like this:

from buildbot.patterns import simple_build

    repo = "https://svn.yourcompany.org/svn/awesomeproject",
    steps = [
        "virtualenv .",
        "bin/pip install -r requirements.txt",
        "bin/trial buildbot",

Which would create ShellCommands for the steps, BuilderConfigs, BuildFactory, Scheduler, Change Source, Change filter. It would guess the repo type (even if we had to resort to https+svn:// nasties). Repo could optionally take a dict for multi-code base stuff. Steps could take fully fledged ShellCommands. I have skipped slaves here, but they would be passed to simple_build too.

Personally, I would want to create installers. An example: I use vagrant to build VMs to hack on some things. Setting up RVM on Ubuntu was something of a challenge the first couple of times I did it and it put me off encouraging my peers to use it. These days, there are now installers for Windows, Mac, Ubuntu and more that make it really easy to get started with. While the Ubuntu package would make a purist very upset, the user experience is very much improved.


On 18 Jul 2012, at 16:28, Benoît Allard wrote:

>> -----Original Message-----
>> From: Dustin J. Mitchell [mailto:dustin at v.igoro.us]
>> On Sat, Jul 14, 2012 at 11:23 AM, Dan Kegel <dank at kegel.com> wrote:
>>> I wonder how hard it would be to add a web front end
>>> to manage simple buildbot configurations, to address
>>> the "Jenkins is easier to set up for simple projects"
>>> problem.
> [...]
>> * http://trac.buildbot.net/ticket/2218 describes declarative config,
>> addressing some of the problems with the Python-as-config paradigm.
> On a similar note, for easy setup made simple, I'd like to highlight the buildbot-travis project which aims at bringing a buildbot compatibility layer to travis compatible configuration files. Maybe even worth an inclusion in the core buildbot source as a contrib script or such ...
> https://github.com/Jc2k/buildbot_travis
> http://travis-ci.org/
> Regards,
> Benoît.
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and 
> threat landscape has changed and how IT managers can respond. Discussions 
> will include endpoint security, mobile security and the latest in malware 
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel

More information about the devel mailing list