Buildbot-0.4.3 was released 30 Apr 2004

** PBChangeSource made explicit

In 0.4.2 and before, an internal interface was available which allowed
special clients to inject changes into the Buildmaster. This interface is
used by the contrib/svn_buildbot.py script. The interface has been extracted
into a proper PBChangeSource object, which should be created in the
master.cfg file just like the other kinds of ChangeSources. See
docs/sources.xhtml for details.

If you were implicitly using this change source (for example, if you use
Subversion and the svn_buildbot.py script), you *must* add this source to
your master.cfg file, or changes will not be delivered and no builds will be
triggered.

The PBChangeSource accepts the same "prefix" argument as all other
ChangeSources. For a SVN repository that follows the recommended practice of
using "trunk/" for the trunk revisions, you probably want to construct the
source like this:

 source = PBChangeSource(prefix="trunk")

to make sure that the Builders are given sensible (trunk-relative)
filenames for each changed source file.

** Twisted changes

*** step_twisted.RunUnitTests can change "bin/trial"

The twisted RunUnitTests step was enhanced to let you run something other
than "bin/trial", making it easier to use a buildbot on projects which use
Twisted but aren't actually Twisted itself.

*** Twisted now uses Subversion

Now that Twisted has moved from CVS to SVN, the Twisted build processes have
been modified to perform source checkouts from the Subversion repository.

** minor feature additions

*** display Changes with HTML

Changes are displayed with a bit more pizazz, and a links= argument was
added to allow things like ViewCVS links to be added to the display
(although it is not yet clear how this argument should be used: the
interface remains subject to change untill it has been documented).

*** display ShellCommand logs with HTML

Headers are in blue, stderr is in red (unless usePTY=1 in which case stderr
and stdout are indistinguishable). A link is provided which returns the same
contents as plain text (by appending "?text=1" to the URL).

*** buildslaves send real tracebacks upon error

The .unsafeTracebacks option has been turned on for the buildslaves,
allowing them to send a full stack trace when an exception occurs, which is
logged in the buildmaster's twistd.log file. This makes it much easier to
determine what went wrong on the slave side.

*** BasicBuildFactory refactored

The BasicBuildFactory class was refactored to make it easier to create
derivative classes, in particular the BasicSVN variant.

*** "ping buildslave" web button added

There is now a button on the "builder information" page that lets a web user
initiate a ping of the corresponding build slave (right next to the button
that lets them force a build). This was added to help track down a problem
with the slave keepalives.

** bugs fixed:

You can now have multiple BuildSteps with the same name (the names are used
as hash keys in the data structure that helps determine ETA values for each
step, the new code creates unique key names if necessary to avoid
collisions). This means that, for example, you do not have to create a
BuildStep subclass just to have two Compile steps in the same process.

If CVSToys is not installed, the tests that depend upon it are skipped.

Some tests in 0.4.2 failed because of a missing set of test files, they are
now included in the tarball properly.

Slave keepalives should work better now in the face of silent connection
loss (such as when an intervening NAT box times out the association), the
connection should be reestablished in minutes instead of hours.

Shell commands on the slave are invoked with an argument list instead of the
ugly and error-prone split-on-spaces approach. If the ShellCommand is given
a string (instead of a list), it will fall back to splitting on spaces.
Shell commands should work on win32 now (using COMSPEC instead of /bin/sh).

Buildslaves under w32 should theoretically work now, and one was running for
the Twisted buildbot for a while until the machine had to be returned.

The "header" lines in ShellCommand logs (which include the first line, that
displays the command being run, and the last, which shows its exit status)
are now generated by the buildslave side instead of the local (buildmaster)
side. This can provide better error handling and is generally cleaner.
However, if you have an old buildslave (running 0.4.2 or earlier) and a new
buildmaster, then neither end will generate these header lines.

CVSCommand was improved, in certain situations 0.4.2 would perform
unnecessary checkouts (when an update would have sufficed). Thanks to Johan
Dahlin for the patches. The status output was fixed as well, so that
failures in CVS and SVN commands (such as not being able to find the 'svn'
executable) make the step status box red.

Subversion support was refactored to make it behave more like CVS. This is a
work in progress and will be improved in the next release.

