Warning
Don't wanna be a sucker right? Follow all the steps in this guide and everybody will be happy :-)
This document describes how to contribute to nodeshot.
The list of issues on Github is a great place to start looking for things to do.
It would be great if you announced your intentions in the Mailing List.
That way we can coordinate and hopefully support you if you have questions.
That's where you can work on your changes before pushing them upstream.
Follow the procedure described in :doc:`install_development`.
Learn how to run unit tests in :ref:`test-env`.
Before writing any line of code, please ensure you have read and understood PEP 8 Style Guide for Python Code.
When more people are writing code it is very important to stay consistent.
Now you can finally start writing code!
Whether you are fixing a bug or adding a feature to an existing module, you should ensure that whenever a behaviour is changed there is an automated test that verifies that the code you wrote is behaving as expected.
More information about writing tests for django apps.
Ensure that all the tests pass and that test coverage is not under 90%.
More info on :ref:`test-coverage`.
If you are adding features to modules or changing the default behaviour
ensure to document your changes by editing the files in the /docs
folder.
Read more about this topic in :ref:`build-the-docs`.
Now you can finally open a pull request on github for review.
Optionally, you could open a pull request right after the first commit, so that the participants can review your commits as you push them.
Each time commits are sent to the master branch or are added to a pull request, the test suite is automatically run on travis-ci.org, the result is shown in the "build status" which can either be failed or passed.
You can check the build status at travis-ci.org.
If you plan to add dramatic new features to nodeshot, it might better to explore the possibility of writing a new python package in a separate repository.
Find more information on How to write reusable apps.