In daily operation, Bundle Buggy has three active components:

  1. The incoming mail scanner. This also sends emails to the new merge requests are detected.
  2. The web UI, which also sends emails when votes are cast.
  3. The merge scanner, which automatically marks requests as merged.


(all commands should be run in the top-level directory)


bzr branch

Initialize database

$ tg-admin sql create

Create a branch for autodetecting merges

# This can be any project that uses Bazaar as a VCS
$ bzr branch http://bazaar-vcs/bzr/ local_path

Configure email addresses, etc.

$ cp config.ini.example config.ini
$ vi config.ini

Add voters

# account, real name, password, email, (email ...)
$ ./create-bundlebuggy-account abentley "Aaron Bentley" mypassword \
"Aaron Bentley <>"

Bulk-import old merge requests from a Maildir

$ scanbundle path/to/Maildir/cur 30

Start up the web UI

$ ./start-bundlebuggy

Configure procmail to deliver copies to a directory

For example:

* ^(To|CC).*bazaar(-ng)?@lists.(ubuntu|canonical).com

Note that mail_queue is not a maildir, just a plain ol' directory.


Mail processing is done every 3 minutes when BundleBuggy is running. Or you can use the included submit_mail script if you want to process something instantly.


Szilveszter Farkas, for inspiring these docs