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:

  1. Python
  2. git
  3. ssh
  4. XCode (on Mac OS X)
  5. 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:

  1. Fork the code repository into your github account. Let us call you hackeratti for the sake of this example. Replace hackeratti with your own username below.

  2. 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!

Table Of Contents

Previous topic

API Reference