Development¶
Installing requirements¶
Using pip¶
$ pip install -r requirements/docs.txt -r requirements/testing.txt
Building the documentation locally¶
Install the documentation requirements:
$ pip install -r requirements/docs.txt
Change directory to
docs
and runmake html
:$ cd docs $ make html
Load HTML documentation in a web browser of your choice:
$ firefox docs/_build/html/index.html
Running tests¶
Install the development requirements:
$ pip install -r requirements/testing.txt
Run
make test lint
in the project root. This will runnosetests
with coverage and also display anyflake8
errors.$ make test lint
To run all tests against all supported versions of python,
use tox
.
Running tests with tox¶
tox
allows us to use
one command to
run tests against
all versions of python
that we support.
Setting up tox¶
Decide how you want to manage multiple python versions.
- System level using a package manager such as
apt-get
. This approach will likely require adding additionalapt-get
sources in order to install alternative versions of python. - Use pyenv to manage and install multiple python versions. After installation, see the pyenv command reference.
- System level using a package manager such as
Install
tox
.$ pip install tox
Running tox¶
Now that you have tox
setup, you just need to run the command tox
from the project root directory.
$ tox
Getting involved¶
The PyDocX project welcomes help in any of the following ways:
- Making pull requests on github for code, tests and documentation.
- Participating on open issues and pull requests, reviewing changes
Coding Standards¶
All python source files must be PEP8 compliant.
All python source files must include the following import declaration at the top of the file:
from __future__ import ( absolute_import, print_function, unicode_literals, )
Unicode Data¶
- All stream data is assumed to be a UTF-8 bytestream unless specified otherwise. What this means is that when you are writing test cases for a particular function, any input data you define which would have otherwise have come from a file source must be encoded as UTF-8.
Release process¶
PyDocX adheres to Semantic versioning v2.0.0.
- Update CHANGELOG.
- Bump the version number in __init__.py on master.
- Tag the version.
- Push to PyPI
make release