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 [email protected] 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 protected]:<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:
make test
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:
make html
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.
Currently we don't have any legal contributor agreement, so code ownership stays with the original authors. The project is licensed under the Apache License Version 2.