Contributing

Feature requests, questions, suggestions and bug reports are all welcome as issues.

If you would like to contribute to the development of jschon, please create an issue to discuss any change before creating a pull request.

Development setup

The project uses git submodules to incorporate the JSON Schema Test Suite, as well as supported branches of the JSON Schema Specification repository which provides the meta-schema and vocabulary definition files.

Run the following command in your local copy of jschon to check out all the submodule files:

git submodule update --init --recursive

Create and activate a Python virtual environment, and install the project in editable mode along with development dependencies:

pip install -e .[dev]

Running the tests

To run all the unit tests and test suites (excluding optional and format tests), simply type:

pytest

jschon provides the following pytest command line options:

--testsuite-version={2019-09,2020-12}  Only run tests for the specified version
--testsuite-optionals                  Include optional tests
--testsuite-formats                    Include format tests