5. Contributing¶
5.1. Running tests¶
It’s important to run tests before committing :)
5.1.1. Setting up the environment¶
We highly suggest you run the tests suite in a clean environment, using a tool such as virtualenv
The following packages are needed for the test suite to run:
Running the following command inside your virtualenv should get you started:
pip install django django_polymorphic django-classy-tags
5.1.2. Running the tests¶
Thankfully, we provided a small yet handy script to do it for you! Simply
invoke runtests.sh
on a unix platform and you should be all set.
The test suite should output normally (only ”.“‘s), and we try to keep the suite fast (subsecond), so that people can test very often.
5.1.3. Options¶
While a simple tool, runtests.sh
provides the following options:
--with-coverage
: run the tests using coverage and let the coverage results be displayed in your default browser (runpip install coverage
beforehand)--with-docs
: run the tests and generate the documentation (the one you’re reading right now).
5.2. Community¶
Most of the discussion around django SHOP takes place on IRC (Internet Relay Chat), on the freenode servers in the #django-shop channel.
We also have a mailing list and a google group:
http://groups.google.com/group/django-shop
5.3. Code guidelines¶
- Like most projects, we try to follow PEP 8 as closely as possible
- Most pull requests will be rejected without proper unit testing
- Generally we like to discuss new features before they are merged in, but this is a somewhat flexible rule :)
5.4. Sending a pull request¶
We use github for development, and so all code that you would like to see included should follow the following simple workflow:
- Clone django-shop
- Checkout your fork
- Make a feature branch (to make pull requests easier)
- Hack hack, Test test, Commit commit, Test test
- Push your feature branch to your remote (your fork)
- Use the github interface to create a pull request from your branch
- Wait for the community to review your changes. You can hang out with us and ask for feedback on #django-shop (on freenode) in the mean time!
- If some changes are required, please commit to your local feature branch and push the changes to your remote feature branch. The pull request will be updated automagically with your new changes!
- DO NOT add unrelated commits to your branch, since they make the review process more complicated and painful for everybody.
More information can be found on Github itself: http://help.github.com/send-pull-requests/