Contributing a buildbot improves the quality of Tahoe-LAFS and also is integral to defining out supported platforms, as described in [wiki:BuildbotPolicy Buildbot Policy]. You can see the results of our builtbot network in the [//buildbot-tahoe-lafs the Buildbot output page]. == Prerequisites == 1. Install [http://git-scm.com/ git]. 1. Install [https://www.python.org/download/releases/2.7.8/ Python 2.7]. 1. Install setuptools: download [https://bootstrap.pypa.io/ez_setup.py ez_setup.py] into a directory with no Unicode characters in the path, and run it using `python ez_setup.py`. 1. Run "`easy_install pip`". 1. Run "`pip install buildbot-slave`". Do this in a virtualenv if you prefer. (If this doesn't work, see the instructions on the [http://trac.buildbot.net/wiki/DownloadInstall Buildbot trac] for installing buildbot-slave.) A buildslave makes TCP connections to the buildmaster, which `tahoe-lafs.org` operates. You do not need a publicly routable IP address. == Configuration == Anyone who can get their code into the development repos can take control the of the user account running the buildslave process. Therefore, create a dedicated user account to run this process. == Name The Buildslave == Choose a name for your buildslave which will fit into the list of buildslave names: [//buildbot-tahoe-lafs/buildslaves]. It should follow the pattern "!YourName !OperatingSystemAndVersion py2.x" -- see [https://tahoe-lafs.org/buildbot-tahoe-lafs/builders existing buildslave names] for examples. == Get a Password == Email Brian (warner-tahoe_at_lothar_dot_com) and ask for a password. == Create a Buildslave == Execute the following commands: * tahoe-lafs: {{{buildslave create-slave $BASEDIR_TAHOE tahoe-lafs.org:9987 $SLAVENAME $PASSWORD}}} * zfec: {{{buildbot create-slave $BASEDIR_ZFEC tahoe-lafs.org:12987 $SLAVENAME $PASSWORD}}} * pycryptopp: {{{buildbot create-slave $BASEDIR_PYCRYPTOPP tahoe-lafs.org:10998 $SLAVENAME $PASSWORD}}} Those three use the same $SLAVENAME, $PASSWORD and hostname, but a different $BASEDIR and a different port number. For the $BASEDIR your can use whatever directory you want. Then {{{buildbot start $BASEDIR}}}. == Monitor Output == Okay, once you've gotten all this working then we'll see your machine on the [//buildbot-tahoe-lafs/waterfall?show_events=true buildbot pages] and we'll see how well Tahoe-LAFS passes unit tests on your platform. ==== Optional Configurations ==== You can use other mechanisms to limit the privileges available to the buildslave process/account, such as jail, chroot, or Solaris Zones. You can optionally use a different user account or other privilege-limiting mechanisms to keep the tahoe-lafs, pycryptopp, and zfec buildslaves separated from each other.