Development Guide

Please read our Contributing guide lines first.

Requirements

You can find any required library for this project in the requirements.txt:

autopep8==1.*
docutils==0.*
guzzle-sphinx-theme==0.*
m2r==0.*
pep8==1.*
pycodestyle==2.*
-e git://github.com/pytest-dev/pytest-cov@master#egg=pytestcov
Sphinx==2.*
sphinxcontrib-log-cabinet==1.*
sphinxcontrib-websupport==1.*
twine==2.*

You can install them by

pip install -r requirements.txt --user

NOTE: Make sure to have also all the extensions listed in the docs/conf.py that are required for the SDK Documentation.

We suggest to use Visual Studio Code with installed plugins for Python Development described here. But if you prefer any other IDE / Editor, it is fine.

Run Tests and Code Validation

If you open a Pull Request (PR), we will trigger automated tests and pep8 style check in Travis CI. So nothing you have to worry about in your development. You can open your PR and prefix its title with WIP “Work In Progress” to access these checks in advance.

If there’s anything breaking, be so kind to fix it. If you’re not able to do it - feel free to ask for help.

Try to auto-fix pep8 styling issues by

# to autofix possible issues
./scripts/pep8fix.sh

# to check for issues left
./scripts/pep8check.sh

Pull Request (PR) Procedure

  • fork our project and create a new branch.

  • clone it and check this branch out

  • apply your desired changes / extensions

  • commit and push it to remote. Please follow these format rules. We suggest to use commitizen.

  • open a pull request (PR) - check results of Travis CI. There are possibly Code issues you can correct.

We care then about the rest - no need to worry about things like building current realease and versioning.

You can stop here.

The below sections are just for our reference. TIA for your PR and thus for your support of this project. As we have further SDKs in other languages, it might take a bit of time to check if we can role out that PR as we want to keep all our SDKs aligned.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository. New version numbers will be set automatically through npm module semantic-release which is part of our CI/CD.

Releasing

Our Travis CI integration cares about checking the PR for issues. If all looks fine, please care about rebasing and if applicable about squashing. Now you can merge the PR into master branch. Travis CI and semantic-release care about releasing and uploading. This also includes automatic update of changelog and source code documentation.

Changes to the documentation will be auto-deployed by a webhook to readthedocs.org and to github pages.

The module can be accessed on the PyPi (Live) Index and the PyPi (Test) Index.

SDK Documentation

Have an eye on the generated SDK Documentation.

If you want to generate it from scratch out of the sources, please use the below script:

./scripts/generatedocs.sh

The generated files are then available in subfolder “docs/_build/html”. We regenerate the SDK Documentation whenever a new tag commit reaches the master branch.