[Buildbot-commits] site manual-0.7.1.html,NONE,1.1 ChangeLog,1.23,1.24 NEWS,1.9,1.10 index.html,1.50,1.51

Brian Warner warner at users.sourceforge.net
Sun Nov 27 02:26:03 UTC 2005


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

Modified Files:
	ChangeLog NEWS index.html 
Added Files:
	manual-0.7.1.html 
Log Message:
update for 0.7.1

Index: ChangeLog
===================================================================
RCS file: /cvsroot/buildbot/site/ChangeLog,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- ChangeLog	25 Oct 2005 03:53:20 -0000	1.23
+++ ChangeLog	27 Nov 2005 02:26:01 -0000	1.24
@@ -1,3 +1,246 @@
+2005-11-26  Brian Warner  <warner at lothar.com>
+
+	* buildbot/__init__.py (version): Releasing buildbot-0.7.1
+	* docs/buildbot.texinfo: set version number to match
+
+2005-11-26  Brian Warner  <warner at lothar.com>
+
+	* NEWS: update for 0.7.1
+
+	* buildbot/status/builder.py (BuildStepStatus.unsubscribe): make
+	sure that unsubscribe works even if we never sent an ETA update.
+	Also, don't explode on duplicate unsubscribe.
+	(BuildStepStatus.addLog): make the convenience "return self"-added
+	watcher automatically unsubscribe when the Step finishes.
+	(BuildStatus.unsubscribe): same handle-duplicate-unsubscribe
+	(BuildStatus.stepStarted): same auto-unsubscribe
+	(BuilderStatus.buildStarted): same auto-unsubscribe
+
+	* buildbot/interfaces.py (IStatusReceiver.buildStarted): document
+	auto-unsubscribe
+	(IStatusReceiver.stepStarted): same
+	(IStatusReceiver.logStarted): same
+
+	* buildbot/test/test_run.py (Status): move the Status test..
+	* buildbot/test/test_status.py (Subscription): .. to here
+
+2005-11-25  Brian Warner  <warner at lothar.com>
+
+	* NEWS: more updates
+
+	* buildbot/locks.py: fix the problem in which loading a master.cfg
+	file that changes some Builders (but not all of them) can result
+	in having multiple copies of the same Lock. Now, the real Locks
+	are kept in a table inside the BotMaster, and the Builders/Steps
+	use "LockIDs", which are still instances of MasterLock and
+	SlaveLock. The real Locks are instances of the new RealMasterLock
+	and RealSlaveLock classes.
+	* buildbot/master.py (BotMaster.getLockByID): new method to
+	convert LockIDs into real Locks.
+	* buildbot/process/base.py (Build.startBuild): convert LockIDs
+	into real Locks before building
+	* buildbot/process/step.py (BuildStep.startStep): same
+	* buildbot/test/test_locks.py (Locks.testLock1a): add a test which
+	exercises the problem
+
+
+	* docs/buildbot.texinfo (Scheduler Types): give a few hints about
+	what Schedulers are available
+
+	* buildbot/scheduler.py (Nightly): add new Scheduler based upon
+	work by Dobes Vandermeer and hacked mercilessly by me. This offers
+	'cron'-style build scheduling at certain times of day, week,
+	month, or year.
+	* buildbot/test/test_scheduler.py (Scheduling.testNightly): test it
+
+	* buildbot/scheduler.py (Scheduler): change fileIsImportant
+	handling: treat self.fileIsImportant more as an attribute that
+	contains a callable than as a method. If the attribute is None,
+	don't call it and assume all filenames are important. It is still
+	possible to provide a fileIsImportant method in a subclass,
+	however.
+	(AnyBranchScheduler): handle fileIsImportant=None, previously it
+	was broken
+	* buildbot/test/test_scheduler.py (Scheduling.testAnyBranch2):
+	test using AnyBranchScheduler with fileIsImportant=None
+
+2005-11-24  Brian Warner  <warner at lothar.com>
+
+	* buildbot/test/test_config.py (StartService): don't claim a fixed
+	port number, instead set slavePort=0 on the first pass, figure out
+	what port was allocated, then switch to a config file that uses
+	the allocated port.
+
+	* buildbot/master.py (BuildMaster.loadConfig): close the old
+	slaveport before opening the new one, because unit tests might
+	replace slavePort=0 with the same allocated portnumber, and if we
+	don't wait for the old port to close first, we get a "port already
+	in use" error. There is a tiny race condition here, but the only
+	threat is from other programs that bind (statically) to the same
+	port number we happened to be allocated, and only if those
+	programs use SO_REUSEADDR, and only if they get control in between
+	reactor turns.
+
+	* Makefile (TRIALARGS): update to handle Twisted > 2.1.0
+
+	* buildbot/master.py (BuildMaster.loadConfig_Sources): remove all
+	deleted ChangeSources before adding any new ones
+	* buildbot/changes/freshcvs.py (FreshCVSSourceNewcred): fix
+	compare_attrs, to make sure that a config-file reload does not
+	unnecessarily replace an unmodified ChangeSource instance
+	* buildbot/test/test_config.py (ConfigTest.testSources): update
+
+	* buildbot/scheduler.py (AnyBranchScheduler): fix branches=[] to
+	mean "don't build anything", and add a warning if it gets used
+	because it isn't actually useful.
+
+	* contrib/svn_buildbot.py: update example usage to match the port
+	number that gets used by the PBChangeSource
+	* buildbot/scripts/sample.cfg: add example of PBChangeSource
+
+2005-11-22  Brian Warner  <warner at lothar.com>
+
+	* NEWS: start collecting items for next release
+
+	* buildbot/process/step.py (SVN.computeSourceRevision): assume
+	revisions are strings
+	(P4Sync.computeSourceRevision): same
+
+	* buildbot/status/html.py (StatusResourceBuild.body): add a link
+	to the Buildbot's overall status page
+	(StatusResourceBuilder.body): same
+
+2005-11-15  Brian Warner  <warner at lothar.com>
+
+	* buildbot/master.py (BuildMaster.loadConfig): serialize the
+	config-file loading, specifically to make sure old StatusTargets
+	are finished shutting down before new ones start up (thus
+	resolving a bug in which changing the Waterfall object would fail
+	because both new and old instances were claiming the same
+	listening port). Also load new Schedulers after all the new
+	Builders are set up, in case they fire off a new build right away.
+	* buildbot/test/test_config.py (StartService): test it
+
+	* buildbot/status/mail.py (MailNotifier.buildMessage): oops, add
+	the branch name to the mail body
+
+	* buildbot/changes/pb.py (PBChangeSource.compare_attrs): add this.
+	Without it, a config-file reload fails to update an existing
+	PBChangeSource.
+	* buildbot/changes/freshcvs.py (FreshCVSSourceNewcred): add
+	username/passwd to compare_attrs, for the same reason
+	* buildbot/status/html.py (Waterfall): add favicon to
+	compare_attrs, same reason
+
+2005-11-05  Brian Warner  <warner at lothar.com>
+
+	* buildbot/scripts/tryclient.py (createJobfile): stringify the
+	baserev before stuffing it in the jobfile. This resolves problems
+	under SVN (and probably Arch) where revisions are expressed as
+	numbers. I'm inclined to use string-based revisions everywhere in
+	the future, but this fix should be safe for now. Thanks to Steven
+	Walter for the patch.
+
+	* buildbot/changes/changes.py (ChangeMaster.saveYourself): use
+	binary mode when opening pickle files, to make windows work
+	better. Thanks to Dobes Vandermeer for the catch.
+	* buildbot/status/builder.py (BuildStatus.saveYourself): same
+	(BuilderStatus.getBuildByNumber): same
+	(Status.builderAdded): same
+	* buildbot/master.py (BuildMaster.loadChanges): same
+
+	* buildbot/util.py (Swappable): delete unused leftover code
+
+	* buildbot/process/step.py (SVN): when building on a non-default
+	branch, add the word "[branch]" to the VC step's description, so
+	it is obvious that we're not building the usual stuff. Likewise,
+	when we are building a specific revision, add the text "rNNN" to
+	indicate what that revision number is. Thanks to Brad Hards and
+	Nathaniel Smith for the suggestion.
+	(Darcs.startVC): same
+	(Arch.startVC): same
+	(Bazaar.startVC): same
+
+	* buildbot/process/factory.py (GNUAutoconf.__init__): fix a silly
+	typo, caught by Mark Dillavou, closes SF#1216636.
+
+	* buildbot/test/test_status.py (Log.TODO_testDuplicate): add notes
+	about a test to add some day
+
+	* docs/examples/twisted_master.cfg: update: bot1 can now handle
+	the 'full-2.3' build, and the 'reactors' build is now run under
+	python-2.4 because the buildslave no longer has gtk/etc bindings
+	for earlier versions.
+
+2005-11-03  Brian Warner  <warner at lothar.com>
+
+	* buildbot/interfaces.py (IBuilderControl.resubmitBuild): new
+	method, takes an IBuildStatus and rebuilds it. It might make more
+	sense to add this to IBuildControl instead, but that instance goes
+	away completely once the build has finished, and resubmitting
+	builds can take place weeks later.
+	* buildbot/process/builder.py (BuilderControl.resubmitBuild): same
+	* buildbot/status/html.py (StatusResourceBuild): also stash an
+	IBuilderControl so we can use resubmitBuild.
+	(StatusResourceBuild.body): render "resubmit" button if we can.
+	Also add hrefs for each BuildStep
+	(StatusResourceBuild.rebuild): add action for "resubmit" button
+	(StatusResourceBuilder.getChild): give it an IBuilderControl
+
+	* buildbot/status/builder.py (Status.getURLForThing): change the
+	URL for BuildSteps to have a "step-" prefix, so the magic URLs
+	that live as targets of buttons like "stop" and "rebuild" can't
+	collide with them.
+	* buildbot/status/builder.py (Status.getURLForThing): same
+	* buildbot/status/html.py (StatusResourceBuild.getChild): same
+	(StepBox.getBox): same
+	* buildbot/test/test_web.py (GetURL): same
+	(Logfile): same
+
+	* buildbot/process/step.py (SVN.__init__): put svnurl/baseURL
+	exclusivity checks after Source.__init__ upcall, so misspelled
+	arguments will be reported more usefully
+	(Darcs.__init__): same
+
+2005-10-29  Brian Warner  <warner at lothar.com>
+
+	* docs/examples/twisted_master.cfg: don't double-fire the 'quick'
+	builder. Move the Try scheduler off to a separate port.
+
+2005-10-27  Brian Warner  <warner at lothar.com>
+
+	* buildbot/clients/gtkPanes.py
+	(TwoRowClient.remote_builderRemoved): disappearing Builders used
+	to cause the app to crash, now they don't.
+
+	* buildbot/clients/debug.py: display the buildmaster's location
+	in the window's title bar
+
+2005-10-26  Brian Warner  <warner at lothar.com>
+
+	* buildbot/status/mail.py (MailNotifier): urllib.escape the URLs
+	in case they have spaces or whatnot. Patch from Dobes Vandermeer.
+	* buildbot/test/test_status.py (MyStatus.getURLForThing): fix it
+
+	* buildbot/status/html.py (td): put a single non-breaking space
+	inside otherwise empty <td> elements, as a workaround for buggy
+	browsers which would optimize them away (along with any associated
+	styles, like the kind that create the waterfall grid borders).
+	Patch from Frerich Raabe.
+
+	* buildbot/process/step_twisted.py (Trial): expose the trialMode=
+	argv-list as an argument, defaulting to ["-to"], which is
+	appropriate for the Trial that comes with Twisted-2.1.0 and
+	earlier. The Trial in current Twisted SVN wants
+	["--reporter=bwverbose"] instead. Also expose trialArgs=, which
+	defaults to an empty list.
+	* buildbot/process/process_twisted.py (TwistedTrial.trialMode):
+	match it, now that trialMode= is a list instead of a single string
+
+	* buildbot/__init__.py (version): bump to 0.7.0+ while between
+	releases
+	* docs/buildbot.texinfo: same
+
 2005-10-24  Brian Warner  <warner at lothar.com>
 
 	* buildbot/__init__.py (version): Releasing buildbot-0.7.0

