Contributions to probfit are welcome. You should fork the repository, create a branch in your fork, and then open a pull request.

Developing probfit requires a few dependencies, in addition to those required for users. The following commands should create a suitable environment, assuming you’ve cloned your fork of probfit and are in the repository root. (You may wish to work inside a virtual environment to isolate these packages from your system install.)

$ pip install cython pytest pytest-mpl pylint flake8 sphinx sphinx_rtd_theme
$ make build

Installing Cython will allow you to build the C extensions. Pylint and flake8 are used for linting, pytest for testing, and Sphinx for generating the HTML documentation.

When developing, be sure to regularly run the test suite to see if anything’s broken. The suite is run automatically against Python 2 and 3 when you open a pull request, and also when you push subsequent commits. It can be run locally with:

$ make test
$ make code-analysis

To build and view the documentation, run make doc-show.

For a list of everything you can do, run make help. If you run into any trouble, please open an issue.