How to contribute¶
We gladly accept outside contributions. We use our Github issue tracker for both discussions and talking about new features or bugs. You can also fork the project and sent us a pull request. If you have a more general topic to discuss, the firstname.lastname@example.org mailing list is a good place to do so. You can sometimes find us on IRC in the #zookeeper channel on freenode.
If you want to work on the code and sent us a pull request, first fork the repository on github to your own account. Then clone your new repository and run the build scripts:
git clone email@example.com:<username>/kazoo.git cd kazoo make
You need to have some supported version of Python installed and have it available as python in your shell. To run Zookeeper you also need a Java runtime (JRE or JDK) version 6 or 7. To run tests, you need to have the tox, Python testing tool, to be installed in your shell.
You can run all the tests by calling:
Or to run individual tests:
export ZOOKEEPER_PATH=/<path to current folder>/bin/zookeeper/ bin/nosetests -s -d kazoo.tests.test_client:TestClient.test_create
The nose test runner allows you to filter by test module, class or individual test method.
If you made changes to the documentation, you can build it locally:
And then open ./docs/_build/html/index.html in a web browser to verify the correct rendering.
We appreciate getting changes sent as pull requests via github. We have travis-ci set up, which will run all tests on all supported version combinations for submitted pull requests, which makes it easy to see if new code breaks tests on some weird version combination.
If you introduce new functionality, please also add documentation and a short entry in the top-level CHANGES.rst file.
New recipes are welcome, however they should include the status/maintainer RST information so its clear who is maintaining the recipe. This does mean that if you submit a recipe for inclusion with Kazoo, you should be ready to support/maintain it, and address bugs that may be found.
Ideally a recipe should have at least two maintainers.