Tailorization

Import of the upstream sources from
 Repository: warner@cvs.sourceforge.net:/cvsroot/buildbot
       Kind: cvs
     Module: buildbot
   Revision: 2005-11-25 23:26:35 by warner
[project @ 2005-11-26 02:09:24 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-438
Creator:  Brian Warner <warner@lothar.com>

add cron-style 'scheduler.Nightly', thanks to Dobes Vandermeer

	* 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
[project @ 2005-11-26 02:14:31 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-440
Creator:  Brian Warner <warner@lothar.com>

fix the multiple-equivalent-Lock-instances bug on config-file reload

	* 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
[project @ 2005-11-26 02:46:33 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-442
Creator:  Brian Warner <warner@lothar.com>

update NEWS again

	* NEWS: more updates
[project @ 2005-11-27 00:46:13 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-444
Creator:  Brian Warner <warner@lothar.com>

fix StatusReceiver unsubscribe bug

	* 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
[project @ 2005-11-27 01:34:31 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-446
Creator:  Brian Warner <warner@lothar.com>

release 0.7.1

	* buildbot/__init__.py (version): Releasing buildbot-0.7.1
	* docs/buildbot.texinfo: set version number to match
	* NEWS: update for 0.7.1
TAG BUILDBOT_0_7_1
TAG buildbot-0.7.1
[project @ 2005-11-27 03:58:48 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-448
Creator:  Brian Warner <warner@lothar.com>

fix AnyBranchScheduler to handle branch==None, merge release--0.7.1

	* buildbot/scheduler.py (AnyBranchScheduler.addChange): don't
	explode when branch==None, thanks to Kevin Turner for the catch
	* buildbot/test/test_scheduler.py (Scheduling.testAnyBranch): test
	it

	* buildbot/__init__.py (version): bump to 0.7.1+ while between
	releases
	* docs/buildbot.texinfo: same
[project @ 2005-12-22 21:00:01 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-450
Creator:  Brian Warner <warner@monolith.lothar.com>

update twisted_master.cfg, add dummy addChange() to BaseScheduler

	* docs/examples/twisted_master.cfg: merge changes from pyr: add
	new win32 builders

	* buildbot/scheduler.py (BaseScheduler.addChange): include a dummy
	addChange in the parent class, although I suspect this should be
	fixed better in the future.
[project @ 2006-01-03 09:26:40 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-452
Creator:  Brian Warner <warner@monolith.lothar.com>

fix a bug: config-file reload would half-clobber all Schedulers

	* buildbot/master.py (BuildMaster): remove the .schedulers
	attribute, replacing it with an allSchedulers() method that looks
	for all IService children that implement IScheduler. Having only
	one parent/child relationship means fewer opportunities for bugs.
	(BuildMaster.allSchedulers): new method
	(BuildMaster.loadConfig_Schedulers): update to use allSchedulers,
	also fix ugly bug that caused any config-file reload to
	half-forget about the earlier Schedulers, causing an exception
	when a Change arrived and was handed to a half-connected
	Scheduler. The exception was in scheduler.py line 54ish:
	  self.parent.submitBuildSet(bs)
	  exceptions.AttributeError: 'NoneType' object has no attribute
	  'submitBuildSet'
	(BuildMaster.addChange): update to use allSchedulers()

	* buildbot/scheduler.py (BaseScheduler.__implements__): fix this
	to work properly with twisted-1.3.0, where you must explicitly
	include the __implements__ from parent classes
	(BaseScheduler.__repr__): make it easier to distinguish distinct
	instances
	(BaseUpstreamScheduler.__implements__): same

	* buildbot/status/builder.py (Status.getSchedulers): update to
	use allSchedulers()
	* buildbot/test/test_run.py (Run.testMaster): same
	* buildbot/test/test_dependencies.py (Dependencies.findScheduler): same
	* buildbot/test/test_config.py (ConfigTest.testSchedulers): same,
	make sure Scheduler instances are left alone when an identical
	config file is reloaded
	(ConfigElements.testSchedulers): make sure Schedulers are properly
	comparable

	* Makefile (TRIALARGS): my local default Twisted version is now
	2.1.0, update the trial arguments accordingly
[project @ 2006-01-13 08:34:28 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-454
Creator:  Brian Warner <warner@lothar.com>

all port= args now accept a strports string: slaveport, Waterfall, etc

	* buildbot/master.py (Manhole.__init__): let port= be a strports
	specification string, but handle a regular int for backwards
	compatibility. This allows "tcp:12345:interface=127.0.0.1" to be
	used in master.cfg to limit connections to just the local host.
	(BuildMaster.loadConfig): same for c['slavePortnum']
	* buildbot/scheduler.py (Try_Userpass.__init__): same
	* buildbot/status/client.py (PBListener.__init__): same
	* buildbot/status/html.py (Waterfall.__init__): same, for both
	http_port and distrib_port. Include backwards-compatibility checks
	so distrib_port can be a filename string and still mean unix:/foo
	* docs/buildbot.texinfo (Setting the slaveport): document it
	(Debug options): same
	(HTML Waterfall): same
	(PBListener): same
	(try): same
	* buildbot/test/test_config.py (ConfigTest): test it

	* buildbot/master.py (BuildMaster.loadConfig): wait for the
	slaveport's disownServiceParent deferred to fire before opening
	the new one. Fixes an annoying bug in the unit tests.
[project @ 2006-01-19 01:32:58 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-456
Creator:  Brian Warner <warner@monolith.lothar.com>

update twisted_master.cfg

	* docs/examples/twisted_master.cfg: update to match the Twisted
	buildbot: remove python2.2, switch to exarkun's buildslaves,
	disable the .deb builder until we figure out how to build twisted
	.debs from SVN, add some ktrace debugging to the OS-X build
	process and remove the qt build, remove threadless builders,
	change freebsd builder to use landonf's buildslave.
[project @ 2006-01-23 21:17:29 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-458
Creator:  Brian Warner <warner@lothar.com>

update NEWS in preparation for upcoming release

	* NEWS: update in preparation for upcoming release
[project @ 2006-01-23 23:03:26 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-460
Creator:  Brian Warner <warner@lothar.com>

allow spaces and slashes in Builder names (and their URLs)

	* buildbot/status/builder.py: urllib.quote() all URLs that include
	Builder names, so that builders can include characters like '/'
	and ' ' without completely breaking the resulting HTML. Thanks to
	Kevin Turner for the patch.
	* buildbot/status/html.py: same
	* buildbot/test/test_web.py (GetURL.testBuild): match changes
[project @ 2006-02-08 20:50:30 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-462
Creator:  Brian Warner <warner@monolith.lothar.com>

add --umask= argument to the buildslave
[project @ 2006-02-17 07:23:13 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-464
Creator:  Brian Warner <warner@monolith.lothar.com>

oops, actually use the umask= argument
[project @ 2006-02-17 07:23:32 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-465
Creator:  Brian Warner <warner@monolith.lothar.com>

update some docs, and the NEWS file

	* docs/buildbot.texinfo (How Different VC Systems Specify Sources):
	add text to explain per-build branch parameters
	* NEWS: mention --umask
[project @ 2006-02-17 08:04:08 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-467
Creator:  Brian Warner <warner@lothar.com>

minor texinfo tweaks

	* docs/buildbot.texinfo (Build Dependencies): add cindex tag
[project @ 2006-02-17 08:04:32 by warner]

Revision: arch@buildbot.sf.net--2004/buildbot--dev--0--patch-468
Creator:  Brian Warner <warner@lothar.com>

release 0.7.2

	* buildbot/__init__.py (version): Releasing buildbot-0.7.2
	* docs/buildbot.texinfo: set version number to match
	* NEWS: update for 0.7.2