Contributing¶
Welcome hacker! So you have got something you would like to see in
watchdog
? Whee. This document will help you get started.
Important URLs¶
watchdog
uses git to track code history and hosts its code repository
at github. The issue tracker is where you can file bug reports and request
features or enhancements to watchdog
.
Before you start¶
Ensure your system has the following programs and libraries installed before beginning to hack:
- Python
- git
- ssh
- XCode (on Mac OS X)
- select_backport (on BSD/Mac OS X if you’re using Python 2.6)
Setting up the Work Environment¶
watchdog
makes extensive use of zc.buildout to set up its work
environment. You should get familiar with it.
Steps to setting up a clean environment:
Fork the code repository into your github account. Let us call you
hackeratti
for the sake of this example. Replacehackeratti
with your own username below.Clone your fork and setup your environment:
$ git clone --recursive git@github.com:hackeratti/watchdog.git $ cd watchdog $ python tools/bootstrap.py --distribute $ bin/buildout
Important
Re-run bin/buildout
every time you make a change to the
buildout.cfg
file.
That’s it with the setup. Now you’re ready to hack on watchdog
.
Enabling Continuous Integration¶
The repository checkout contains a script called autobuild.sh
which you must run prior to making changes. It will detect changes to
Python source code or restructuredText documentation files anywhere
in the directory tree and rebuild sphinx documentation, run all tests using
nose, and generate coverage reports.
Start it by issuing this command in the watchdog
directory
checked out earlier:
$ tools/autobuild.sh
...
Happy hacking!