How to contribute¶
Poetry¶
We are using Poetry to manage the dependencies, for deployment, and the virtual environment. If you have not used it before please check out the documentation to get started.
If you want to start working on the project. The first thing you have to do is:
This installs all needed dependencies for development.Pre-commit hooks¶
We are using pre-commit to ensure a consistent code style and to avoid common mistakes. Please install the pre-commit and install the hook with:
Homebrew¶
We are using Homebrew to manage the dependencies for the development environment. Please install Homebrew and run
to install the dependencies. If you don't want/can't use Homebrew, you can also install the dependencies manually.Conventional Commits¶
We are using Conventional Commits to ensure a consistent commit message style. Please use the following commit message format:
E.g.:
How to contribute¶
The following steps will give a short guide on how to contribute to this project:
- Create a personal fork of the project on GitHub.
- Clone the fork on your local machine. Your remote repo on GitHub is called
origin
. - Add the original repository as a remote called
upstream
. - If you created your fork a while ago be sure to pull upstream changes into your local repository.
- Create a new branch to work on! Start from
develop
if it exists, else frommain
. - Implement/fix your feature, comment your code, and add some examples.
- Follow the code style of the project, including indentation. Black, isort, Pylint, and mypy can help you with it.
- Run all tests.
- Write or adapt tests as needed.
- Add or change the documentation as needed. Please follow the "Google Python Style Guide".
- Squash your commits into a single commit with git's interactive rebase. Create a new branch if necessary.
- Push your branch to your fork on GitHub, the remote
origin
. - From your fork open a pull request in the correct branch. Target the project's
develop
branch! - Once the pull request is approved and merged you can pull the changes from
upstream
to your local repo and delete your extra branch(es).