Index: NEWS
===================================================================
RCS file: /cvsroot/buildbot/site/NEWS,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- NEWS	25 Oct 2005 03:53:20 -0000	1.9
+++ NEWS	27 Nov 2005 02:26:01 -0000	1.10
@@ -1,5 +1,91 @@
 User visible changes in Buildbot.
 
+* Release 0.7.1 (26 Nov 2005)
+
+** new features
+
+*** scheduler.Nightly
+
+Dobes Vandermeer contributed a cron-style 'Nightly' scheduler. Unlike the
+more-primitive Periodic class (which only lets you specify the duration
+between build attempts), Nightly lets you schedule builds for specific times
+of day, week, month, or year. The interface is very much like the crontab(5)
+file. See the buildbot.scheduler.Nightly docstring for complete details.
+
+** minor new features
+
+*** step.Trial can work with Trial from Twisted >2.1.0
+
+The 'Trial' step now accepts the trialMode= argument, which should be a list
+of strings to be added to trial's argv array. This defaults to ["-to"], which
+is appropriate for the Trial that ships in Twisted-2.1.0 and earlier, and
+tells Trial to emit non-colorized verbose output. To use this step with
+trials from later versions of Twisted, this should be changed to
+["--reporter=bwverbose"].
+
+In addition, you can now set other Trial command-line parameters through the
+trialArgs= argument. This is a list of strings, and defaults to an empty list.
+
+*** Added a 'resubmit this build' button to the web page
+
+*** Make the VC-checkout step's description more useful
+
+Added the word "[branch]" to the VC step's description (used in the Step's
+box on the Waterfall page, among others) when we're checking out a
+non-default branch. Also add "rNNN" where appropriate to indicate which
+revision is being checked out. Thanks to Brad Hards and Nathaniel Smith for
+the suggestion.
+
+** bugs fixed
+
+Several patches from Dobes Vandermeer: Escape the URLs in email, in case they
+have spaces and such. Fill otherwise-empty <td> elements, as a workaround for
+buggy browsers that might optimize them away. Also use binary mode when
+opening status pickle files, to make windows work better. The
+AnyBranchScheduler now works even when you don't provide a fileIsImportant=
+argument.
+
+Stringify the base revision before stuffing it into a 'try' jobfile, helping
+SVN and Arch implement 'try' builds better. Thanks to Steven Walter for the
+patch.
+
+Fix the compare_attrs list in PBChangeSource, FreshCVSSource, and Waterfall.
+Before this, certain changes to these objects in the master.cfg file were
+ignored, such that you would have to stop and re-start the buildmaster to
+make them take effect.
+
+The config file is now loaded serially, shutting down old (or replaced)
+Status/ChangeSource plugins before starting new ones. This fixes a bug in
+which changing an aspect of, say, the Waterfall display would cause an
+exception as both old and new instances fight over the same TCP port. This
+should also fix a bug whereby new Periodic Schedulers could fire a build
+before the Builders have finished being added.
+
+There was a bug in the way Locks were handled when the config file was
+reloaded: changing one Builder (but not the others) and reloading master.cfg
+would result in multiple instances of the same Lock object, so the Locks
+would fail to prevent simultaneous execution of Builds or Steps. This has
+been fixed.
+
+** other changes
+
+For a long time, certain StatusReceiver methods (like buildStarted and
+stepStarted) have been able to return another StatusReceiver instance
+(usually 'self') to indicate that they wish to subscribe to events within the
+new object. For example, if the buildStarted() method returns 'self', the
+status receiver will also receive events for the new build, like
+stepStarted() and buildETAUpdate(). Returning a 'self' from buildStarted() is
+equivalent to calling build.subscribe(self).
+
+Starting with buildbot-0.7.1, this auto-subscribe convenience will also
+register to automatically unsubscribe the target when the build or step has
+finished, just as if build.unsubscribe(self) had been called. Also, the
+unsubscribe() method has been changed to not explode if the same receiver is
+unsubscribed multiple times. (note that it will still explode is the same
+receiver is *subscribed* multiple times, so please continue to refrain from
+doing that).
+
+
 * Release 0.7.0 (24 Oct 2005)
 
 ** new features

