Contributing to jsonpickle

We welcome contributions from everyone. Please fork jsonpickle on github.

Get the Code

git clone git://github.com/jsonpickle/jsonpickle.git

Run the Test Suite

Before code is pulled into the master jsonpickle branch, all tests should pass. If you are contributing an addition or a change in behavior, we ask that you document the change in the form of test cases.

The test suite is most readily run with the tox_ testing tool. Once installed, run the test suite against the default Python:

.. _tox: https://tox.readthedocs.io/

tox

It is recommended that you install at least one Python2 and one Python3 interpreter for use by tox_. To test against Python 2.7 and 3.7:

tox -e py27,py37

The jsonpickle test suite uses several JSON encoding libraries as well as several libraries for sample objects. To create an environment to test against these libs:

tox -e libs

To test against these libs on Python 3.7:

tox -e py37-libs

To create the enivornment without running tests:

tox -e libs --notest

Now you may experiment and interact with jsonpickle under development from the virtualenv at .tox/libs/{bin/Scripts}/python.

Generate Documentation

Generating the documentation is not necessary when contributing. To build the docs:

tox -e docs

Now docs are available in build/html.

If you wish to browse the documentation, use Python’s http.server to host them at http://localhost:8000:

python -m http.server -d build/html