[Buildbot-commits] site manual-0.7.0.html,NONE,1.1 ChangeLog,1.22,1.23 NEWS,1.8,1.9 README,1.14,1.15 index.html,1.48,1.49 manual-CVS.html,1.3,1.4

Brian Warner warner at users.sourceforge.net
Tue Oct 25 03:53:22 UTC 2005


Update of /cvsroot/buildbot/site
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv937

Modified Files:
	ChangeLog NEWS README index.html manual-CVS.html 
Added Files:
	manual-0.7.0.html 
Log Message:
update for 0.7.0

Index: ChangeLog
===================================================================
RCS file: /cvsroot/buildbot/site/ChangeLog,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- ChangeLog	23 May 2005 23:53:55 -0000	1.22
+++ ChangeLog	25 Oct 2005 03:53:20 -0000	1.23
@@ -1,3 +1,901 @@
+2005-10-24  Brian Warner  <warner at lothar.com>
+
+	* buildbot/__init__.py (version): Releasing buildbot-0.7.0
+	* docs/buildbot.texinfo: set version number to match
+
+2005-10-24  Brian Warner  <warner at lothar.com>
+
+	* README: update for 0.7.0
+	* NEWS: same
+	* docs/buildbot.texinfo: move the freshcvs stuff out of the README
+
+	* buildbot/clients/debug.glade: add 'branch' box to fake-commit
+	* buildbot/clients/debug.py (DebugWidget.do_commit): same. Don't
+	send the branch= argument unless the user really provided one, to
+	retain compatibility with older buildmasters that don't accept
+	that argument.
+	* buildbot/master.py (DebugPerspective.perspective_fakeChange):
+	same
+
+	* docs/buildbot.texinfo: update lots of stuff
+
+	* buildbot/scripts/runner.py (sendchange): add a --branch argument
+	to the 'buildbot sendchange' command
+	* buildbot/clients/sendchange.py (Sender.send): same
+	* buildbot/changes/pb.py (ChangePerspective): same
+	* buildbot/test/test_changes.py (Sender.testSender): test it
+
+	* buildbot/process/step.py (SVN.__init__): change 'base_url' and
+	'default_branch' argument names to 'baseURL' and 'defaultBranch',
+	for consistency with other BuildStep arguments that use camelCase.
+	Well, at least more of them use camelCase (like flunkOnWarnings)
+	than don't.. I wish I'd picked one style and stuck with it
+	earlier. Annoying, but it's best done before the release, since
+	these arguments didn't exist at all in 0.6.6 .
+	(Darcs): same
+	* buildbot/test/test_vc.py (SVN.testCheckout): same
+	(Darcs.testPatch): same
+	* docs/buildbot.texinfo (SVN): document the change
+	(Darcs): same, add some build-on-branch docs
+	* docs/examples/twisted_master.cfg: match change
+
+	* buildbot/process/step.py (BuildStep): rename
+	slaveVersionNewEnough to slaveVersionIsOlderThan, because that's
+	how it is normally used.
+	* buildbot/test/test_steps.py (Version.checkCompare): same
+
+	* buildbot/process/step.py (CVS.startVC): refuse to build
+	update/copy -style builds on a non-default branch with an old
+	buildslave (<=0.6.6) that doesn't know how to do it properly. The
+	concern is that it will do a VC 'update' in an existing tree when
+	it is supposed to be switching branches (and therefore clobbering
+	the tree to do a full checkout), thus building the wrong source.
+	This used to be a warning, but I think the confusion it is likely
+	to cause warrants making it an error.
+	(SVN.startVC): same, also make mode=export on old slaves an error
+	(Darcs.startVC): same
+	(Git.startVC): improve error message for non-Git-enabled slaves
+	(Arch.checkSlaveVersion): same. continue to emit a warning when a
+	specific revision is built on a slave that doesn't pay attention
+	to args['revision'], because for slowly-changing trees it will
+	probably do the right thing, and because we have no way to tell
+	whether we're asking it to build the most recent version or not.
+	* buildbot/interfaces.py (BuildSlaveTooOldError): new exception
+
+	* buildbot/scripts/runner.py (SlaveOptions.postOptions): assert
+	that 'master' is in host:portnum format, to catch errors sooner
+
+2005-10-23  Brian Warner  <warner at lothar.com>
+
+	* buildbot/process/step_twisted.py (ProcessDocs.createSummary):
+	when creating the list of warning messages, include the line
+	immediately after each WARNING: line, since that's usually where
+	the file and line number wind up.
+
+	* docs/examples/twisted_master.cfg: OS-X slave now does QT, add a
+	TryScheduler
+
+	* NEWS: update
+
+2005-10-22  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/html.py (HtmlResource): incorporate valid-HTML
+	patch from Brad Hards
+	* buildbot/status/classic.css: same
+	* buildbot/test/test_web.py (Waterfall): match changes
+
+	* buildbot/test/test_steps.py (BuildStep.setUp): set
+	nextBuildNumber so the test passes
+	* buildbot/test/test_status.py (MyBuilder): same
+
+	* buildbot/status/html.py (StatusResourceBuild.body): revision
+	might be numeric, so stringify it before html-escapifying it
+	(CurrentBox.getBox): add a "waiting" state, and show a countdown
+	timer for the upcoming build
+	* buildbot/status/classic.css: add background-color attributes for
+	offline/waiting/building classes
+
+	* buildbot/status/builder.py (BuildStatus): derive from
+	styles.Versioned, fix upgrade of .sourceStamp attribute. Also set
+	the default (i.e. unknown) .slavename to "???" instead of None,
+	since even unknown slavenames need to be printed eventually.
+	(BuilderStatus): also derive from styles.Versioned . More
+	importantly, determine .nextBuildNumber at creation/unpickling
+	time by scanning the directory of saved BuildStatus instances and
+	choosing one larger than the highest-numbered one found. This
+	should fix the problem where random errors during upgrades cause
+	the buildbot to forget about earlier builds. .nextBuildNumber is
+	no longer stored in the pickle.
+	(Status.builderAdded): if we can't unpickle the BuilderStatus,
+	at least log the error. Also call Builder.determineNextBuildNumber
+	once the basedir is set.
+
+	* buildbot/master.py (BuildMaster.loadChanges): do
+	styles.doUpgrade afterwards, in case I decide to make Changes
+	derived from styles.Versioned some day and forget to make this
+	change later.
+
+
+	* buildbot/test/test_runner.py (Options.testForceOptions): skip
+	when running under older pythons (<2.3) in which the shlex module
+	doesn't have a 'split' function.
+
+	* buildbot/process/step.py (ShellCommand.start): make
+	errorMessages= be a list of strings to stuff in the log before the
+	command actually starts. This makes it easier to flag multiple
+	warning messages, e.g. when the Source steps have to deal with an
+	old buildslave.
+	(CVS.startVC): handle slaves that don't handle multiple branches
+	by switching into 'clobber' mode
+	(SVN.startVC): same. Also reject branches without base_url
+	(Darcs.startVC): same. Also reject revision= in older slaves
+	(Arch.checkSlaveVersion): same (just the multiple-branches stuff)
+	(Bazaar.startVC): same, and test for baz separately than for arch
+
+	* buildbot/slave/commands.py (cvs_ver): document new features
+
+	* buildbot/process/step.py (BuildStep.slaveVersion): document it
+	(BuildStep.slaveVersionNewEnough): more useful utility method
+	* buildbot/test/test_steps.py (Version): start testing it
+
+	* buildbot/status/words.py (IrcStatusBot.command_FORCE): note that
+	the 'force' command requires python2.3, for the shlex.split method
+
+	* docs/examples/twisted_master.cfg: remove old freshcvs stuff,
+	since we don't use it anymore. The Twisted buildbot uses a
+	PBChangeSource now.
+
+2005-10-21  Brian Warner  <warner at lothar.com>
+
+	* buildbot/process/process_twisted.py: rework all BuildFactory
+	classes to take a 'source' step as an argument, instead of
+	building up the SVN instance in the factory.
+	* docs/examples/twisted_master.cfg: enable build-on-branch by
+	providing a base_url and default_branch
+
+	* buildbot/status/words.py (IrcStatusBot.command_FORCE): add
+	control over --branch and --revision, not that they are always
+	legal to provide
+	* buildbot/status/html.py (StatusResourceBuilder.force): same
+	(StatusResourceBuild.body): display SourceStamp components
+
+	* buildbot/scripts/runner.py (ForceOptions): option parser for the
+	IRC 'force' command, so it can be shared with an eventual
+	command-line-tool 'buildbot force' mode.
+	* buildbot/test/test_runner.py (Options.testForceOptions): test it
+
+2005-10-20  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/mail.py (MailNotifier.buildMessage): reformat
+
+	* docs/examples/twisted_master.cfg: update to use Schedulers
+
+	* buildbot/scripts/sample.cfg: update with Schedulers
+
+	* buildbot/interfaces.py (IBuilderControl.requestBuildSoon): new
+	method specifically for use by HTML "force build" button and the
+	IRC "force" command. Raises an immediate error if there are no
+	slaves available.
+	(IBuilderControl.requestBuild): make this just submit a build, not
+	try to check for existing slaves or set up any when-finished
+	Deferreds or anything.
+	* buildbot/process/builder.py (BuilderControl): same
+	* buildbot/status/html.py (StatusResourceBuilder.force): same
+	* buildbot/status/words.py (IrcStatusBot.command_FORCE): same
+	* buildbot/test/test_slaves.py: same
+	* buildbot/test/test_web.py: same
+
+2005-10-19  Brian Warner  <warner at lothar.com>
+
+	* docs/examples/twisted_master.cfg: re-sync with reality: bring
+	back python2.2 tests, turn off OS-X threadedselect-reactor tests
+
+2005-10-18  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/html.py: provide 'status' argument to most
+	StatusResourceFOO objects
+	(StatusResourceBuild.body): href-ify the Builder name, add "Steps
+	and Logfiles" section to make the Build page into a more-or-less
+	comprehensive source of status information about the build
+
+	* buildbot/status/mail.py (MailNotifier): include the Build's URL
+	* buildbot/status/words.py (IrcStatusBot.buildFinished): same
+
+2005-10-17  Brian Warner  <warner at lothar.com>
+
+	* buildbot/process/process_twisted.py (TwistedTrial): update Trial
+	arguments to accomodate Twisted >=2.1.0 . I will have to figure
+	out what to do about other projects: the correct options for
+	recent Twisteds will not work for older ones.
+
+2005-10-15  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/builder.py (Status.getURLForThing): add method
+	to provide a URL for arbitrary IStatusFoo objects. The idea is to
+	use this in email/IRC status clients to make them more useful, by
+	providing the end user with hints on where to learn more about the
+	object being reported on.
+	* buildbot/test/test_web.py (GetURL): tests for it
+
+2005-10-14  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_config.py (ConfigTest._testSources_1): oops,
+	fix bug resulting from deferredResult changes
+
+2005-10-13  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_changes.py: remove use of deferredResult
+	* buildbot/test/test_config.py: same
+	* buildbot/test/test_control.py: same
+	* buildbot/test/test_status.py: same
+	* buildbot/test/test_vc.py: this is the only remaining use, since
+	it gets used at module level. This needs to be replaced by some
+	sort of class-level run-once routine.
+
+	* buildbot/status/words.py (IrcStatusBot.command_WATCH): fix typo
+
+	* lots: implement multiple slaves per Builder, which means multiple
+	current builds per Builder. Some highlights:
+	* buildbot/interfaces.py (IBuilderStatus.getState): return a tuple
+	of (state,currentBuilds) instead of (state,currentBuild)
+	(IBuilderStatus.getCurrentBuilds): replace getCurrentBuild()
+	(IBuildStatus.getSlavename): new method, so you can tell which
+	slave got used. This only gets set when the build completes.
+	(IBuildRequestStatus.getBuilds): new method
+
+	* buildbot/process/builder.py (SlaveBuilder): add a .state
+	attribute to track things like ATTACHING and IDLE and BUILDING,
+	instead of..
+	(Builder): .. the .slaves attribute here, which has been turned
+	into a simple list of available slaves. Added a separate
+	attaching_slaves list to track ones that are not yet ready for
+	builds.
+	(Builder.fireTestEvent): put off the test-event callback for a
+	reactor turn, to make tests a bit more consistent.
+	(Ping): cleaned up the slaveping a bit, now it disconnects if the
+	ping fails due to an exception. This needs work, I'm worried that
+	a code error could lead to a constantly re-connecting slave.
+	Especially since I'm trying to move to a distinct remote_ping
+	method, separate from the remote_print that we currently use.
+	(BuilderControl.requestBuild): return a convenience Deferred that
+	provides an IBuildStatus when the build finishes.
+	(BuilderControl.ping): ping all connected slaves, only return True
+	if they all respond.
+
+	* buildbot/slave/bot.py (BuildSlave.stopService): stop trying to
+	reconnect when we shut down.
+
+	* buildbot/status/builder.py: implement new methods, convert
+	one-build-at-a-time methods to handle multiple builds
+	* buildbot/status/*.py: do the same in all default status targets
+	* buildbot/status/html.py: report the build's slavename in the
+	per-Build page, report all buildslaves on the per-Builder page
+
+	* buildbot/test/test_run.py: update/create tests
+	* buildbot/test/test_slaves.py: same
+	* buildbot/test/test_scheduler.py: remove stale test
+
+	* docs/buildbot.texinfo: document the new builder-specification
+	'slavenames' parameter
+
+2005-10-12  Brian Warner  <warner at lothar.com>
+
+	* buildbot/buildset.py (BuildSet): fix bug where BuildSet did not
+	report failure correctly, causing Dependent builds to run when
+	they shouldn't have.
+	* buildbot/status/builder.py (BuildSetStatus): same
+	* buildbot/test/test_buildreq.py (Set.testBuildSet): verify it
+	(Set.testSuccess): test the both-pass case too
+	* buildbot/test/test_dependencies.py (Dependencies.testRun_Fail):
+	fix this test: it was ending too early, masking the failure before
+	(Logger): specialized StatusReceiver to make sure the dependent
+	builds aren't even started, much less completed.
+
+2005-10-07  Brian Warner  <warner at lothar.com>
+
+	* buildbot/slave/bot.py (SlaveBuilder.activity): survive
+	bot.SlaveBuilder being disowned in the middle of a build
+
+	* buildbot/status/base.py (StatusReceiverMultiService): oops, make
+	this inherit from StatusReceiver. Also upcall in __init__. This
+	fixes the embarrasing crash when the new buildSetSubmitted method
+	is invoked and Waterfall/etc don't implement their own.
+	* buildbot/test/test_run.py: add a TODO note about a test to catch
+	just this sort of thing.
+
+	* buildbot/process/builder.py (Builder.attached): remove the
+	already-attached warning, this situation is normal. Add some
+	comments explaining it.
+
+2005-10-02  Brian Warner  <warner at lothar.com>
+
+	* buildbot/changes/maildir.py (Maildir.start): Tolerate
+	OverflowError when setting up dnotify, because some 64-bit systems
+	have problems with signed-vs-unsigned constants and trip up on the
+	DN_MULTISHOT flag. Patch from Brad Hards.
+
+2005-09-06  Fred Drake  <fdrake at users.sourceforge.net>
+
+	* buildbot/process/step.py (BuildStep, ShellCommand): Add
+	progressMetrics, description, descriptionDone to the 'parms' list,
+	and make use the 'parms' list from the implementation class
+	instead of only BuildStep to initialize the parameters.  This
+	allows buildbot.process.factory.s() to initialize all the parms,
+	not just those defined in directly by BuildStep.
+
+2005-09-03  Brian Warner  <warner at lothar.com>
+
+	* NEWS: start adding items for the next release
+
+	* docs/examples/twisted_master.cfg: (sync with reality) turn off
+	python2.2 tests, change 'Quick' builder to only use python2.3
+
+2005-09-02  Fred Drake  <fdrake at users.sourceforge.net>
+
+	* buildbot/status/html.py (StatusResourceBuilder.body): only show
+	the "Ping Builder" button if the build control is available; the
+	user sees an exception otherwise
+
+	* docs/buildbot.texinfo (PBChangeSource): fix a typo
+
+2005-09-01  Brian Warner  <warner at lothar.com>
+
+	* buildbot/interfaces.py (IBuilderStatus.getState): update
+	signature, point out that 'build' can be None
+	(IBuildStatus.getETA): point out ETA can be none
+
+	* buildbot/status/html.py (CurrentBox.getBox): tolerate build/ETA
+	being None
+	* buildbot/status/words.py (IrcStatusBot.emit_status): same
+
+2005-08-31  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/base.py (StatusReceiver.builderChangedState):
+	update to match correct signature: removed 'eta' argument
+	* buildbot/status/mail.py (MailNotifier.builderChangedState): same
+
+2005-08-30  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/builder.py (LogFile): remove the assertion that
+	blows up when you try to overwrite an existing logfile, instead
+	just emit a warning. This case gets hit when the buildmaster is
+	killed and doesn't get a chance to write out the serialized
+	BuilderStatus object, so the .nextBuildNumber attribute gets out
+	of date.
+
+	* buildbot/scripts/runner.py (sendchange): add --revision_file to
+	the 'buildbot sendchange' arguments, for the Darcs context file
+	* docs/buildbot.texinfo (sendchange): document it
+
+	* buildbot/status/html.py: add pending/upcoming builds to CurrentBox
+	* buildbot/interfaces.py (IScheduler.getPendingBuildTimes): new method
+	(IStatus.getSchedulers): new method
+	* buildbot/status/builder.py (BuilderStatus): track pendingBuilds
+	(Status.getSchedulers): implement
+	* buildbot/process/builder.py (Builder): maintain
+	BuilderStatus.pendingBuilds
+	* buildbot/scheduler.py (Scheduler.getPendingBuildTimes): new method
+	(TryBase.addChange): Try schedulers should ignore Changes
+
+	* buildbot/scripts/tryclient.py (getTopdir): implement getTopdir
+	for 'try' on CVS/SVN
+	* buildbot/test/test_runner.py (Try.testGetTopdir): test case
+
+	* buildbot/scripts/tryclient.py (Try): make jobdir-style 'try'
+	report status properly.
+	(Try.createJob): implement unique buildset IDs
+
+	* buildbot/status/client.py (StatusClientPerspective): add a
+	perspective_getBuildSets method for the benefit of jobdir-style
+	'try'.
+	* docs/buildbot.texinfo (try): more docs
+	* buildbot/test/test_scheduler.py (Scheduling.testGetBuildSets):
+	new test case
+
+2005-08-18  Brian Warner  <warner at lothar.com>
+
+	* buildbot/scripts/tryclient.py (Try): make 'try' status reporting
+	actually work. It's functional but still kind of clunky. Also, it
+	only works with the pb-style.. needs to be made to work with the
+	jobdir-style too.
+
+	* buildbot/status/client.py (RemoteBuildSet): new class
+	(RemoteBuildRequest): same
+	(RemoteBuild.remote_waitUntilFinished): return the RemoteBuild
+	object, not the internal BuildStatus object.
+	(RemoteBuild.remote_subscribe): new method to subscribe to builds
+	outside of the usual buildStarted() return value.
+	(BuildSubscriber): support class for RemoteBuild.remote_subscribe
+
+	* buildbot/scheduler.py (Try_Jobdir): convey buildsetID properly
+	(Try_Userpass_Perspective.perspective_try): return a remotely
+	usable BuildSetStatus object
+
+	* buildbot/interfaces.py (IBuildStatus): remove obsolete
+	isStarted()/waitUntilStarted()
+
+2005-08-16  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/builder.py: implement IBuildSetStatus and
+	IBuildRequestStatus, wire them into place.
+	* buildbot/buildset.py: same. Add ID, move wait-until-finished
+	methods into the BuildSetStatus object.
+	* buildbot/interfaces.py: same
+	(IStatus.getBuildSets): new method to get pending BuildSets
+	(IStatusReceiver.buildsetSubmitted): new method which hears about
+	new BuildSets
+	* buildbot/master.py (BuildMaster.submitBuildSet): same
+	* buildbot/process/base.py (BuildRequest): same, replace
+	waitUntilStarted with subscribe/unsubscribe
+	* buildbot/process/builder.py (BuilderControl.forceBuild): use
+	subscribe instead of waitUntilStarted
+	* buildbot/status/base.py (StatusReceiver.buildsetSubmitted): stub
+	for new method
+	* buildbot/status/client.py (StatusClientPerspective.builderRemoved): 
+	same
+	* buildbot/test/test_buildreq.py: update for new code
+	* buildbot/test/test_control.py (Force.testRequest): same
+
+
+	* buildbot/slave/commands.py (Darcs.doVCFull): fix get-revision
+	for Darcs to not use the tempfile module, so it works under
+	python-2.2 too. We really didn't need the full cleverness of that
+	module, since the slave has exclusive control of its own builddir.
+
+2005-08-15  Brian Warner  <warner at lothar.com>
+
+	* buildbot/scripts/tryclient.py (CVSExtractor): implement 'try'
+	for CVS trees. It doesn't work for non-trunk branches,
+	unfortunately.
+	* buildbot/test/test_vc.py (CVS.testTry): test it, but skip the
+	branch test
+
+	* Makefile: make it easier to test against python2.2
+
+	* buildbot/test/test_vc.py (VCBase.tearDown): provide for
+	tearDown2, so things like Arch can unregister archives as they're
+	shutting down. The previous subclass-override-tearDown technique
+	resulted in a nested maybeWait() and test failures under
+	Twisted-1.3.0
+
+	* buildbot/scripts/tryclient.py (getSourceStamp): extract branches
+	where we can (Arch), add a branch= argument to set the branch used
+	when we can't
+	(BazExtractor): extract the branch too
+	(TlaExtractor): same
+	* buildbot/scripts/runner.py (TryOptions): add --branch
+	* docs/buildbot.texinfo (try): document --branch/try_branch
+
+	* buildbot/slave/commands.py (Darcs): implement get-revision for
+	Darcs, so that 'try' will work. This requires the tempfile module
+	from python-2.3 .
+
+	* buildbot/test/test_vc.py: rewrite tests, getting better coverage
+	of revisions, branches, and 'try' in the process.
+
+2005-08-11  Brian Warner  <warner at lothar.com>
+
+	* buildbot/master.py (DebugPerspective.perspective_pokeIRC): fix
+	this, it got broken at some point in the last few releases
+	* buildbot/status/words.py (IrcBuildRequest): reply was broken
+	(IrcStatusBot.emit_status): handle new IBuilderStatus.getState,
+	specifically the removal of ETA information from the tuple
+
+	* buildbot/locks.py: use %d for id() instead of %x, avoid a silly
+	warning message
+
+	* docs/buildbot.texinfo (try): document both --builder and
+	'try_builders' in .buildbot/options
+	* buildbot/scripts/runner.py (TryOptions): add --builder,
+	accumulate the values into opts['builders']
+	* buildbot/scripts/tryclient.py (Try.__init__): set builders
+	* buildbot/test/test_runner.py (Try): add some quick tests to make
+	sure 'buildbot try --options' and .buildbot/options get parsed
+	* buildbot/test/test_scheduler.py (Scheduling.testTryUserpass):
+	use --builder control
+
+	* docs/buildbot.texinfo (try): add --port argument to PB style
+
+	* buildbot/scripts/tryclient.py (SourceStampExtractor): return an
+	actual SourceStamp. Still need to extract a branch name, somehow.
+	(Try): finish implementing the try client side, still need a UI
+	for specifying which builders to use
+	(Try.getopt): factor our options/config-file reading
+	* buildbot/test/test_scheduler.py (Scheduling.testTryUserpass):
+	test it
+	* buildbot/test/test_vc.py: match SourceStampExtractor change
+
+	* buildbot/scripts/runner.py (Options.opt_verbose): --verbose
+	causes the twisted log to be sent to stderr
+
+	* buildbot/scheduler.py (Try_Userpass): implement the PB style
+
+2005-08-10  Brian Warner  <warner at lothar.com>
+
+	* buildbot/scripts/runner.py: Add 'buildbot try' command, jobdir
+	style is 90% done, still missing status reporting or waiting for
+	the buildsets to finish, and it is completely untested.
+
+	* buildbot/trybuild.py: delete file, move contents to ..
+	* buildbot/scripts/tryclient.py (getSourceStamp): .. here
+	* buildbot/test/test_vc.py: match the move
+
+	* buildbot/scheduler.py (Try_Jobdir): implement the jobdir style
+	of the TryScheduler, no buildsetID or status-tracking support yet
+	* buildbot/test/test_scheduler.py (Scheduling.testTryJobdir): test it
+
+	* buildbot/changes/maildir.py (Maildir.setBasedir): make it
+	possible to set the basedir after __init__ time, so it is easier
+	to use as a Service-child of the BuildMaster instance
+
+	* buildbot/changes/maildirtwisted.py (MaildirService): make a form
+	that delivers messages to its Service parent instead of requiring
+	a subclass to be useful. This turns out to be much easier to build
+	unit tests around.
+
+	* buildbot/scripts/tryclient.py (createJob): utility code to
+	create jobfiles, will eventually be used by 'buildbot try'
+
+2005-08-08  Brian Warner  <warner at lothar.com>
+
+	* docs/buildbot.texinfo (try): add docs on the
+	as-yet-unimplemented Try scheduler
+
+	* buildbot/test/test_buildreq.py: move Scheduling tests out to ..
+	* buildbot/test/test_scheduler.py: .. here
+	(Scheduling.testTryJobdir): add placeholder test for 'try'
+
+	* buildbot/test/test_status.py (Log.testMerge3): update to match new
+	addEntry merging (>=chunkSize) behavior
+	(Log.testConsumer): update to handle new callLater(0) behavior
+
+	* buildbot/test/test_web.py: rearrange tests a bit, add test for
+	both the MAX_LENGTH bugfix and the resumeProducing hang.
+
+	* buildbot/status/builder.py (LogFileProducer.resumeProducing):
+	put off the actual resumeProducing for a moment with
+	reactor.callLater(0). This works around a twisted-1.3.0 bug which
+	causes large logfiles to hang midway through.
+
+	* buildbot/process/step.py (BuildStep.addCompleteLog): break the
+	logfile up into chunks, both to avoid NetstringReceiver.MAX_LENGTH
+	and to improve memory usage when streaming the file out to a web
+	browser.
+	* buildbot/status/builder.py (LogFile.addEntry): change > to >= to
+	make this work cleanly
+
+2005-08-03  Brian Warner  <warner at lothar.com>
+
+	* buildbot/trybuild.py: new file for 'try' utilities
+	(getSourceStamp): run in a tree, find out the baserev+patch
+	* buildbot/test/test_vc.py (VCBase.do_getpatch): test it,
+	implemented for SVN and Darcs, still working on Arch. I don't know
+	how to make CVS work yet.
+
+	* docs/buildbot.texinfo: document the 'buildbot' command-line
+	tool, including the not-yet-implemented 'try' feature, and the
+	in-flux .buildbot/ options directory.
+
+2005-07-20  Brian Warner  <warner at lothar.com>
+
+	* buildbot/locks.py: added temporary id() numbers to Lock
+	descriptions, to track down a not-really-sharing-the-Lock bug
+
+	* buildbot/test/runutils.py: must import errno, cut-and-paste bug
+
+	* buildbot/test/test_slavecommand.py (ShellBase.failUnlessIn):
+	needed for python2.2 compatibility
+	* buildbot/test/test_vc.py: python2.2 compatibility: generators
+	are from the __future__
+
+2005-07-19  Brian Warner  <warner at lothar.com>
+
+	* buildbot/master.py (BuildMaster.loadConfig): give a better error
+	message when schedulers use unknown builders
+
+	* buildbot/process/builder.py (Builder.compareToSetup): make sure
+	SlaveLock('name') and MasterLock('name') are distinct
+
+	* buildbot/master.py (BuildMaster.loadConfig): oops, sanity-check
+	c['schedulers'] in such a way that we can actually accept
+	Dependent instances
+	* buildbot/test/test_config.py: check it
+
+	* buildbot/scheduler.py (Dependent.listBuilderNames): oops, add
+	utility method to *all* the Schedulers
+	(Periodic.listBuilderNames): same
+
+	* docs/buildbot.texinfo (Interlocks): update chapter to match
+	reality
+
+	* buildbot/master.py (BuildMaster.loadConfig): Add sanity checks
+	to make sure that c['sources'], c['schedulers'], and c['status']
+	are all lists of the appropriate objects, and that the Schedulers
+	all point to real Builders
+	* buildbot/interfaces.py (IScheduler, IUpstreamScheduler): add
+	'listBuilderNames' utility method to support this
+	* buildbot/scheduler.py: implement the utility method
+	* buildbot/test/test_config.py (ConfigTest.testSchedulers): test it
+
+	* docs/buildbot.texinfo: add some @cindex entries
+
+	* buildbot/test/test_vc.py (Arch.createRepository): set the tla ID
+	if it wasn't already set: most tla commands will fail unless one
+	has been set.
+	(Arch.createRepository): and disable bazaar's revision cache, since
+	they cause test failures (the multiple repositories we create all
+	interfere with each other through the cache)
+
+	* buildbot/test/test_web.py (WebTest): remove use of deferredResult,
+	bring it properly up to date with twisted-2.0 test guidelines
+
+	* buildbot/master.py (BuildMaster): remove references to old
+	'interlock' module, this caused a bunch of post-merge test
+	failures
+	* buildbot/test/test_config.py: same
+	* buildbot/process/base.py (Build): same
+
+	* buildbot/test/test_slaves.py: stubs for new test case
+
+	* buildbot/scheduler.py: add test-case-name tag
+	* buildbot/test/test_buildreq.py: same
+
+	* buildbot/slave/bot.py (SlaveBuilder.__init__): remove some
+	unnecessary init code
+	(Bot.remote_setBuilderList): match it
+
+	* docs/buildbot.texinfo (@settitle): don't claim version 1.0
+
+	* buildbot/changes/mail.py (parseSyncmail): update comment
+
+	* buildbot/test/test_slavecommand.py: disable Shell tests on
+	platforms that don't suport IReactorProcess
+
+	* buildbot/status/builder.py (LogFile): remove the 't' mode from
+	all places where we open logfiles. It causes OS-X to open the file
+	in some weird mode that that prevents us from mixing reads and
+	writes to the same filehandle, which we depend upon to implement
+	_generateChunks properly. This change doesn't appear to break
+	win32, on which "b" and "t" are treated differently but a missing
+	flag seems to be interpreted as "t".
+
+2005-07-18  Brian Warner  <warner at lothar.com>
+
+	* buildbot/slave/commands.py (ShellCommand): overhaul
+	error-handling code, to try and make timeout/interrupt work
+	properly, and make win32 happier
+	* buildbot/test/test_slavecommand.py: clean up, stop using
+	reactor.iterate, add tests for timeout and interrupt
+	* buildbot/test/sleep.py: utility for a new timeout test
+
+	* buildbot/twcompat.py: copy over twisted 1.3/2.0 compatibility
+	code from the local-usebranches branch
+
+2005-07-17  Brian Warner  <warner at lothar.com>
+
+	* buildbot/process/process_twisted.py
+	(TwistedReactorsBuildFactory): change the treeStableTimer to 5
+	minutes, to match the other twisted BuildFactories, and don't
+	excuse failures in c/qt/win32 reactors any more.
+
+	* docs/examples/twisted_master.cfg: turn off the 'threadless' and
+	'freebsd' builders, since the buildslaves have been unavailable
+	for quite a while
+
+2005-07-13  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_vc.py (VCBase.do_branch): test the new
+	build-on-branch feature
+
+	* buildbot/process/step.py (Darcs.__init__): add base_url and
+	default_branch arguments, just like SVN
+	(Arch.__init__): note that the version= argument is really the
+	default branch name
+
+	* buildbot/slave/commands.py (SourceBase): keep track of the
+	repository+branch that was used for the last checkout in
+	SRCDIR/.buildbot-sourcedata . If the contents of this file do not
+	match, we clobber the directory and perform a fresh checkout
+	rather than trying to do an in-place update. This should protect
+	us against trying to get to branch B by doing an update in a tree
+	obtained from branch A.
+	(CVS.setup): add CVS-specific sourcedata: root, module, and branch
+	(SVN.setup): same, just the svnurl
+	(Darcs.setup): same, just the repourl
+	(Arch.setup): same, arch coordinates (url), version, and
+	buildconfig. Also pull the buildconfig from the args dictionary,
+	which we weren't doing before, so the build-config was effectively
+	disabled.
+	(Arch.sourcedirIsUpdateable): don't try to update when we're
+	moving to a specific revision: arch can't go backwards, so it is
+	safer to just clobber the tree and checkout a new one at the
+	desired revision.
+	(Bazaar.setup): same sourcedata as Arch
+
+	* buildbot/test/test_dependencies.py (Dependencies.testRun_Fail):
+	use maybeWait, to work with twisted-1.3.0 and twcompat
+	(Dependencies.testRun_Pass): same
+
+	* buildbot/test/test_vc.py: rearrange, cleanup
+
+	* buildbot/twcompat.py: add defer.waitForDeferred and
+	utils.getProcessOutputAndValue, so test_vc.py (which uses them)
+	can work under twisted-1.3.0 .
+
+	* buildbot/test/test_vc.py: rewrite. The sample repositories are
+	now created at setUp time. This increases the runtime of the test
+	suite considerably (from 91 seconds to 151), but it removes the
+	need for an offline tarball, which should solve a problem I've
+	seen where the test host has a different version of svn than the
+	tarball build host. The new code also validates that mode=update
+	really picks up recent commits. This approach will also make it
+	easier to test out branches, because the code which creates the VC
+	branches is next to the code which uses them. It will also make it
+	possible to test some change-notification hooks, by actually
+	performing a VC commit and watching to see the ChangeSource get
+	notified.
+
+2005-07-12  Brian Warner  <warner at lothar.com>
+
+	* docs/buildbot.texinfo (SVN): add branches example
+	* docs/Makefile (buildbot.ps): add target for postscript manual
+
+	* buildbot/test/test_dependencies.py: s/test_interlocks/test_locks/ 
+	* buildbot/test/test_locks.py: same
+
+	* buildbot/process/step.py (Darcs): comment about default branches
+
+	* buildbot/master.py (BuildMaster.loadConfig): don't look for
+	c['interlocks'] in the config file, complain if it is present.
+	Scan all locks in c['builders'] to make sure the Locks they use
+	are uniquely named.
+	* buildbot/test/test_config.py: remove old c['interlocks'] test,
+	add some tests to check for non-uniquely-named Locks
+	* buildbot/test/test_vc.py (Patch.doPatch): fix factory.steps,
+	since the unique-Lock validation code requires it now
+
+	* buildbot/locks.py: fix test-case-name
+
+	* buildbot/interlock.py: remove old file
+
+2005-07-11  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_interlock.py: rename to..
+	* buildbot/test/test_locks.py: .. something shorter
+
+	* buildbot/slave/bot.py (BuildSlave.stopService): newer Twisted
+	versions (after 2.0.1) changed internet.TCPClient to shut down the
+	connection in stopService. Change the code to handle this
+	gracefully.
+
+	* buildbot/process/base.py (Build): handle whole-Build locks
+	* buildbot/process/builder.py (Builder.compareToSetup): same
+	* buildbot/test/test_interlock.py: make tests work
+
+	* buildbot/process/step.py (BuildStep.startStep): complain if a
+	Step tries to claim a lock that's owned by its own Build
+	(BuildStep.releaseLocks): typo
+
+	* buildbot/locks.py (MasterLock): use ComparableMixin so config
+	file reloads don't replace unchanged Builders
+	(SlaveLock): same
+	* buildbot/test/test_config.py (ConfigTest.testInterlocks):
+	rewrite to cover new Locks instead of old c['interlocks']
+	* buildbot/test/runutils.py (RunMixin.connectSlaves): remember
+	slave2 too
+
+
+	* buildbot/test/test_dependencies.py (Dependencies.setUp): always
+	start the master and connect the buildslave
+
+	* buildbot/process/step.py (FailingDummy.done): finish with a
+	FAILURE status rather than raising an exception
+
+	* buildbot/process/base.py (BuildRequest.mergeReasons): don't try to
+	stringify a BuildRequest.reason that is None
+
+	* buildbot/scheduler.py (BaseUpstreamScheduler.buildSetFinished):
+	minor fix
+	* buildbot/status/builder.py (BuildSetStatus): implement enough to
+	allow scheduler.Dependent to work
+	* buildbot/buildset.py (BuildSet): set .reason and .results
+
+	* buildbot/test/test_interlock.py (Locks.setUp): connect both
+	slaves, to make the test stop hanging. It still fails, of course,
+	because I haven't even started to implement Locks.
+
+	* buildbot/test/runutils.py (RunMixin.connectSlaves): new utility
+
+	* docs/buildbot.texinfo (Build-Dependencies): redesign the feature
+	* buildbot/interfaces.py (IUpstreamScheduler): new Interface
+	* buildbot/scheduler.py (BaseScheduler): factor out common stuff
+	(Dependent): new class for downstream build dependencies
+	* buildbot/test/test_dependencies.py: tests (still failing)
+
+	* buildbot/buildset.py (BuildSet.waitUntilSuccess): minor notes
+
+2005-07-07  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/runutils.py (RunMixin): factored this class out..
+	* buildbot/test/test_run.py: .. from here
+	* buildbot/test/test_interlock.py: removed old c['interlock'] tests,
+	added new buildbot.locks tests (which all hang right now)
+	* buildbot/locks.py (SlaveLock, MasterLock): implement Locks
+	* buildbot/process/step.py: claim/release per-BuildStep locks
+
+	* docs/Makefile: add 'buildbot.html' target
+
+	* buildbot/process/step.py (CVS.__init__): allow branch=None to be
+	interpreted as "HEAD", so that all VC steps can accept branch=None
+	and have it mean the "default branch".
+
+	* docs/buildbot.texinfo: add Schedulers, Dependencies, and Locks
+
+2005-07-07  Brian Warner  <warner at lothar.com>
+
+	* docs/examples/twisted_master.cfg: update to match current usage
+
+	* docs/buildbot.texinfo (System Architecture): comment out the
+	image, it doesn't exist yet and just screws up the HTML manual.
+
+2005-07-05  Brian Warner  <warner at lothar.com>
+
+	* debian/.cvsignore: oops, missed one. Removing leftover file.
+
+2005-06-17  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_vc.py (VCSupport.__init__): svn --version
+	changed its output in 1.2.0, don't mistakenly think that the
+	subversion we find isn't capable of supporting our tests.
+
+	* debian/*: remove the debian/ directory and its contents, to make
+	life easier for the proper Debian maintainer
+	* MANIFEST.in: same
+	* Makefile (release): same
+
+2005-06-07  Brian Warner  <warner at lothar.com>
+
+	* everything: create a distinct SourceStamp class to replace the
+	ungainly 4-tuple, let it handle merging instead of BuildRequest.
+	Changed the signature of Source.startVC to include the revision
+	information (instead of passing it through self.args). Implement
+	branches for SVN (now only Darcs/Git is missing support). Add more
+	Scheduler tests.
+
+2005-06-06  Brian Warner  <warner at lothar.com>
+
+	* everything: rearrange build scheduling. Create a new Scheduler
+	object (configured in c['schedulers'], which submit BuildSets to a
+	set of Builders. Builders can now use multiple slaves. Builds can
+	be run on alternate branches, either requested manually or driven
+	by changes. This changed some of the Status classes. Interlocks
+	are out of service until they've been properly split into Locks
+	and Dependencies. treeStableTimer, isFileImportant, and
+	periodicBuild have all been moved from the Builder to the
+	Scheduler.
+	(BuilderStatus.currentBigState): removed the 'waiting' and
+	'interlocked' states, removed the 'ETA' argument.
+
+2005-05-24  Brian Warner  <warner at lothar.com>
+
+	* buildbot/pbutil.py (ReconnectingPBClientFactory): Twisted-1.3
+	erroneously abandons the connection (in clientConnectionFailed)
+	for non-UserErrors, which means that if we lose the connection due
+	to a network problem or a timeout, we'll never try to reconnect.
+	Fix this by not upcalling to the buggy parent method. Note:
+	twisted-2.0 fixes this, but the function only has 3 lines so it
+	makes more sense to copy it than to try and detect the buggyness
+	of the parent class. Fixes SF#1207588.
+
+	* buildbot/changes/changes.py (Change.branch): doh! Add a
+	class-level attribute to accomodate old Change instances that were
+	pickled before 0.6.5 (where .branch was added for new Changes).
+	This fixes the exception that occurs when you try to look at an
+	old Change (through asHTML).
+
+	* buildbot/__init__.py (version): bump to 0.6.6+ while between
+	releases
+
 2005-05-23  Brian Warner  <warner at lothar.com>
 
 	* buildbot/__init__.py (version): release 0.6.6

Index: NEWS
===================================================================
RCS file: /cvsroot/buildbot/site/NEWS,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- NEWS	23 May 2005 23:53:55 -0000	1.8
+++ NEWS	25 Oct 2005 03:53:20 -0000	1.9
@@ -1,5 +1,113 @@
 User visible changes in Buildbot.
 
+* Release 0.7.0 (24 Oct 2005)
+
+** new features
+
+*** new c['schedulers'] config-file element (REQUIRED)
+
+The code which decides exactly *when* a build is performed has been massively
+refactored, enabling much more flexible build scheduling. YOU MUST UPDATE
+your master.cfg files to match: in general this will merely require you to
+add an appropriate c['schedulers'] entry. Any old ".treeStableTime" settings
+on the BuildFactory instances will now be ignored. The user's manual has
+complete details with examples of how the new Scheduler classes work.
+
+*** c['interlocks'] removed, Locks and Dependencies now separate items
+
+The c['interlocks'] config element has been removed, and its functionality
+replaced with two separate objects. Locks are used to tell the buildmaster
+that certain Steps or Builds should not run at the same time as other Steps
+or Builds (useful for test suites that require exclusive access to some
+external resource: of course the real fix is to fix the tests, because
+otherwise your developers will be suffering from the same limitations). The
+Lock object is created in the config file and then referenced by a Step
+specification tuple or by the 'locks' key of the Builder specification
+dictionary. Locks come in two flavors: MasterLocks are buildmaster-wide,
+while SlaveLocks are specific to a single buildslave.
+
+When you want to have one Build run or not run depending upon whether some
+other set of Builds have passed or failed, you use a special kind of
+Scheduler defined in the scheduler.Dependent class. This scheduler watches an
+upstream Scheduler for builds of a given source version to complete, and only
+fires off its own Builders when all of the upstream's Builders have built
+that version successfully.
+
+Both features are fully documented in the user's manual.
+
+*** 'buildbot try'
+
+The 'try' feature has finally been added. There is some configuration
+involved, both in the buildmaster config and on the developer's side, but
+once in place this allows the developer to type 'buildbot try' in their
+locally-modified tree and to be given a report of what would happen if their
+changes were to be committed. This works by computing a (base revision,
+patch) tuple that describes the developer's tree, sending that to the
+buildmaster, then running a build with that source on a given set of
+Builders. The 'buildbot try' tool then emits status messages until the builds
+have finished.
+
+'try' exists to allow developers to run cross-platform tests on their code
+before committing it, reducing the chances they will inconvenience other
+developers by breaking the build. The UI is still clunky, but expect it to
+change and improve over the next few releases.
+
+Instructions for developers who want to use 'try' (and the configuration
+changes necessary to enable its use) are in the user's manual.
+
+*** Build-On-Branch
+
+When suitably configured, the buildbot can be used to build trees from a
+variety of related branches. You can set up Schedulers to build a tree using
+whichever branch was last changed, or users can request builds of specific
+branches through IRC, the web page, or (eventually) the CLI 'buildbot force'
+subcommand.
+
+The IRC 'force' command now takes --branch and --revision arguments (not that
+they always make sense). Likewise the HTML 'force build' button now has an
+input field for branch and revision. Your build's source-checkout step must
+be suitably configured to support this: for SVN it involves giving both a
+base URL and a default branch. Other VC systems are configured differently.
+The ChangeSource must also provide branch information: the 'buildbot
+sendchange' command now takes a --branch argument to help hook script writers
+accomplish this.
+
+*** Multiple slaves per Builder
+
+You can now attach multiple buildslaves to each Builder. This can provide
+redundancy or primitive load-balancing among many machines equally capable of
+running the build. To use this, define a key in the Builder specification
+dictionary named 'slavenames' with a list of buildslave names (instead of the
+usual 'slavename' that contains just a single slavename).
+
+*** minor new features
+
+The IRC and email status-reporting facilities now provide more specific URLs
+for particular builds, in addition to the generic buildmaster home page. The
+HTML per-build page now has more information.
+
+The Twisted-specific test classes have been modified to match the argument
+syntax preferred by Trial as of Twisted-2.1.0 and newer. The generic trial
+steps are still suitable for the Trial that comes with older versions of
+Twisted, but may produce deprecation warnings or errors when used with the
+latest Trial.
+
+** bugs fixed
+
+DNotify, used by the maildir-watching ChangeSources, had problems on some
+64-bit systems relating to signed-vs-unsigned constants and the DN_MULTISHOT
+flag. A workaround was provided by Brad Hards.
+
+The web status page should now be valid XHTML, thanks to a patch by Brad
+Hards. The charset parameter is specified to be UTF-8, so VC comments,
+builder names, etc, should probably all be in UTF-8 to be displayed properly.
+
+** creeping version dependencies
+
+The IRC 'force build' command now requires python2.3 (for the shlex.split
+function).
+
+
 * Release 0.6.6 (23 May 2005)
 
 ** bugs fixed

Index: README
===================================================================
RCS file: /cvsroot/buildbot/site/README,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- README	18 May 2005 08:30:48 -0000	1.14
+++ README	25 Oct 2005 03:53:20 -0000	1.15
@@ -56,19 +56,20 @@
    available in python-2.1, and both master and slave require a version of
    Twisted which only works with python-2.2 or later. Certain features (like
    the inclusion of build logs in status emails) require python-2.2.2 or
-   later.
+   later, while the IRC 'force' command requires python-2.3 .
 
  Twisted: http://twistedmatrix.com
 
    Both the buildmaster and the buildslaves require Twisted-1.3.0 or later.
-   They have been briefly tested against Twisted-1.2.0, and might even work
-   with Twisted-1.1.0, but 1.3.0 is the version that has received the most
-   testing.
+   It has been mainly developed against Twisted-2.0.1, but has been tested
+   against Twisted-2.1.0 (the most recent as this time), and might even work
+   on versions as old as Twisted-1.1.0, but as always the most recent version
+   is recommended.
 
-   Both work with Twisted-2.0.0 as well. You'll need at least "Twisted" (the
-   core package), and you'll also want TwistedMail, TwistedWeb, and
-   TwistedWords (for sending email, serving a web status page, and delivering
-   build status via IRC, respectively).
+   When using the split subpackages of Twisted-2.x.x, you'll need at least
+   "Twisted" (the core package), and you'll also want TwistedMail,
+   TwistedWeb, and TwistedWords (for sending email, serving a web status
+   page, and delivering build status via IRC, respectively).
 
  CVSToys: http://purl.net/net/CVSToys
 
@@ -80,8 +81,9 @@
 
 INSTALLATION:
 
-Please read the User's Manual in docs/buildbot.info for complete
-instructions.
+Please read the User's Manual in docs/buildbot.info (or in HTML form on the
+buildbot web site) for complete instructions. This file only contains a brief
+summary.
 
  RUNNING THE UNIT TESTS
 
@@ -89,20 +91,12 @@
 
  PYTHONPATH=. trial -v buildbot.test
 
-This should run up to 124 tests, depending upon what VC tools you have
-installed. On my desktop machine it takes about two minutes to complete.
+This should run up to 175 tests, depending upon what VC tools you have
+installed. On my desktop machine it takes about four minutes to complete.
 Nothing should fail, a few might be skipped. If any of the tests fail, you
 should stop and investigate the cause before continuing the installation
 process, as it will probably be easier to track down the bug early.
 
-If you want to test the VC checkout process, you'll need to install a
-tarball of repositories, available from http://buildbot.sf.net/ . Otherwise
-there are about 8 tests which will be skipped (all with names like testSVN
-and testArchHTTP). If you unpack this tarball in ~/tmp, it will create
-~/tmp/buildbot-test-vc-1, and you can enable the extra tests with:
-
- PYTHONPATH=. BUILDBOT_TEST_VC=~/tmp trial -v buildbot.test
-
 
  INSTALLING THE LIBRARIES:
 
@@ -138,13 +132,14 @@
 
  buildbot slave WORKDIR MASTERHOST:PORT SLAVENAME PASSWORD
 
-This will create a "TAP" file called "buildbot.tap", which bundles up all
-the state needed by the build slave application. Twisted has a tool called
-"twistd" which knows how to load these saved applications and start running
-them. twistd takes care of logging and daemonization (running the program in
-the background). /usr/bin/buildbot is a front end which runs twistd for you.
+This will create a file called "buildbot.tac", which bundles up all the state
+needed by the build slave application. Twisted has a tool called "twistd"
+which knows how to load these saved applications and start running them.
+twistd takes care of logging and daemonization (running the program in the
+background). /usr/bin/buildbot is a front end which runs twistd for you.
 
-Once you have the .tap file, you start it running like this:
+Once you've set up the directory with the .tac file, you start it running
+like this:
 
  buildbot start WORKDIR
 
@@ -180,65 +175,14 @@
 
  SETTING UP A BUILD MASTER:
 
-First, read through the rest of the documents to understand the definition
-of Builds and BuildFactories. Look at the docs in docs/*.xhtml.
-
-Second, know that this should get easier in the future, probably with a
-web-based interface to create new kinds of Builds and manipulate them.
-
-You start by picking a base directory where the buildmaster will store all
-its status and logfiles. Then you create the buildmaster's buildbot.tap file
-with the 'buildbot' tool:
-
- buildbot master WORKDIR
-
-This will also create a sample configuration file for you in
-WORKDIR/master.cfg . Edit this to describe how your buildmaster should
-operate: what port it should listen on for connections from the build slaves,
-which build slaves are allowed to connect, how to watch for changes to the
-source tree, how to run builds, and how to deliver status information.
-
-There are more examples in docs/examples/, and plenty of documentation on the
-various settings in docs/ . Everything is controlled by the config file. It
-must be readable from the master's basedir under the filename 'master.cfg'.
-
-Then you launch the buildmaster just as you would launch the buildslaves: the
-'buildbot' tool runs twistd, which automatically forks off the daemon into
-the background:
-
- buildbot start WORKDIR
-
-All buildmaster output is logged into 'twistd.log' in that same directory.
-
-The buildmaster will read master.cfg, set up the builders, start listening
-on the web server port and begin accepting connections from the buildslaves.
-
-
- CONNECTING TO A FRESHCVS DAEMON:
-
-Set up CVSToys-1.0.10, and add a statement like the following to your
-freshCfg file:
-
-pb = ConfigurationSet([
-    (None, None, None, PBService(userpass=('foo', 'bar'), port=4519)),
-    ])
-
-This will announce all changes to a client which connects to port 4519 using
-a username of 'foo' and a password of 'bar'.
-
-Then add a clause like this to your buildmaster's master.cfg:
-
-BuildmasterConfig['sources'] = [FreshCVSSource("cvs.example.com", 4519,
-                               "foo", "bar",
-                               prefix="glib/")]
+Please read the user's manual for instructions. The short form is that you
+use 'buildbot master MASTERDIR' to create the base directory, then you edit
+the 'master.cfg' file to configure the buildmaster. Once this is ready, you
+use 'buildbot START MASTERDIR' to launch it.
 
-where "cvs.example.com" is the host that is running the FreshCVS daemon, and
-"glib" is the top-level directory (relative to the repository's root) where
-all your source code lives. Most projects keep one or more projects in the
-same repository (along with CVSROOT/ to hold admin files like loginfo and
-freshCfg); the prefix= argument tells the buildmaster to ignore everything
-outside that directory, and to strip that common prefix from all pathnames
-it handles.
+A sample configuration file will be created for you in WORKDIR/master.cfg .
+There are more examples in docs/examples/, and plenty of documentation in the
+user's manual. Everything is controlled by the config file.
 
 
 SUPPORT:

Index: index.html
===================================================================
RCS file: /cvsroot/buildbot/site/index.html,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- index.html	28 Sep 2005 07:41:06 -0000	1.48
+++ index.html	25 Oct 2005 03:53:20 -0000	1.49
@@ -31,7 +31,7 @@
 <p>Current contents:</p>
 
 <ul>
-  <li>The current release is buildbot-0.6.6 . You can download the source
+  <li>The current release is buildbot-0.7.0 . You can download the source
   from the sf.net download page <a
   href="http://sourceforge.net/project/showfiles.php?group_id=73177">here</a>.
   The release is signed with my GPG public key, available <a
@@ -44,14 +44,9 @@
   main CVS tree and provide lower-latency access than anonymous CVS, details
   are <a href="source-Arch.html">here</a>.</li>
 
-  <li>The <a href="README">README</a> file: installation hints, overview.
-  There is also a preliminary <a href="manual-0.6.6.html">User's Manual</a>
-  for version 0.6.6: it is very rough and may be incomplete or incorrect in
-  places, but it is better than nothing. Alternatively, the <a
-  href="manual-CVS.html">CVS -rHEAD User's Manual</a> is available: it is
-  generated from the latest source code, so it is more complete, but
-  describes features and interfaces that are not yet in the latest
-  release.</li>
+  <li>The <a href="README">README</a> file contains an overview, while the <a
+  href="manual-0.7.0.html">User's Manual</a> contains complete
+  documentation.</li>
 
   <li>Recent changes are summarized in the <a href="NEWS">NEWS</a> file,
   while the complete details are in the <a
@@ -74,8 +69,9 @@
   list</a> to be notified about changes in CVS.
   </li>
 
-  <li>Certain unit tests require some pre-packaged VC repositories available
-  in this tarball: <a href="buildbot-test-vc-1.tar.gz"
+  <li>Older versions (0.6.6 and earlier) require some pre-packaged VC
+  repositories to run certain unit tests, available in this tarball: <a
+  href="buildbot-test-vc-1.tar.gz"
   >buildbot-test-vc-1.tar.gz</a></li>
 </ul>
 
@@ -177,5 +173,5 @@
      align="right" />
 </a>
 
-<!-- hhmts start -->Last modified: Wed Sep 28 00:39:19 PDT 2005 <!-- hhmts end -->
+<!-- hhmts start -->Last modified: Mon Oct 24 20:51:19 PDT 2005 <!-- hhmts end -->
 </body> </html>

--- NEW FILE: manual-0.7.0.html ---
<html lang="en">
<head>
<title>BuildBot Manual 0.7.0</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="BuildBot Manual 0.7.0">
<meta name="generator" content="makeinfo 4.8">
<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This is the BuildBot manual.

Copyright (C) 2005 Brian Warner

Copying and distribution of this file, with or without
modification, are permitted in any medium without royalty
provided the copyright notice and this notice are preserved.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
[...4797 lines suppressed...]
the changes don't occur frequently enough for this to be a significant
problem</p>

   <p class="footnote"><small>[<a name="fn-4" href="#fnd-4">4</a>]</small> this <code>checkoutDelay</code> defaults
to half the tree-stable timer, but it can be overridden with an
argument to the Source Step</p>

   <p class="footnote"><small>[<a name="fn-5" href="#fnd-5">5</a>]</small> To be precise, it is a list of objects which all
implement the <code>buildbot.interfaces.IChangeSource</code> Interface</p>

   <p class="footnote"><small>[<a name="fn-6" href="#fnd-6">6</a>]</small> Also note that a clever buildmaster admin could still create
the opportunity for deadlock: Build A obtains Lock 1, inside which
Step A.two tries to acquire Lock 2 at the Step level. Meanwhile Build
B obtains Lock 2, and has a Step B.two which wants to acquire Lock 1
at the Step level. Don't Do That.</p>

   <p><hr></div>

</body></html>


Index: manual-CVS.html
===================================================================
RCS file: /cvsroot/buildbot/site/manual-CVS.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- manual-CVS.html	31 Aug 2005 07:21:23 -0000	1.3
+++ manual-CVS.html	25 Oct 2005 03:53:20 -0000	1.4
@@ -1,9 +1,9 @@
 <html lang="en">
 <head>
-<title>BuildBot Manual x.x</title>
+<title>BuildBot Manual 0.7.0</title>
 <meta http-equiv="Content-Type" content="text/html">
-<meta name="description" content="BuildBot Manual x.x">
-<meta name="generator" content="makeinfo 4.7">
+<meta name="description" content="BuildBot Manual 0.7.0">
+<meta name="generator" content="makeinfo 4.8">
 <link title="Top" rel="top" href="#Top">
 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
[...2748 lines suppressed...]
+Previous: <a rel="previous" accesskey="p" href="#Developer_0027s-Appendix">Developer's Appendix</a>,
 Up: <a rel="up" accesskey="u" href="#Top">Top</a>
-<br>
+
 </div>
 
 <h2 class="unnumbered">Index</h2>
@@ -4595,9 +4803,9 @@
 <li><a href="#index-Waterfall-32">Waterfall</a>: <a href="#HTML-Waterfall">HTML Waterfall</a></li>
    </ul><div class="footnote">
 <hr>
-<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> except Darcs, but since the Buildbot
-never changes its local source tree we can ignore the fact that Darcs
-uses a less centralized model</p>
+<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> except Darcs, but
+since the Buildbot never modifies its local source tree we can ignore
+the fact that Darcs uses a less centralized model</p>
 
    <p class="footnote"><small>[<a name="fn-2" href="#fnd-2">2</a>]</small> many VC systems provide more complexity than
 this: in particular the local views that P4 and ClearCase can assemble





More information about the Commits mailing list