- Fork the repo.
- Build development environment run tests to ensure a clean, working slate.
- Improve/fix the code.
- Add test cases if new functionality introduced or bug fixed (100% test coverage).
- Ensure tests pass.
- Add yourself to
AUTHORS.rst
. - Push to your fork and submit a pull request to the
develop
branch.
Some simple guidelines to follow when contributing code:
- Adhere to PEP8.
- Clean, well documented code.
- All tests must pass.
- 100% test coverage.
There are two main development branches: master
and develop
. master
represents the currently released version while develop
is the latest development work. When submitting a pull request, be sure to submit to develop
. The originating branch you submit from can be any name though.
Integration testing is provided by Travis-CI at https://travis-ci.org/dgilland/pydash.
Test coverage reporting is provided by Coveralls at https://coveralls.io/r/dgilland/pydash.
Some useful CLI commands when working on the project are below. NOTE: All commands are run from the root of the project and require make
.
Run the clean
and install
commands.
make build
Install Python dependencies into virtualenv located at env/
.
make install
Remove build/test related temporary files like env/
, .tox
, .coverage
, and __pycache__
.
make clean
Run unittests under the virtualenv's default Python version. Does not test all support Python versions. To test all supported versions, see make test-full.
make test
Run unittest and linting for all supported Python versions. NOTE: This will fail if you do not have all Python versions installed on your system. If you are on an Ubuntu based system, the Dead Snakes PPA is a good resource for easily installing multiple Python versions. If for whatever reason you're unable to have all Python versions on your development machine, note that Travis-CI will run full integration tests on all pull requests.
make test-full
Run make pylint
and make pep8
commands.
make lint
Run pylint
compliance check on code base.
make pylint
Run PEP8 compliance check on code base.
make pep8
Build documentation to docs/_build/
.
make docs