Before you create a pull request, please create a new issue first to coordinate.
It might be that we are already working on the same or similar change, but we have not made our work visible yet.
We usually develop in a virtual environment. To create one, change to the root directory of the repository and invoke:
python -m venv venv
You need to activate it. On nix (Linux, Mac, *etc.):
source venv/bin/activate
and on Windows:
venv\Scripts\activate
Once you activated the virtual environment, you can install the development
dependencies using pip
:
pip3 install --editable .[dev]
The --editable option is necessary so that all the changes made to the repository are automatically reflected in the virtual environment (see also this StackOverflow question).
We provide a battery of pre-commit checks to make the code uniform and consistent across the code base.
We use black to format the code and use the default maximum line length of 88 characters.
To run all pre-commit checks, run from the root directory:
python precommit.py
You can automatically re-format the code with:
python precommit.py --overwrite
The pre-commit script also runs as part of our continuous integration pipeline.
We follow Chris Beams' guidelines on commit messages:
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how