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.
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
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.
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
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
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
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
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
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