Index: index.html
===================================================================
RCS file: /cvsroot/buildbot/site/index.html,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- index.html	25 Nov 2005 00:46:22 -0000	1.50
+++ index.html	27 Nov 2005 02:26:01 -0000	1.51
@@ -31,7 +31,7 @@
 <p>Current contents:</p>
 
 <ul>
-  <li>The current release is buildbot-0.7.0 . You can download the source
+  <li>The current release is buildbot-0.7.1 . 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
@@ -45,7 +45,7 @@
   are <a href="source-Arch.html">here</a>.</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
+  href="manual-0.7.1.html">User's Manual</a> contains complete
   documentation.</li>
 
   <li>Recent changes are summarized in the <a href="NEWS">NEWS</a> file,
@@ -178,5 +178,5 @@
      align="right" />
 </a>
 
-<!-- hhmts start -->Last modified: Thu Nov 24 16:45:46 PST 2005 <!-- hhmts end -->
+<!-- hhmts start -->Last modified: Sat Nov 26 18:25:14 PST 2005 <!-- hhmts end -->
 </body> </html>

--- NEW FILE: manual-0.7.1.html ---
<html lang="en">
<head>
<title>BuildBot Manual 0.7.1</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="BuildBot Manual 0.7.1">
<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 }
[...4850 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>






More information about the Commits mailing list