Django.js is open-source and very open to contributions.
Issues are contributions in a way so don't hesitate to submit reports on the official bugtracker.
Provide as much informations as possible to specify the issues:
- the Django.js version used
- a stacktrace
- installed applications list
- ...
If you want to contribute some code:
- fork the official Django.js repository
- create a branch with an explicit name (like
my-new-feature
orissue-XX
) - do your work in it
- rebase it on the master branch from the official repository (cleanup your history by performing an interactive rebase)
- submit your pull-request
There are some rules to follow:
- your contribution should be documented (if needed)
- your contribution should be tested and the test suite should pass successfully
- your code should be mostly PEP8 compatible with a 120 characters line length
- your contribution should support both Python 2 and 3 (use
tox
to test)
You need to install some dependencies to hack on Django.js:
$ pip install -r requirements/develop.pip
A Makefile is provided to simplify the common tasks:
$ make
Makefile for Django.js
Usage:
make serve Run the test server
make test Run the test suite
make coverage Run a caoverage report from the test suite
make pep8 Run the PEP8 report
make pylint Run the pylint report
make doc Generate the documentation
make minify Minify all JS files with yuglify
make dist Generate a distributable package
make clean Remove all temporary and generated artifacts
To ensure everything is fine before submission, use tox
.
It will run the test suite on all the supported Python version
and ensure the documentation is generating.
$ pip install tox
$ tox
You also need to ensure your code is PEP8 compliant (following the project rules: see pep8.rc
file):
$ make pep8
Don't forget client-side code and tests.
You can run the javascript test suite in the browser (http://localhost:8000). Javascript tests are run in the test suite too, but it runs on the minified version of the javascript libary.
You can use the Makefile minify
task that minify the javascript:
$ make minify test
Note
minification use yuglify
so you need to install it before: npm install -g yuglify