Everybody is welcome to contribute to this project. Please make sure you have read our Code of Conduct. You are expected to adhere to it.
Here we only give the short version
on how to contribute to the iniabu
project.
A detailed developers guide
can be found
here.
Nox is used
to automate testing.
A configuration noxfile.py
is provided in the repository.
To get a list of all installed
development environments type:
nox
We use black, version 20.8b1, to automatically format the code. To adhere to these formatting guidelines, you can run black by typing:
nox -s black
Code is linted according to flake8
specifications.
To run the linter, type:
nox -s lint
To test the package, pytest is used. Please make use of hypothesis where adequate. Also check out the existing tests to see what structure, etc., we strive for.
Certain plugins,
as specified in dev-requirements.txt
are required for local testing.
The codebase is tested for compatibility
with Python 3.6+.
To run all tests,
type:
nox -s tests
In addition to package testing, you can also test all docstring examples by using xdoctests. To do so type:
nox -s xdoctest
This ensures that all docstring examples are actually working.
Sphinx is used to automatically create our documentation. If you want to build it locally, nox is setup to do so. Type:
nox -s docs
It is advisable to discuss a feature enhancement, issue, etc. via raising an issue first. Feel free to create pull requests. All pull requests are tested using GitHub actions upon submission. Mandatory tests that are required to pass are the following nox sessions:
- lint
- tests
- safety
- xdoctest
Thus: please ensure you test these prior to submitting a pull request.