There are a variety of ChangeSources available, some of which are meant to be used in conjunction with other tools to deliver Change events from the VC repository to the buildmaster.
As a quick guide, here is a list of VC systems and the ChangeSources that might
be useful with them. All of these ChangeSources are in the
buildbot.changes
module. The contrib/
scripts mentioned below
are available on github - see Contrib Scripts.
NOTE: The CVS change sources FreshCVSSource, FCMaildirSource, BonsaiMaildirSource and SyncmailMaildirSource are flagged as depreciated. If you are still using them, please send mail to the buildbot list.
CVS
contrib/buildbot_cvs_mail.py
script)
buildbot
sendchange
run in a loginfo script)
contrib/viewcvspoll.py
polling process which examines the ViewCVS
database directly
status.web.change_hook
)
SVN
contrib/svn_buildbot.py
run in a postcommit script)
contrib/svn_watcher.py
or contrib/svnpoller.py
polling
process
status.web.change_hook
)
contrib/googlecode_atom.py
's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode SVN repository)
Darcs
contrib/darcs_buildbot.py
in a commit script
status.web.change_hook
)
Mercurial
contrib/hg_buildbot.py
run in an 'incoming' hook)
buildbot/changes/hgbuildbot.py
run as an in-process 'changegroup'
hook)
status.web.change_hook
)
contrib/googlecode_atom.py
's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode Mercurial repository)
Bzr (the newer Bazaar)
contrib/bzr_buildbot.py
run in a post-change-branch-tip or commit hook)
contrib/bzr_buildbot.py
's BzrPoller (polling the Bzr repository)
status.web.change_hook
)
Git
contrib/git_buildbot.py
run in the post-receive hook)
status.web.change_hook
)
gitpoller.GitPoller
(polling a remote git repository)
All VC systems can be driven by a PBChangeSource, and the
buildbot sendchange
tool run from some form of commit script.
If you write an email parsing function, they can also all be driven by
a suitable MaildirSource
. Additionally, handlers for web-based
notification (i.e. from github) can be used with WebStatus' change_hook
module. The interface is simple, so adding your own handlers (and sharing!)
should be a breeze.