Thank you for your interest in contributing to this project!
We appreciate issue reports, pull requests for code and documentation, as well as any project-related communication through GitHub Discussions.
To get started with development, you can follow these steps:
-
Clone this repository:
git clone https://github.com/aai-institute/nnbench.git
-
Navigate to the directory and install the development dependencies into a virtual environment, e.g. using
uv
:cd nnbench uv venv --seed -p 3.11 source .venv/bin/activate
-
After making your changes, verify they adhere to our Python code style by running
pre-commit
:uvx pre-commit run --all-files --verbose --show-diff-on-failure
You can also set up Git hooks through
pre-commit
to perform these checks automatically:pre-commit install
-
To run the tests, just invoke
pytest
from the package root directory:uv run pytest -s
Dependencies should stay locked for as long as possible, ideally for a whole release. If you have to update a dependency during development, you should do the following:
- If it is a core dependency needed for the package, add it to the
dependencies
section in thepyproject.toml
viauv add <dep>
. - In case of a development dependency, add it to the
dev
section of theproject.dependency-groups
table instead (uv add --group dev <dep>
). - Dependencies needed for documentation generation are found in the
docs
sections ofproject.dependency-groups
(uv add --group docs <dep>
).
After adding the dependency in either of these sections, use uv lock
to pin all dependencies again:
uv lock
Important
Since the official development version is Python 3.11, please run the above commands in a virtual environment with Python 3.11.