From: Jason Sankey (jason_at_[hidden])
Date: 2007-08-19 04:27:28
Rene Rivera wrote:
> Jason Sankey wrote:
>> I would like to add another possibility into the mix, if I may. I am a founder
>> and developer at Zutubi (http://zutubi.com/).
> Interesting. A few questions, after having a brief glance at your docs...
> Would you say your product aims to cover the combined area that
> Buildbot, build/test collection (CTest, Boost regression.py, Dartboard,
> and partly Buildbot), and reporting (Dartboard, and Boost XSL reports)
The closest match in that list is Buildbot, although you are right that
our features and reporting cover more ground including overlapping with
the other tools you mention. In particular the unit test results are
pulled directly into the Pulse UI as they are such an important part of
the build/test cycle.
> I see the server is a Java application. Do the agents also require Java?
Yes, the master and agents both require a JVM. The agents are
lightweight and throwaway, the master maintains the persistent data on
disk and in an embedded or (preferrably) external database.
> Do you support client-to-server connection model for agents, instead of
> the server-to-client one described in the docs?
There is only one connection model, which is bi-directional and over
HTTP. The master pings agents to detect when they are available, and
agents forward build events back to the master.
> Is there a description of the SQL DB schema available?
There is not, although we are open to it. However, for most external
integration we prefer usage of the XML-RPC remote API as it is usually
simpler and more likely to remain compatible across versions.
> Is non-SCM build/testing supported? In particular, obtaining source
> snapshots in the form of archives from a web server?
Not in the current release, but it should be possbile in the coming
release (aiming for beta next month) as we are making SCMs pluggable.
> --Does the subversion change monitoring occur as a watchdog or as an svn
> post-commit script? Or are both supported?-- Scratch that, found the
> answer :-)
For the benefit of the list both are supported. The default is polling
as it works "out of the box" but triggering builds via the remote API is
possible from a post-commit hook.
> Do you have support for independent builders & testers to post results
> outside of the master-agent framework?
Not at present.
> Can a single executed recipe command sprout multiple result data points
> without output post-processing?
I am not sure what sort of output data points you are referring to hear?
Generally speaking, a single command just succeeds or fails.
Post-processing is used to extract further useful information such as
errors, warnings and test results.
> Does the output post-processing happen on the client or server?
Post-processing happens during the build on the agent that runs the
build. It is also possible to execute arbitary post-build commands on
the master, but these cannot contribute errors or test results to the
> Are dynamic file artifacts supported? And by dynamic I mean a variable
> set of generated files.
You can capture files using wildcards quite flexibly.
> I'm a bit confused about your arrangement of projects, builds, and agents...
> * Is it possible to control which agents get particular builds?
Yes. You can assign build stages to specific agents or to any "capable"
agent. A capable agent is determined by the resources available on an
agent. Resources are configured via the web UI per-agent, and can be
used to represent many things like available build tools, runtimes, the
host operating system or logical agent groups.
> * Is it possible to to have sub-projects?
There is no current concept of sub-projects. We do have project groups
(for grouping in the UI).
> * Can an agent performs builds for multiple projects?
Yes, but presently agents will only run one build at a time.
> * Can one or more builds on one or more agents depend on the success
> of one or more builds on one or more agents?
It is possible to trigger the build of one project when the build of
another project completes, optionally only if the original build
succeeds. This cannot be parameterised by agent at the moment.
> Is it possible to have dynamic builds? By this I mean builds for which
> the commands, i.e. the recipe(s), change before or during the build itself.
You cannot modify the Pulse recipes during the build. However, we
prefer for Pulse recipes to be as simple as possible, with as much of
the build logic as possible being left to an underlying build tool (like
make or bjam). Basically, these tools are better at that part of the
process and are not tied to Pulse, and Pulse just aims to interoperate
> Is it possible to add additional notification methods, for example IRC
> or SMS? And how hard/easy would it be?
Custom notifications are currently possible using post-build actions.
If you can do it from the command line, then you can trigger it quite
easily with a post build action. We are also looking at making
notifications pluggable (currently we provide email, jabber and Windows
system tray out of the box).
Hope that helps clarify some points,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk