Contributing

This document provides guidelines for people who want to contribute to the pydocusign project.

Create tickets

Please use pydocusign bugtracker [1] before starting some work:

  • check if the bug or feature request has already been filed. It may have been answered too!
  • else create a new ticket.
  • if you plan to contribute, tell us, so that we are given an opportunity to give feedback as soon as possible.
  • Then, in your commit messages, reference the ticket with some refs #TICKET-ID syntax.

Use topic branches

  • Work in branches.
  • Prefix your branch with the ticket ID corresponding to the issue. As an example, if you are working on ticket #23 which is about contribute documentation, name your branch like 23-contribute-doc.
  • If you work in a development branch and want to refresh it with changes from master, please rebase [2] or merge-based rebase [3], i.e. do not merge master.

Fork, clone

Clone pydocusign repository (adapt to use your own fork):

git clone git@github.com:novafloss/pydocusign.git
cd pydocusign/

Usual actions

The Makefile is the reference card for usual actions in development environment:

  • Install development toolkit with pip [4]: make develop.
  • Run tests with tox [5]: make test.
  • Build documentation: make documentation. It builds Sphinx [6] documentation in var/docs/html/index.html.
  • Release pydocusign project with zest.releaser [7]: make release.
  • Cleanup local repository: make clean, make distclean and make maintainer-clean.

See also make help.

Create an account on DocuSign platform

In order to run the tests or to use pydocusign features, you will need an account on DocuSign platform. For testing purpose, a developer account is fine: see https://demo.docusign.net/.

Use private credentials to run the tests

The test suite contains several integration tests, so it requires valid DocuSign account credentials. The test suite reads environment variables to get the setup. Here is an example to run the tests:

DOCUSIGN_ROOT_URL='https://demo.docusign.net/restapi/v2' \
DOCUSIGN_USERNAME='your-username' \
DOCUSIGN_PASSWORD='your-password' \
DOCUSIGN_INTEGRATOR_KEY='your-integrator-key' \
DOCUSIGN_OAUTH2_TOKEN='' \
DOCUSIGN_TEST_TEMPLATE_ID='UUID-of-your-docusign-template' \
DOCUSIGN_TEST_SIGNER_RETURN_URL='http://example.com/signer-return/' \
make test

Note

Environment variables with prefix DOCUSIGN_TEST_ may be deprecated in future releases: they are only used in tests.

Whereas environment variables with prefix DOCUSIGN_ are used both for tests and normal use: pydocusign.DocuSignClient use them as default values.

Notes & references

[1]https://github.com/novafloss/pydocusign/issues
[2]http://git-scm.com/book/en/Git-Branching-Rebasing
[3]http://tech.novapost.fr/psycho-rebasing-en.html
[4]https://pypi.python.org/pypi/pip/
[5]https://pypi.python.org/pypi/tox/
[6]https://pypi.python.org/pypi/Sphinx/
[7]https://pypi.python.org/pypi/zest.releaser/