[Buildbot-devel] buildbot-0.3.5 released, now with (some) Subversion support!
Brian Warner
warner at lothar.com
Sat Sep 20 01:24:49 UTC 2003
I've just released buildbot-0.3.5 . This is a slightly experimental release,
as it moves to Twisted's "newcred" authentication framework. Note that
buildslaves must be updated to speak to the new buildmaster, and that both
slaves and the master will require Twisted-1.0.7 . Also note that if you use
FreshCVS, you may need to add an argument to your sources= setup to speak
oldcred to the FreshCVS daemon (full details are in the NEWS file).
Apart from that, the other big change is the gradual introduction of
Subversion support, thanks to Christopher Armstrong ('radix', who also
serves as the Twisted release manager).
As usual, the release is signed by my public key (0x03A5E108). The MD5 sum of
the tarball is:
8453f18502dd2b91bc112c3e034ee0e7 buildbot-0.3.5.tar.gz
Please give it a try and report any problems to the mailing list or the bug
trackers.
The BuildBot is a system to automate the compile/test cycle required by most
software projects to validate code changes. It builds and tests the tree
each time a change is committed, providing status updates through a web page
or other protocols. Please visit http://buildbot.sf.net for more details.
Have a well-accredited day,
-Brian
----- new NEWS contents ----
* Release 0.3.5 (19 Sep 2003)
** newcred
Buildbot has moved to "newcred", a new authorization framework provided by
Twisted, which is a good bit cleaner and easier to work with than the
"oldcred" scheme in older versions. This causes both buildmaster and
buildslaves to depend upon Twisted 1.0.7 or later. The interface to
'makeApp' has changed somewhat (the multiple kinds of remote connections all
use the same TCP port now).
Old buildslaves will get "_PortalWrapper instance has no attribute
'remote_username'" errors when they try to connect. They must be upgraded.
The FreshCVSSource uses PB to connect to the CVSToys server. This has been
upgraded to use newcred too. If you get errors (TODO: what do they look
like?) in the log when the buildmaster tries to connect, you need to upgrade
your FreshCVS service or use the 'useOldcred' argument when creating your
FreshCVSSource. This is a temporary hack to allow the buildmaster to talk to
oldcred CVSToys servers. Using it will trigger deprecation warnings. It will
go away eventually.
In conjunction with this change, makeApp() now accepts a password which can
be applied to the debug service.
** new features
*** "copydir" for CVS checkouts
The CVS build step can now accept a "copydir" parameter, which should be a
directory name like "source" or "orig". If provided, the CVS checkout is
done once into this directory, then copied into the actual working directory
for compilation etc. Later updates are done in place in the copydir, then
the workdir is replaced with a copy.
This reduces CVS bandwidth (update instead of full checkout) at the expense
of twice the disk space (two copies of the tree).
*** Subversion (SVN) support
Radix (Christopher Armstrong) contributed early support for building
Subversion-based trees. The new 'SVN' buildstep behaves roughly like the
'CVS' buildstep, and the contrib/svn_buildbot.py script can be used as a
checkin trigger to feed changes to a running buildmaster.
** notable bugfixes
*** .tap file generation
We no longer set the .tap filename, because the buildmaster/buildslave
service might be added to an existing .tap file and we shouldn't presume to
own the whole thing. You may want to manually rename the "buildbot.tap" file
to something more meaningful (like "buildslave-bot1.tap").
*** IRC reconnect
If the IRC server goes away (it was restarted, or the network connection was
lost), the buildmaster will now schedule a reconnect attempt.
*** w32 buildslave fixes
An "rm -rf" was turned into shutil.rmtree on non-posix systems.
---- new Changelog contents ----
2003-09-19 Brian Warner <warner at lothar.com>
* setup.py (version): Releasing buildbot-0.3.5
2003-09-19 Brian Warner <warner at lothar.com>
* NEWS: add post-0.3.4 notes
* README (REQUIREMENTS): note twisted-1.0.7 requirement
* MANIFEST.in: add contrib/*
* docs/examples/twisted_master.py (twisted_app): all build slaves must
use a remote root now: cvs.twistedmatrix.com
* buildbot/changes/freshcvs.py (FreshCVSNotifiee.connect): update
to newcred
(FreshCVSNotifieeOldcred): but retain a class that uses oldcred for
compatibility with old servers
(FreshCVSSource.start): and provide a way to use it
(FreshCVSNotifiee.disconnect): handle unconnected notifiee
* docs/examples/twisted_master.py (twisted_app): update to new
makeApp interface.
(twisted_app): listen on new ~buildbot socket
(twisted_app): Twisted CVS has moved to cvs.twistedmatrix.com
* buildbot/process/process_twisted.py: Use 'copydir' on CVS steps
to reduce cvs bandwidth (update instead of full checkout)
2003-09-11 Brian Warner <warner at lothar.com>
* contrib/fakechange.py: demo how to connect to the changemaster
port. You can use this technique to submit changes to the
buildmaster from source control systems that offer a hook to run a
script when changes are committed.
* contrib/debugclient.py: tool to connect to the debug port. You
can use it to force builds, submit fake changes, and wiggle the
builder state
* buildbot/master.py: the Big NewCred Reorganization. Use a single
'Dispatcher' realm to handle all the different kinds of
connections and Perspectives: buildslaves, the changemaster port,
the debug port, and the status client port. NewCredPerspectives
now have .attached/.detached methods called with the remote 'mind'
reference, much like old perspectives did. All the pb.Services
turned into ordinary app.ApplicationServices .
(DebugService): went away, DebugPerspectives are now created
directly by the Dispatcher.
(makeApp): changed interface a little bit
* buildbot/changes/changes.py: newcred
* buildbot/status/client.py: newcred
* buildbot/clients/base.py: newcred client side changes
* buildbot/bot.py: ditto
* docs/examples/glib_master.py: handle new makeApp() interface
* docs/examples/twisted_master.py: ditto
* buildbot/pbutil.py (NewCredPerspective): add a helper class to
base newcred Perspectives on. This should go away once Twisted
itself provides something sensible.
2003-09-11 Christopher Armstrong <radix at twistedmatrix.com>
* contrib/svn_buildbot.py: A program that you can call from your
SVNREPO/hooks/post-commit file that will notify a BuildBot master
when a change in an SVN repository has happened. See the top of
the file for some minimal usage info.
2003-09-10 Christopher Armstrong <radix at twistedmatrix.com>
* buildbot/slavecommand.py (ArglistCommand): Add new
ArglistCommand that takes an argument list rather than a string as
a parameter. Using a st.split() for argv is very bad.
* buildbot/slavecommand.py (SVNFetch): Now has the ability to
update to a particular revision rather than always checking out
(still not very smart about it, there may be cases where the
checkout becomes inconsistent).
2003-09-10 Christopher Armstrong <radix at twistedmatrix.com>
* buildbot/{bot.py,slavecommand.py,process/step.py}: Rudimentary
SVN fetch support. It can checkout (not update!) a specified
revision from a specified repository to a specified directory.
* buildbot/status/progress.py (Expectations.update): Fix an
obvious bug (apparently created by the change described in the
previous ChangeLog message) by moving a check to *after* the
variable it checks is defined.
2003-09-08 Brian Warner <warner at lothar.com>
* buildbot/status/progress.py (Expectations.update): hack to catch
an exception TTimo sees: sometimes the update() method seems to
get called before the step has actually finished, so the .stopTime
is not set, so no totalTime() is available and we average None
with the previous value. Catch this and just don't update the
metrics, and emit a log message.
2003-08-24 Brian Warner <warner at lothar.com>
* buildbot/process/base.py (BasicBuildFactory): accept 'cvsCopy'
parameter to set copydir='original' in CVS commands.
* buildbot/process/step.py (CVS): accept 'copydir' parameter.
* buildbot/slavecommand.py (CVSCommand): add 'copydir' parameter,
which tells the command to maintain a separate original-source CVS
workspace. For each build, this workspace will be updated, then
the tree copied into a new workdir. This reduces CVS bandwidth
(from a full checkout to a mere update) while doubling the local
disk usage (to keep two copies of the tree).
2003-08-21 Brian Warner <warner at lothar.com>
* buildbot/status/event.py (Logfile.addEntry): if the master web
server dies while we're serving a page, request.write raises
pb.DeadReferenceError . Catch this and treat it like a
notifyFinish event by dropping the request.
2003-08-18 Brian Warner <warner at lothar.com>
* buildbot/status/words.py (IrcStatusBot.command_FORCE): complain
(instead of blowing up) if a force-build command is given without
a reason field
* buildbot/changes/changes.py (ChangeMaster.getChangeNumbered):
don't blow up if there aren't yet any Changes in the list
2003-08-02 Brian Warner <warner at lothar.com>
* buildbot/bot.py (updateApplication): don't set the .tap name,
since we shouldn't assume we own the whole .tap file
* buildbot/bb_tap.py (updateApplication): clean up code, detect
'mktap buildbot' (without a subcommand) better
2003-07-29 Brian Warner <warner at lothar.com>
* buildbot/status/words.py
(IrcStatusFactory.clientConnectionLost): when we lose the
connection to the IRC server, schedule a reconnection attempt.
* buildbot/slavecommand.py (CVSCommand.doClobber): on non-posix,
use shutil.rmtree instead of forking off an "rm -rf" command.
rmtree may take a while and will block until it finishes, so we
use "rm -rf" if available.
* docs/examples/twisted_master.py: turn off kqreactor, it hangs
freebsd buildslave badly
* setup.py (version): bump to 0.3.4+ while between releases
More information about the devel
mailing list