From fdrake at gmail.com Thu Sep 23 14:00:47 2004 From: fdrake at gmail.com (Fred Drake) Date: Thu, 23 Sep 2004 10:00:47 -0400 Subject: [Buildbot-commits] Test message Message-ID: <9cee7ab804092307004458960@mail.gmail.com> Just a test. No need to leave your seat. Unless you wanna go get some Thai food. ;-) -Fred -- Fred L. Drake, Jr. From warner at users.sourceforge.net Thu Sep 23 20:53:42 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 20:53:42 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.260,1.261 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10297 Modified Files: ChangeLog Log Message: From fdrake at users.sourceforge.net Thu Sep 23 21:02:51 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 23 Sep 2004 21:02:51 +0000 Subject: [Buildbot-commits] CVSROOT checkoutlist,1.4,1.5 Message-ID: Update of /cvsroot/buildbot/CVSROOT In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13154 Modified Files: checkoutlist Log Message: no need to list branchctl; not used here From warner at users.sourceforge.net Thu Sep 23 21:06:34 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 21:06:34 +0000 Subject: [Buildbot-commits] buildbot NEWS,1.26,1.27 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13912 Modified Files: NEWS Log Message: update mail.MailNotifier to new args From fdrake at users.sourceforge.net Thu Sep 23 21:09:04 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 23 Sep 2004 21:09:04 +0000 Subject: [Buildbot-commits] CVSROOT syncmail,1.5,1.6 Message-ID: Update of /cvsroot/buildbot/CVSROOT In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14744 Modified Files: syncmail Log Message: fix appearantly busted get_rcs_file() function From warner at users.sourceforge.net Thu Sep 23 21:12:39 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 21:12:39 +0000 Subject: [Buildbot-commits] buildbot NEWS,1.27,1.28 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15909 Modified Files: NEWS Log Message: test syncmail From warner at users.sourceforge.net Thu Sep 23 22:57:08 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 22:57:08 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status mail.py,1.5,1.6 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5668/buildbot/status Modified Files: mail.py Log Message: * buildbot/status/mail.py (MailNotifier): add a new argument sendToInterestedUsers=, which can be set to False to disable the usual send-to-blamelist behavior. * buildbot/test/test_status.py (Mail.testBuild2): test it From warner at users.sourceforge.net Thu Sep 23 22:57:08 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 22:57:08 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_status.py,1.6,1.7 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5668/buildbot/test Modified Files: test_status.py Log Message: * buildbot/status/mail.py (MailNotifier): add a new argument sendToInterestedUsers=, which can be set to False to disable the usual send-to-blamelist behavior. * buildbot/test/test_status.py (Mail.testBuild2): test it From warner at users.sourceforge.net Thu Sep 23 22:57:09 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 22:57:09 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.261,1.262 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5668 Modified Files: ChangeLog Log Message: * buildbot/status/mail.py (MailNotifier): add a new argument sendToInterestedUsers=, which can be set to False to disable the usual send-to-blamelist behavior. * buildbot/test/test_status.py (Mail.testBuild2): test it From warner at users.sourceforge.net Thu Sep 23 23:50:09 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 23:50:09 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status mail.py,1.6,1.7 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17737/buildbot/status Modified Files: mail.py Log Message: (MailNotifier): add a new argument sendToInterestedUsers=, which can be set to False to disable the usual send-to-blamelist behavior. (top): handle python-2.2 which has no email.MIMEMultipart (MailNotifier.buildMessage): don't send logs without MIMEMultipart (MailNotifier.disownServiceParent): unsubscribe on removal From warner at users.sourceforge.net Thu Sep 23 23:50:10 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 23 Sep 2004 23:50:10 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.262,1.263 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17737 Modified Files: ChangeLog Log Message: (MailNotifier): add a new argument sendToInterestedUsers=, which can be set to False to disable the usual send-to-blamelist behavior. (top): handle python-2.2 which has no email.MIMEMultipart (MailNotifier.buildMessage): don't send logs without MIMEMultipart (MailNotifier.disownServiceParent): unsubscribe on removal From warner at users.sourceforge.net Fri Sep 24 00:14:10 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 00:14:10 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status mail.py,1.7,1.8 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22469 Modified Files: mail.py Log Message: (disownServiceParent): unsubscribe from all BuilderStatus objects too From warner at users.sourceforge.net Fri Sep 24 03:18:49 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 03:18:49 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.46,1.47 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20964/buildbot Modified Files: master.py Log Message: (BotMaster.getPerspective): detect duplicate slaves, let the second know where the first one is coming from (BuildMaster.__init__): turn on .unsafeTracebacks so the slave can see our exceptions. It would be nice if there were a way to just send them the exception type and value, not the full traceback. From warner at users.sourceforge.net Fri Sep 24 07:21:55 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:21:55 +0000 Subject: [Buildbot-commits] buildbot/buildbot __init__.py,1.1,1.2 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24812/buildbot Modified Files: __init__.py Log Message: buildbot/__init__.py (version): move version string here setup.py: get version string from buildbot.version buildbot/status/html.py (WaterfallStatusResource.body): add buildbot version to the page footer buildbot/status/words.py (IrcStatusBot.command_VERSION): provide version when asked From warner at users.sourceforge.net Fri Sep 24 07:21:54 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:21:54 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status words.py,1.20,1.21 html.py,1.30,1.31 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24812/buildbot/status Modified Files: words.py html.py Log Message: buildbot/__init__.py (version): move version string here setup.py: get version string from buildbot.version buildbot/status/html.py (WaterfallStatusResource.body): add buildbot version to the page footer buildbot/status/words.py (IrcStatusBot.command_VERSION): provide version when asked From warner at users.sourceforge.net Fri Sep 24 07:21:55 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:21:55 +0000 Subject: [Buildbot-commits] buildbot setup.py,1.28,1.29 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24812 Modified Files: setup.py Log Message: buildbot/__init__.py (version): move version string here setup.py: get version string from buildbot.version buildbot/status/html.py (WaterfallStatusResource.body): add buildbot version to the page footer buildbot/status/words.py (IrcStatusBot.command_VERSION): provide version when asked From warner at users.sourceforge.net Fri Sep 24 07:25:25 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:25:25 +0000 Subject: [Buildbot-commits] buildbot/buildbot/scripts sample.cfg,1.1,1.2 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25783 Modified Files: sample.cfg Log Message: reformat sample config a tiny bit From warner at users.sourceforge.net Fri Sep 24 07:25:50 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:25:50 +0000 Subject: [Buildbot-commits] buildbot/debian rules,1.1,1.2 Message-ID: Update of /cvsroot/buildbot/buildbot/debian In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25917/debian Modified Files: rules Log Message: (binary-indep): skip CVS/ files in dh_installexamples From warner at users.sourceforge.net Fri Sep 24 07:27:33 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Fri, 24 Sep 2004 07:27:33 +0000 Subject: [Buildbot-commits] buildbot Makefile,1.1,1.2 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26176 Modified Files: Makefile Log Message: add 'deb-snapshot' target, to create a timestamped .deb package From warner at users.sourceforge.net Sun Sep 26 23:20:23 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Sun, 26 Sep 2004 23:20:23 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.264,1.265 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7814 Modified Files: ChangeLog Log Message: (ComparableMixin): survive twisted>1.3.0 which ends up comparing us against something without a .__class__ From warner at users.sourceforge.net Sun Sep 26 23:20:22 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Sun, 26 Sep 2004 23:20:22 +0000 Subject: [Buildbot-commits] buildbot/buildbot util.py,1.5,1.6 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7814/buildbot Modified Files: util.py Log Message: (ComparableMixin): survive twisted>1.3.0 which ends up comparing us against something without a .__class__ From jd_slyphon at users.sourceforge.net Mon Sep 27 08:04:16 2004 From: jd_slyphon at users.sourceforge.net (jonathan simms) Date: Mon, 27 Sep 2004 08:04:16 +0000 Subject: [Buildbot-commits] buildbot/buildbot/slave trial.py,1.2,1.3 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/slave In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15565/buildbot/slave Modified Files: trial.py Log Message: working RemoteReporter and tests *beta* version From jd_slyphon at users.sourceforge.net Mon Sep 27 08:04:16 2004 From: jd_slyphon at users.sourceforge.net (jonathan simms) Date: Mon, 27 Sep 2004 08:04:16 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_trial.py,1.2,1.3 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15565/buildbot/test Modified Files: test_trial.py Log Message: working RemoteReporter and tests *beta* version From warner at users.sourceforge.net Tue Sep 28 17:51:42 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:51:42 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process builder.py,1.13,1.14 base.py,1.41,1.42 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1975/buildbot/process Modified Files: builder.py base.py Log Message: * buildbot/test/test_control.py: test new interfaces * buildbot/test/test_run.py (Status): handle new interfaces * buildbot/test/test_vc.py (SetupMixin.doBuild): same * buildbot/process/base.py (BuildControl): implement IBuildControl and its lonely getStatus() method * buildbot/process/builder.py (BuilderControl): implement IBuilderControl, obtained by adapting the Builder instance (Builder.startBuild): return a BuilderControl instead of a Deferred. The caller can use bc.getStatus().waitUntilFinished() to accomplish the same thing. * buildbot/master.py: move all import statements to the top (Control): implement IControl, obtained by adapting the BuildMaster instance. * buildbot/interfaces.py: add IControl, IBuilderControl, and IBuildControl. These are used to force builds. Eventually they will provide ways to reconfigure the Builders, pause or abandon a Build, and perhaps control the BuildMaster itself. From warner at users.sourceforge.net Tue Sep 28 17:51:42 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:51:42 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.47,1.48 interfaces.py,1.14,1.15 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1975/buildbot Modified Files: master.py interfaces.py Log Message: * buildbot/test/test_control.py: test new interfaces * buildbot/test/test_run.py (Status): handle new interfaces * buildbot/test/test_vc.py (SetupMixin.doBuild): same * buildbot/process/base.py (BuildControl): implement IBuildControl and its lonely getStatus() method * buildbot/process/builder.py (BuilderControl): implement IBuilderControl, obtained by adapting the Builder instance (Builder.startBuild): return a BuilderControl instead of a Deferred. The caller can use bc.getStatus().waitUntilFinished() to accomplish the same thing. * buildbot/master.py: move all import statements to the top (Control): implement IControl, obtained by adapting the BuildMaster instance. * buildbot/interfaces.py: add IControl, IBuilderControl, and IBuildControl. These are used to force builds. Eventually they will provide ways to reconfigure the Builders, pause or abandon a Build, and perhaps control the BuildMaster itself. From warner at users.sourceforge.net Tue Sep 28 17:51:41 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:51:41 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_control.py,NONE,1.1 test_vc.py,1.13,1.14 test_run.py,1.15,1.16 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1975/buildbot/test Modified Files: test_vc.py test_run.py Added Files: test_control.py Log Message: * buildbot/test/test_control.py: test new interfaces * buildbot/test/test_run.py (Status): handle new interfaces * buildbot/test/test_vc.py (SetupMixin.doBuild): same * buildbot/process/base.py (BuildControl): implement IBuildControl and its lonely getStatus() method * buildbot/process/builder.py (BuilderControl): implement IBuilderControl, obtained by adapting the Builder instance (Builder.startBuild): return a BuilderControl instead of a Deferred. The caller can use bc.getStatus().waitUntilFinished() to accomplish the same thing. * buildbot/master.py: move all import statements to the top (Control): implement IControl, obtained by adapting the BuildMaster instance. * buildbot/interfaces.py: add IControl, IBuilderControl, and IBuildControl. These are used to force builds. Eventually they will provide ways to reconfigure the Builders, pause or abandon a Build, and perhaps control the BuildMaster itself. --- NEW FILE: test_control.py --- #! /usr/bin/python import sys, os, signal, shutil, time from twisted.trial import unittest dr = unittest.deferredResult from twisted.internet import defer, reactor from twisted.python.components import implements from buildbot import master, interfaces from buildbot.slave import bot from buildbot.status import builder from buildbot.status.builder import SUCCESS config = """ from buildbot.process import factory, step def s(klass, **kwargs): return (klass, kwargs) f1 = factory.BuildFactory([ s(step.Dummy, timeout=1), ]) c = {} c['bots'] = [['bot1', 'sekrit']] c['sources'] = [] c['builders'] = [{'name': 'force', 'slavename': 'bot1', 'builddir': 'force-dir', 'factory': f1}] c['slavePortnum'] = 0 BuildmasterConfig = c """ class FakeBuilder: name = "fake" def getSlaveCommandVersion(self, command, oldversion=None): return "1.10" class SignalMixin: sigchldHandler = None def setUpClass(self): # make sure SIGCHLD handler is installed, as it should be on # reactor.run(). problem is reactor may not have been run when this # test runs. if hasattr(reactor, "_handleSigchld") and hasattr(signal, "SIGCHLD"): self.sigchldHandler = signal.signal(signal.SIGCHLD, reactor._handleSigchld) def tearDownClass(self): if self.sigchldHandler: signal.signal(signal.SIGCHLD, self.sigchldHandler) class Force(unittest.TestCase): master = None slave = None def setUp(self): self.master = master.BuildMaster("control_basedir") self.slavebase = os.path.abspath("control_slavebase") shutil.rmtree(self.slavebase, ignore_errors=1) os.mkdir("control_slavebase") def connectSlave(self): port = self.master.slavePort._port.getHost().port slave = bot.BuildSlave("localhost", port, "bot1", "sekrit", self.slavebase, keepalive=0, usePTY=1) self.slave = slave slave.startService() d = self.master.botmaster.waitUntilBuilderAttached("force") dr(d) def loadConfig(self, config): # reloading the config file causes a new 'listDirs' command to be # sent to the slave. To synchronize on this properly, it is easiest # to stop and restart the slave. if self.slave: d = self.master.botmaster.waitUntilBuilderDetached("force") dr(defer.maybeDeferred(self.slave.stopService)) dr(d) self.master.loadConfig(config) self.connectSlave() def tearDown(self): if self.slave: d = self.master.botmaster.waitUntilBuilderDetached("force") dr(defer.maybeDeferred(self.slave.stopService)) dr(d) if self.master: dr(defer.maybeDeferred(self.master.stopService)) def testForce(self): m = self.master m.loadConfig(config) m.readConfig = True m.startService() self.connectSlave() c = interfaces.IControl(m) builder_control = c.getBuilder("force") build_control = builder_control.forceBuild("bob", "I was bored") self.failUnless(implements(build_control, interfaces.IBuildControl)) d = build_control.getStatus().waitUntilFinished() bs = dr(d) print bs self.failUnless(implements(bs, interfaces.IBuildStatus)) self.failUnless(bs.isFinished()) self.failUnlessEqual(bs.getResults(), SUCCESS) #self.failUnlessEqual(bs.getResponsibleUsers(), ["bob"]) # TODO self.failUnlessEqual(bs.getChanges(), []) #self.failUnlessEqual(bs.getReason(), "forced") # TODO From warner at users.sourceforge.net Tue Sep 28 17:52:06 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:52:06 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.31,1.32 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2114/buildbot/status Modified Files: html.py Log Message: move all imports to the top From warner at users.sourceforge.net Tue Sep 28 17:52:17 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:52:17 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status mail.py,1.8,1.9 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2171/buildbot/status Modified Files: mail.py Log Message: refine comment about needing 2.3 From warner at users.sourceforge.net Tue Sep 28 17:55:52 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:55:52 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_trial.py,1.3,1.4 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3131 Modified Files: test_trial.py Log Message: raise a top-level SkipTest unless retrial is available From warner at users.sourceforge.net Tue Sep 28 17:56:07 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 17:56:07 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.265,1.266 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3171 Modified Files: ChangeLog Log Message: *** empty log message *** From warner at users.sourceforge.net Tue Sep 28 18:25:47 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:25:47 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process builder.py,1.14,1.15 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10467/buildbot/process Modified Files: builder.py Log Message: * buildbot/process/builder.py (Builder.doPeriodicBuild): set who=None so periodic builds don't send out status mail (Builder.forceBuild): include reason in the log message (BuilderControl.forceBuild): rename 'name' to 'who' * buildbot/master.py (BotPerspective.perspective_forceBuild): add 'who' parameter, but make it None by default so builds forced by slave admins don't cause status mail to be sent to anybody (BotMaster.forceBuild): same. this method is deprecated. (DebugPerspective.perspective_forceBuild): same, use IControl. (DebugPerspective.perspective_fakeChange): use IControl.. (Dispatcher.requestAvatar): .. so don't set .changemaster * buildbot/interfaces.py (IBuilderControl.forceBuild): rename 'who' parameter to avoid confusion with the name of the builder From warner at users.sourceforge.net Tue Sep 28 18:25:47 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:25:47 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.48,1.49 interfaces.py,1.15,1.16 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10467/buildbot Modified Files: master.py interfaces.py Log Message: * buildbot/process/builder.py (Builder.doPeriodicBuild): set who=None so periodic builds don't send out status mail (Builder.forceBuild): include reason in the log message (BuilderControl.forceBuild): rename 'name' to 'who' * buildbot/master.py (BotPerspective.perspective_forceBuild): add 'who' parameter, but make it None by default so builds forced by slave admins don't cause status mail to be sent to anybody (BotMaster.forceBuild): same. this method is deprecated. (DebugPerspective.perspective_forceBuild): same, use IControl. (DebugPerspective.perspective_fakeChange): use IControl.. (Dispatcher.requestAvatar): .. so don't set .changemaster * buildbot/interfaces.py (IBuilderControl.forceBuild): rename 'who' parameter to avoid confusion with the name of the builder From warner at users.sourceforge.net Tue Sep 28 18:26:23 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:26:23 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status words.py,1.21,1.22 html.py,1.32,1.33 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10598/buildbot/status Modified Files: words.py html.py Log Message: * buildbot/status/html.py (StatusResourceBuilder.force): rewrite to use IControl. Still offline. * buildbot/status/words.py (IrcStatusBot.command_FORCE): same From warner at users.sourceforge.net Tue Sep 28 18:26:36 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:26:36 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_vc.py,1.14,1.15 test_run.py,1.16,1.17 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10635/buildbot/test Modified Files: test_vc.py test_run.py Log Message: * buildbot/test/test_run.py: use IControl * buildbot/test/test_vc.py: same From warner at users.sourceforge.net Tue Sep 28 18:26:56 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:26:56 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.266,1.267 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10681 Modified Files: ChangeLog Log Message: *** empty log message *** From warner at users.sourceforge.net Tue Sep 28 18:29:38 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 18:29:38 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_vc.py,1.15,1.16 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11264 Modified Files: test_vc.py Log Message: oops, need to import buildbot.interfaces From warner at users.sourceforge.net Tue Sep 28 19:02:52 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 19:02:52 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.267,1.268 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19127 Modified Files: ChangeLog Log Message: (IrcStatusBot): enable build-forcing From warner at users.sourceforge.net Tue Sep 28 19:02:51 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Tue, 28 Sep 2004 19:02:51 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status words.py,1.22,1.23 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19127/buildbot/status Modified Files: words.py Log Message: (IrcStatusBot): enable build-forcing From warner at users.sourceforge.net Wed Sep 29 03:54:27 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 03:54:27 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_web.py,1.2,1.3 test_control.py,1.1,1.2 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29473/buildbot/test Modified Files: test_web.py test_control.py Log Message: * buildbot/status/words.py (IrcStatusBot.privmsg): clean up failure handling, remove a redundant try/except block. Don't return the full traceback to the IRC channel. (IrcStatusBot.command_FORCE): catch new exceptions, return useful error messages. Get ETA properly. * buildbot/status/html.py (StatusResourceBuild.body): html.escape the reason, since (at least) IRC message will have <> in them. (StatusResourceBuilder.__init__): take an IBuilderControl (StatusResourceBuilder.force): use the IBuilderControl we get in the constructor instead of trying to make our own. Catch the new exceptions and ignore them for now (until we make an intermediate web page where we could show the error message) (StatusResource): create with an IControl, use it to give an IBuilderControl to all children (Waterfall): take an allowForce= option, pass an IControl object to StatusResource if it is True * buildbot/test/test_web.py (ConfiguredMaster): handle IControl * buildbot/master.py (BotPerspective.perspective_forceBuild): catch new exceptions and return string forms * buildbot/interfaces.py: add NoSlaveError, BuilderInUseError * buildbot/process/builder.py (Builder.forceBuild): raise them * buildbot/test/test_control.py (Force.testNoSlave): new test (Force.testBuilderInUse): same From warner at users.sourceforge.net Wed Sep 29 03:54:39 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 03:54:39 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.268,1.269 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29581 Modified Files: ChangeLog Log Message: *** empty log message *** From warner at users.sourceforge.net Wed Sep 29 03:54:27 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 03:54:27 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process builder.py,1.15,1.16 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29473/buildbot/process Modified Files: builder.py Log Message: * buildbot/status/words.py (IrcStatusBot.privmsg): clean up failure handling, remove a redundant try/except block. Don't return the full traceback to the IRC channel. (IrcStatusBot.command_FORCE): catch new exceptions, return useful error messages. Get ETA properly. * buildbot/status/html.py (StatusResourceBuild.body): html.escape the reason, since (at least) IRC message will have <> in them. (StatusResourceBuilder.__init__): take an IBuilderControl (StatusResourceBuilder.force): use the IBuilderControl we get in the constructor instead of trying to make our own. Catch the new exceptions and ignore them for now (until we make an intermediate web page where we could show the error message) (StatusResource): create with an IControl, use it to give an IBuilderControl to all children (Waterfall): take an allowForce= option, pass an IControl object to StatusResource if it is True * buildbot/test/test_web.py (ConfiguredMaster): handle IControl * buildbot/master.py (BotPerspective.perspective_forceBuild): catch new exceptions and return string forms * buildbot/interfaces.py: add NoSlaveError, BuilderInUseError * buildbot/process/builder.py (Builder.forceBuild): raise them * buildbot/test/test_control.py (Force.testNoSlave): new test (Force.testBuilderInUse): same From warner at users.sourceforge.net Wed Sep 29 03:54:28 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 03:54:28 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.49,1.50 interfaces.py,1.16,1.17 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29473/buildbot Modified Files: master.py interfaces.py Log Message: * buildbot/status/words.py (IrcStatusBot.privmsg): clean up failure handling, remove a redundant try/except block. Don't return the full traceback to the IRC channel. (IrcStatusBot.command_FORCE): catch new exceptions, return useful error messages. Get ETA properly. * buildbot/status/html.py (StatusResourceBuild.body): html.escape the reason, since (at least) IRC message will have <> in them. (StatusResourceBuilder.__init__): take an IBuilderControl (StatusResourceBuilder.force): use the IBuilderControl we get in the constructor instead of trying to make our own. Catch the new exceptions and ignore them for now (until we make an intermediate web page where we could show the error message) (StatusResource): create with an IControl, use it to give an IBuilderControl to all children (Waterfall): take an allowForce= option, pass an IControl object to StatusResource if it is True * buildbot/test/test_web.py (ConfiguredMaster): handle IControl * buildbot/master.py (BotPerspective.perspective_forceBuild): catch new exceptions and return string forms * buildbot/interfaces.py: add NoSlaveError, BuilderInUseError * buildbot/process/builder.py (Builder.forceBuild): raise them * buildbot/test/test_control.py (Force.testNoSlave): new test (Force.testBuilderInUse): same From warner at users.sourceforge.net Wed Sep 29 03:54:27 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 03:54:27 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status words.py,1.23,1.24 html.py,1.33,1.34 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29473/buildbot/status Modified Files: words.py html.py Log Message: * buildbot/status/words.py (IrcStatusBot.privmsg): clean up failure handling, remove a redundant try/except block. Don't return the full traceback to the IRC channel. (IrcStatusBot.command_FORCE): catch new exceptions, return useful error messages. Get ETA properly. * buildbot/status/html.py (StatusResourceBuild.body): html.escape the reason, since (at least) IRC message will have <> in them. (StatusResourceBuilder.__init__): take an IBuilderControl (StatusResourceBuilder.force): use the IBuilderControl we get in the constructor instead of trying to make our own. Catch the new exceptions and ignore them for now (until we make an intermediate web page where we could show the error message) (StatusResource): create with an IControl, use it to give an IBuilderControl to all children (Waterfall): take an allowForce= option, pass an IControl object to StatusResource if it is True * buildbot/test/test_web.py (ConfiguredMaster): handle IControl * buildbot/master.py (BotPerspective.perspective_forceBuild): catch new exceptions and return string forms * buildbot/interfaces.py: add NoSlaveError, BuilderInUseError * buildbot/process/builder.py (Builder.forceBuild): raise them * buildbot/test/test_control.py (Force.testNoSlave): new test (Force.testBuilderInUse): same From warner at users.sourceforge.net Wed Sep 29 04:13:24 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 04:13:24 +0000 Subject: [Buildbot-commits] buildbot/buildbot util.py,1.6,1.7 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv442/buildbot Modified Files: util.py Log Message: (ComparableMixin): survive missing attributes, such as when a class is modified and we're comparing old instances against new ones From warner at users.sourceforge.net Wed Sep 29 04:13:24 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 04:13:24 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.269,1.270 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv442 Modified Files: ChangeLog Log Message: (ComparableMixin): survive missing attributes, such as when a class is modified and we're comparing old instances against new ones From warner at users.sourceforge.net Wed Sep 29 04:19:44 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 04:19:44 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.34,1.35 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1379/buildbot/status Modified Files: html.py Log Message: * buildbot/status/html.py (StatusResource.control): add some class-level values for .control in an attempt to make upgrading smoother From warner at users.sourceforge.net Wed Sep 29 05:18:01 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 05:18:01 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process step_twisted.py,1.58,1.59 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10144/buildbot/process Modified Files: step_twisted.py Log Message: (Trial.createSummary): fix warning-scanner to not ignore things like 'ComponentsDeprecationWarning' and 'exceptions.RuntimeWarning' From warner at users.sourceforge.net Wed Sep 29 05:18:01 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Wed, 29 Sep 2004 05:18:01 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.270,1.271 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10144 Modified Files: ChangeLog Log Message: (Trial.createSummary): fix warning-scanner to not ignore things like 'ComponentsDeprecationWarning' and 'exceptions.RuntimeWarning' From fdrake at users.sourceforge.net Thu Sep 30 05:40:34 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 30 Sep 2004 05:40:34 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.35,1.36 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30019 Modified Files: html.py Log Message: make it at least vaguely meaningful to set allowForce to False From fdrake at users.sourceforge.net Thu Sep 30 06:09:26 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 30 Sep 2004 06:09:26 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.36,1.37 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2009 Modified Files: html.py Log Message: adjustments to the way HTML is generated for the Builder page: - make name/value rows (both input and output) all be generated in the same way - only generate the "Force Build" form if allowForce was True, and the slave is actually connected (giving a message if allowForce was True and the slave isn't connected) - spread a tiny bit of CSS-joy From fdrake at users.sourceforge.net Thu Sep 30 06:35:46 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 30 Sep 2004 06:35:46 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.37,1.38 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6034 Modified Files: html.py Log Message: put the builder name in the page title for the Builder page From warner at users.sourceforge.net Thu Sep 30 07:13:36 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:13:36 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_web.py,1.3,1.4 test_vc.py,1.16,1.17 test_status.py,1.7,1.8 test_run.py,1.17,1.18 test_control.py,1.2,1.3 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13538/buildbot/test Modified Files: test_web.py test_vc.py test_status.py test_run.py test_control.py Log Message: * buildbot/interfaces.py (IStatusLogStub): split out some of the IStatusLog methods into an Interface that is implemented by "stub" logs, for which all the actual text chunks are on disk (in the pickled Build instance). To show the log contents, you must first adapt the stub log to a full IStatusLog object. * buildbot/status/builder.py (LogFileStub): create separate stub log objects, which can be upgraded to a real one if necessary. (LogFile): make them persistable, and let them stubify themselves (HTMLLogFile): same (BuildStepStatus): same (BuildStatus): same (BuildStatus.saveYourself): save the whole build out to disk (BuilderStatus): make it persistable (BuilderStatus.saveYourself): save the builder to disk (BuilderStatus.addFullBuildToCache): implement two caches which hold Build objects: a small one which holds full Builds, and a larger one which holds "stubbed" Builds (ones with their LogFiles turned into LogFileStubs). This reduces memory usage by the buildmaster by not keeping more than a few (default is 2) whole build logs in RAM all the time. (BuilderStatus.getBuild): rewrite to pull from disk (through the cache) (BuilderStatus.eventGenerator): rewrite since .builds went away (BuilderStatus.buildStarted): remove the .builds array. Add the build to the "full" cache when it starts. (BuilderStatus._buildFinished): save the build to disk when it finishes (Status): give it a basedir (same as the BuildMaster's basedir) where the builder pickles can be saved (Status.builderAdded): create the BuilderStatus ourselves, by loading a pickle from disk (or creating a new instance if there was none on disk). Return the BuilderStatus so the master can glue it into the new Builder object. * buildbot/master.py (BotMaster.stopService): on shutdown, tell all BuilderStatuses to save themselves out to disk. This is in lieu of saving anything important in the main Application pickle (the -shutdown.tap file). (BuildMaster.__init__): give Status() a basedir for its files (BuildMaster.loadConfig_Builders): do status.builderAdded first, to get the BuilderStatus, then give it to the Builder (instead of doing it the other way around). It's ok if the status announces the new Builder before it's really ready, as the outside world can only see the BuilderStatus object anyway (and it is ready before builderAdded returns). Use the builder's "builddir" (which normally specifies where the slave will run the builder) as the master's basedir (for saving serialized builds). * buildbot/status/html.py (StatusResourceBuildStep.getChild): coerce the logfile to IStatusLog before trying to get the text chunks out of it. This will pull the full (non-stubified) Build in from disk if necessary. (TextLog): fix the adapter registration * buildbot/test/test_control.py (Force.setUp): create the basedir * buildbot/test/test_web.py: same * buildbot/test/test_vc.py (SetupMixin.setUp): same * buildbot/test/test_status.py (Mail.makeBuild): match new setup * buildbot/test/test_run.py (Run.testMaster): same (Status.setUp): same From warner at users.sourceforge.net Thu Sep 30 07:13:41 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:13:41 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.38,1.39 builder.py,1.28,1.29 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13538/buildbot/status Modified Files: html.py builder.py Log Message: * buildbot/interfaces.py (IStatusLogStub): split out some of the IStatusLog methods into an Interface that is implemented by "stub" logs, for which all the actual text chunks are on disk (in the pickled Build instance). To show the log contents, you must first adapt the stub log to a full IStatusLog object. * buildbot/status/builder.py (LogFileStub): create separate stub log objects, which can be upgraded to a real one if necessary. (LogFile): make them persistable, and let them stubify themselves (HTMLLogFile): same (BuildStepStatus): same (BuildStatus): same (BuildStatus.saveYourself): save the whole build out to disk (BuilderStatus): make it persistable (BuilderStatus.saveYourself): save the builder to disk (BuilderStatus.addFullBuildToCache): implement two caches which hold Build objects: a small one which holds full Builds, and a larger one which holds "stubbed" Builds (ones with their LogFiles turned into LogFileStubs). This reduces memory usage by the buildmaster by not keeping more than a few (default is 2) whole build logs in RAM all the time. (BuilderStatus.getBuild): rewrite to pull from disk (through the cache) (BuilderStatus.eventGenerator): rewrite since .builds went away (BuilderStatus.buildStarted): remove the .builds array. Add the build to the "full" cache when it starts. (BuilderStatus._buildFinished): save the build to disk when it finishes (Status): give it a basedir (same as the BuildMaster's basedir) where the builder pickles can be saved (Status.builderAdded): create the BuilderStatus ourselves, by loading a pickle from disk (or creating a new instance if there was none on disk). Return the BuilderStatus so the master can glue it into the new Builder object. * buildbot/master.py (BotMaster.stopService): on shutdown, tell all BuilderStatuses to save themselves out to disk. This is in lieu of saving anything important in the main Application pickle (the -shutdown.tap file). (BuildMaster.__init__): give Status() a basedir for its files (BuildMaster.loadConfig_Builders): do status.builderAdded first, to get the BuilderStatus, then give it to the Builder (instead of doing it the other way around). It's ok if the status announces the new Builder before it's really ready, as the outside world can only see the BuilderStatus object anyway (and it is ready before builderAdded returns). Use the builder's "builddir" (which normally specifies where the slave will run the builder) as the master's basedir (for saving serialized builds). * buildbot/status/html.py (StatusResourceBuildStep.getChild): coerce the logfile to IStatusLog before trying to get the text chunks out of it. This will pull the full (non-stubified) Build in from disk if necessary. (TextLog): fix the adapter registration * buildbot/test/test_control.py (Force.setUp): create the basedir * buildbot/test/test_web.py: same * buildbot/test/test_vc.py (SetupMixin.setUp): same * buildbot/test/test_status.py (Mail.makeBuild): match new setup * buildbot/test/test_run.py (Run.testMaster): same (Status.setUp): same From warner at users.sourceforge.net Thu Sep 30 07:13:42 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:13:42 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.50,1.51 interfaces.py,1.17,1.18 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13538/buildbot Modified Files: master.py interfaces.py Log Message: * buildbot/interfaces.py (IStatusLogStub): split out some of the IStatusLog methods into an Interface that is implemented by "stub" logs, for which all the actual text chunks are on disk (in the pickled Build instance). To show the log contents, you must first adapt the stub log to a full IStatusLog object. * buildbot/status/builder.py (LogFileStub): create separate stub log objects, which can be upgraded to a real one if necessary. (LogFile): make them persistable, and let them stubify themselves (HTMLLogFile): same (BuildStepStatus): same (BuildStatus): same (BuildStatus.saveYourself): save the whole build out to disk (BuilderStatus): make it persistable (BuilderStatus.saveYourself): save the builder to disk (BuilderStatus.addFullBuildToCache): implement two caches which hold Build objects: a small one which holds full Builds, and a larger one which holds "stubbed" Builds (ones with their LogFiles turned into LogFileStubs). This reduces memory usage by the buildmaster by not keeping more than a few (default is 2) whole build logs in RAM all the time. (BuilderStatus.getBuild): rewrite to pull from disk (through the cache) (BuilderStatus.eventGenerator): rewrite since .builds went away (BuilderStatus.buildStarted): remove the .builds array. Add the build to the "full" cache when it starts. (BuilderStatus._buildFinished): save the build to disk when it finishes (Status): give it a basedir (same as the BuildMaster's basedir) where the builder pickles can be saved (Status.builderAdded): create the BuilderStatus ourselves, by loading a pickle from disk (or creating a new instance if there was none on disk). Return the BuilderStatus so the master can glue it into the new Builder object. * buildbot/master.py (BotMaster.stopService): on shutdown, tell all BuilderStatuses to save themselves out to disk. This is in lieu of saving anything important in the main Application pickle (the -shutdown.tap file). (BuildMaster.__init__): give Status() a basedir for its files (BuildMaster.loadConfig_Builders): do status.builderAdded first, to get the BuilderStatus, then give it to the Builder (instead of doing it the other way around). It's ok if the status announces the new Builder before it's really ready, as the outside world can only see the BuilderStatus object anyway (and it is ready before builderAdded returns). Use the builder's "builddir" (which normally specifies where the slave will run the builder) as the master's basedir (for saving serialized builds). * buildbot/status/html.py (StatusResourceBuildStep.getChild): coerce the logfile to IStatusLog before trying to get the text chunks out of it. This will pull the full (non-stubified) Build in from disk if necessary. (TextLog): fix the adapter registration * buildbot/test/test_control.py (Force.setUp): create the basedir * buildbot/test/test_web.py: same * buildbot/test/test_vc.py (SetupMixin.setUp): same * buildbot/test/test_status.py (Mail.makeBuild): match new setup * buildbot/test/test_run.py (Run.testMaster): same (Status.setUp): same From warner at users.sourceforge.net Thu Sep 30 07:15:37 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:15:37 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process base.py,1.42,1.43 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13989/buildbot/process Modified Files: base.py Log Message: (Build.stopBuild): tolerate lack of a self.progress attribute, helped one test which doesn't fully set up the Build object. From warner at users.sourceforge.net Thu Sep 30 07:19:21 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:19:21 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.271,1.272 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14552 Modified Files: ChangeLog Log Message: *** empty log message *** From warner at users.sourceforge.net Thu Sep 30 07:29:22 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:29:22 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.29,1.30 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16739/buildbot/status Modified Files: builder.py Log Message: * buildbot/status/builder.py (BuilderStatus.addFullBuildToCache): don't evict unfinished builds from the cache: they must stay in the full-cache until their logfiles have stopped changing. Make sure the eviction loop terminates if an unfinished build was hit. From warner at users.sourceforge.net Thu Sep 30 07:29:22 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 07:29:22 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.272,1.273 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16739 Modified Files: ChangeLog Log Message: * buildbot/status/builder.py (BuilderStatus.addFullBuildToCache): don't evict unfinished builds from the cache: they must stay in the full-cache until their logfiles have stopped changing. Make sure the eviction loop terminates if an unfinished build was hit. From warner at users.sourceforge.net Thu Sep 30 08:27:25 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 08:27:25 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.30,1.31 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28390/buildbot/status Modified Files: builder.py Log Message: (HTMLLogFile.getTextWithHeaders): return HTML as if it were text. This lets exceptions be dumped in an email status message. Really we need LogFiles which contain both text and HTML, instead of two separate classes. (BuildStatus.__getstate__): handle self.finished=False (Status.builderAdded): if the pickle is corrupted, abandon the history and create a new BuilderStatus object. From warner at users.sourceforge.net Thu Sep 30 08:36:34 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 08:36:34 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status words.py,1.24,1.25 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30080/buildbot/status Modified Files: words.py Log Message: (IrcStatusBot.command_WATCH): new command to announce the completion of a running build (IrcStatusBot.command_FORCE): announce when the build finishes From warner at users.sourceforge.net Thu Sep 30 08:36:34 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 08:36:34 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.273,1.274 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30080 Modified Files: ChangeLog Log Message: (IrcStatusBot.command_WATCH): new command to announce the completion of a running build (IrcStatusBot.command_FORCE): announce when the build finishes From warner at users.sourceforge.net Thu Sep 30 10:05:45 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:05:45 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status html.py,1.39,1.40 builder.py,1.31,1.32 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14492/buildbot/status Modified Files: html.py builder.py Log Message: * buildbot/interfaces.py (IBuilderControl.ping): add method * buildbot/process/builder.py (BuilderControl.ping): move slave-ping to BuilderControl, and fix the failure case in the process (Event.finish() is the verb, Event.finished is the noun). * buildbot/status/html.py (StatusResourceBuilder.ping): ping through the BuilderControl instead of the BuilderStatus (EventBox): add adapter for builder.Event, allowing builder events to be displayed in the waterfall display * buildbot/master.py (BotMaster.stopService): add a 'master shutdown' event to the builder's log (BuildMaster.startService): and a 'master started' on startup * buildbot/status/builder.py (BuilderStatus.eventGenerator): merge builder events into the BuildStep event stream (Status.builderAdded): add a 'builder created' event From warner at users.sourceforge.net Thu Sep 30 10:05:45 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:05:45 +0000 Subject: [Buildbot-commits] buildbot/buildbot/process builder.py,1.16,1.17 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/process In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14492/buildbot/process Modified Files: builder.py Log Message: * buildbot/interfaces.py (IBuilderControl.ping): add method * buildbot/process/builder.py (BuilderControl.ping): move slave-ping to BuilderControl, and fix the failure case in the process (Event.finish() is the verb, Event.finished is the noun). * buildbot/status/html.py (StatusResourceBuilder.ping): ping through the BuilderControl instead of the BuilderStatus (EventBox): add adapter for builder.Event, allowing builder events to be displayed in the waterfall display * buildbot/master.py (BotMaster.stopService): add a 'master shutdown' event to the builder's log (BuildMaster.startService): and a 'master started' on startup * buildbot/status/builder.py (BuilderStatus.eventGenerator): merge builder events into the BuildStep event stream (Status.builderAdded): add a 'builder created' event From warner at users.sourceforge.net Thu Sep 30 10:05:46 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:05:46 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.51,1.52 interfaces.py,1.18,1.19 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14492/buildbot Modified Files: master.py interfaces.py Log Message: * buildbot/interfaces.py (IBuilderControl.ping): add method * buildbot/process/builder.py (BuilderControl.ping): move slave-ping to BuilderControl, and fix the failure case in the process (Event.finish() is the verb, Event.finished is the noun). * buildbot/status/html.py (StatusResourceBuilder.ping): ping through the BuilderControl instead of the BuilderStatus (EventBox): add adapter for builder.Event, allowing builder events to be displayed in the waterfall display * buildbot/master.py (BotMaster.stopService): add a 'master shutdown' event to the builder's log (BuildMaster.startService): and a 'master started' on startup * buildbot/status/builder.py (BuilderStatus.eventGenerator): merge builder events into the BuildStep event stream (Status.builderAdded): add a 'builder created' event From warner at users.sourceforge.net Thu Sep 30 10:05:47 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:05:47 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.274,1.275 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14492 Modified Files: ChangeLog Log Message: * buildbot/interfaces.py (IBuilderControl.ping): add method * buildbot/process/builder.py (BuilderControl.ping): move slave-ping to BuilderControl, and fix the failure case in the process (Event.finish() is the verb, Event.finished is the noun). * buildbot/status/html.py (StatusResourceBuilder.ping): ping through the BuilderControl instead of the BuilderStatus (EventBox): add adapter for builder.Event, allowing builder events to be displayed in the waterfall display * buildbot/master.py (BotMaster.stopService): add a 'master shutdown' event to the builder's log (BuildMaster.startService): and a 'master started' on startup * buildbot/status/builder.py (BuilderStatus.eventGenerator): merge builder events into the BuildStep event stream (Status.builderAdded): add a 'builder created' event From warner at users.sourceforge.net Thu Sep 30 10:12:08 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:12:08 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.32,1.33 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15957/buildbot/status Modified Files: builder.py Log Message: * buildbot/status/builder.py (BuilderStatus.eventGenerator): if we run out of build steps, return the rest of the builder events From warner at users.sourceforge.net Thu Sep 30 10:22:37 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:22:37 +0000 Subject: [Buildbot-commits] buildbot NEWS,1.28,1.29 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18186 Modified Files: NEWS Log Message: mention where saved builds are kept From warner at users.sourceforge.net Thu Sep 30 10:25:05 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 10:25:05 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.275,1.276 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18846 Modified Files: ChangeLog Log Message: *** empty log message *** From fdrake at users.sourceforge.net Thu Sep 30 13:07:37 2004 From: fdrake at users.sourceforge.net (Fred L. Drake) Date: Thu, 30 Sep 2004 13:07:37 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.276,1.277 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23860 Modified Files: ChangeLog Log Message: document changes I made to buildbot.status.html last night From warner at users.sourceforge.net Thu Sep 30 19:31:29 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 19:31:29 +0000 Subject: [Buildbot-commits] buildbot/buildbot/slave commands.py,1.12,1.13 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/slave In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5061/buildbot/slave Modified Files: commands.py Log Message: (SlaveShellCommand): oops, restore the timeout for shell commands, it got lost somehow From warner at users.sourceforge.net Thu Sep 30 19:31:30 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 19:31:30 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.277,1.278 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5061 Modified Files: ChangeLog Log Message: (SlaveShellCommand): oops, restore the timeout for shell commands, it got lost somehow From warner at users.sourceforge.net Thu Sep 30 20:15:31 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 20:15:31 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.33,1.34 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12594/buildbot/status Modified Files: builder.py Log Message: * buildbot/status/builder.py (BuilderStatus.getStubBuildByNumber): skip over corrupted build pickles (BuilderStatus.getFullBuildByNumber): same From warner at users.sourceforge.net Thu Sep 30 20:15:32 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 20:15:32 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.278,1.279 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12594 Modified Files: ChangeLog Log Message: * buildbot/status/builder.py (BuilderStatus.getStubBuildByNumber): skip over corrupted build pickles (BuilderStatus.getFullBuildByNumber): same From warner at users.sourceforge.net Thu Sep 30 20:23:23 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 20:23:23 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.34,1.35 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14153/buildbot/status Modified Files: builder.py Log Message: (BuilderStatus.eventGenerator): skip over unavailable builds (BuildStatus.saveYourself): save builds to a .tmp file first, then do an atomic rename. This prevents a corrupted pickle when some internal serialization error occurs. (BuilderStatus.saveYourself): same From warner at users.sourceforge.net Thu Sep 30 20:23:24 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 20:23:24 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.279,1.280 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14153 Modified Files: ChangeLog Log Message: (BuilderStatus.eventGenerator): skip over unavailable builds (BuildStatus.saveYourself): save builds to a .tmp file first, then do an atomic rename. This prevents a corrupted pickle when some internal serialization error occurs. (BuilderStatus.saveYourself): same From warner at users.sourceforge.net Thu Sep 30 22:56:21 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 22:56:21 +0000 Subject: [Buildbot-commits] buildbot/buildbot/slave commands.py,1.13,1.14 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/slave In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16305/buildbot/slave Modified Files: commands.py Log Message: * buildbot/slave/commands.py (ShellCommand.doTimeout): put the "Oh my god, you killed the command" header on a separate line From warner at users.sourceforge.net Thu Sep 30 23:03:55 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:03:55 +0000 Subject: [Buildbot-commits] buildbot/buildbot/test test_config.py,1.12,1.13 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17872/buildbot/test Modified Files: test_config.py Log Message: * buildbot/changes/changes.py (ChangeMaster): make it serializable, in $masterdir/changes.pck (ChangeMaster.stopService): save on shutdown * buildbot/master.py (BuildMaster.loadChanges): load at startup * buildbot/test/test_config.py: load Changes before config file From warner at users.sourceforge.net Thu Sep 30 23:03:55 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:03:55 +0000 Subject: [Buildbot-commits] buildbot/buildbot/changes changes.py,1.16,1.17 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/changes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17872/buildbot/changes Modified Files: changes.py Log Message: * buildbot/changes/changes.py (ChangeMaster): make it serializable, in $masterdir/changes.pck (ChangeMaster.stopService): save on shutdown * buildbot/master.py (BuildMaster.loadChanges): load at startup * buildbot/test/test_config.py: load Changes before config file From warner at users.sourceforge.net Thu Sep 30 23:03:55 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:03:55 +0000 Subject: [Buildbot-commits] buildbot/buildbot master.py,1.52,1.53 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17872/buildbot Modified Files: master.py Log Message: * buildbot/changes/changes.py (ChangeMaster): make it serializable, in $masterdir/changes.pck (ChangeMaster.stopService): save on shutdown * buildbot/master.py (BuildMaster.loadChanges): load at startup * buildbot/test/test_config.py: load Changes before config file From warner at users.sourceforge.net Thu Sep 30 23:03:56 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:03:56 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.280,1.281 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17872 Modified Files: ChangeLog Log Message: * buildbot/changes/changes.py (ChangeMaster): make it serializable, in $masterdir/changes.pck (ChangeMaster.stopService): save on shutdown * buildbot/master.py (BuildMaster.loadChanges): load at startup * buildbot/test/test_config.py: load Changes before config file From warner at users.sourceforge.net Thu Sep 30 23:20:01 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:20:01 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.35,1.36 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21824/buildbot/status Modified Files: builder.py Log Message: (BuildStatus.__setstate__): re-set more attributes on load (BuilderStatus.stubBuildCacheSize): bump to 30, this was too low to accomodate the whole waterfall page at once, and the thrashing results in a lot of unnecessary loads From warner at users.sourceforge.net Thu Sep 30 23:20:01 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:20:01 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.281,1.282 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21824 Modified Files: ChangeLog Log Message: (BuildStatus.__setstate__): re-set more attributes on load (BuilderStatus.stubBuildCacheSize): bump to 30, this was too low to accomodate the whole waterfall page at once, and the thrashing results in a lot of unnecessary loads From warner at users.sourceforge.net Thu Sep 30 23:31:10 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:31:10 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.36,1.37 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24123/buildbot/status Modified Files: builder.py Log Message: (BuildStatus.saveYourself): use binary pickles, not fluffy text (BuilderStatus.saveYourself): same (BuilderStatus.eventGenerator): stop generating on the first missing build. We assume that saved builds are deleted oldest-first. From warner at users.sourceforge.net Thu Sep 30 23:31:25 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:31:25 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.282,1.283 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24123 Modified Files: ChangeLog Log Message: (BuildStatus.saveYourself): use binary pickles, not fluffy text (BuilderStatus.saveYourself): same (BuilderStatus.eventGenerator): stop generating on the first missing build. We assume that saved builds are deleted oldest-first. From warner at users.sourceforge.net Thu Sep 30 23:38:10 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:38:10 +0000 Subject: [Buildbot-commits] buildbot/buildbot/status builder.py,1.37,1.38 Message-ID: Update of /cvsroot/buildbot/buildbot/buildbot/status In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25534 Modified Files: builder.py Log Message: (BuildStepStatus.__getstate__): .progress might not exist From warner at users.sourceforge.net Thu Sep 30 23:43:56 2004 From: warner at users.sourceforge.net (Brian Warner) Date: Thu, 30 Sep 2004 23:43:56 +0000 Subject: [Buildbot-commits] buildbot ChangeLog,1.283,1.284 Message-ID: Update of /cvsroot/buildbot/buildbot In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26665 Modified Files: ChangeLog Log Message: *** empty log message ***