Package buildbot :: Package changes :: Module manager :: Class ChangeManager
[frames] | no frames]

Class ChangeManager

source code

 twisted.application.service.Service --+    
twisted.application.service.MultiService --+

This is the master-side service which receives file change notifications from a VCS. It keeps a log of these changes, enough to provide for the HTML waterfall display, and to tell temporarily-disconnected bots what they missed while they were offline.

Change notifications come from two different kinds of sources. The first is a PB service (servicename='changemaster', perspectivename='change'), which provides a remote method called 'addChange', which should be called with a dict that has keys 'filename' and 'comments'.

The second is a list of objects derived from the buildbot.changes.base.ChangeSource class. These are added with .addSource(), which also sets the .changemaster attribute in the source to point at the ChangeMaster. When the application begins, these will be started with .start() . At shutdown time, they will be terminated with .stop() . They must be persistable. They are expected to call self.changemaster.addChange() with Change objects.

There are several different variants of the second type of source:

Instance Methods
__init__(self) source code
addSource(self, source) source code
removeSource(self, source) source code
addChange(self, change)
Deliver a file change event.
source code
pruneChanges(self, last_added_changeid) source code
eventGenerator(self, branches=[], categories=[], committers=[], minTime=0) source code
getChangeNumberedNow(self, changeid, t=None) source code
getChangeByNumber(self, changeid) source code
getChangesGreaterThan(self, last_changeid, t=None) source code
getChangesByNumber(self, changeids) source code
getLatestChangeNumberNow(self, branch=None, t=None) source code
Special descriptor for class __provides__

Inherited from twisted.application.service.MultiService: __iter__, addService, getServiceNamed, privilegedStartService, removeService, startService, stopService

Inherited from twisted.application.service.Service: __getstate__, __providedBy__, disownServiceParent, setName, setServiceParent

Class Variables
  changeHorizon = None
  lastPruneChanges = None
  name = 'changemanager'
  __implemented__ = <implementedBy buildbot.changes.manager.Chan...

Inherited from twisted.application.service.Service: parent, running

Method Details


source code 
Overrides: twisted.application.service.MultiService.__init__

addChange(self, change)

source code 

Deliver a file change event. The event should be a Change object. This method will timestamp the object as it is received.


Special descriptor for class __provides__

The descriptor caches the implementedBy info, so that
we can get declarations for objects without instance-specific
interfaces a bit quicker.

For example:

  >>> from zope.interface import Interface
  >>> class IFooFactory(Interface):
  ...     pass
  >>> class IFoo(Interface):
  ...     pass
  >>> class C(object):
  ...     implements(IFoo)
  ...     classProvides(IFooFactory)
  >>> [i.getName() for i in C.__provides__]

  >>> [i.getName() for i in C().__provides__]

Overrides: twisted.application.service.Service.__provides__

Class Variable Details


<implementedBy buildbot.changes.manager.ChangeManager>