This section describes how to contribute and develop the project itself.
For plugins development please refer to plugins usage and development guide.
First of all, please refer to organization contribution guide CONTRIBUTING.md.
After cloning the repo, you can install it in development mode with all dev dependencies.
Recommended way is you use virtualenv
python -m venv .venv
source .venv/bin/activate
Install lib in dev mode
(.venv)$ pip install -U --editable .[test,docs] # .\[test\] in zsh
Also, you need to install pre-commit hooks
TBA
This project uses makefile to manage testing and linting.
The formatting, linting and testing is mandatory for each PR.
To apply formatting use
(.venv)$ make format
To run linting use
(.venv)$ make lint
To running all test or integration/unit/doctests separately use
(.venv)$ make test
(.venv)$ make test-integration
(.venv)$ make test-unit
(.venv)$ make test-doctest
Note: integration tests require docker to be installed and running. TBA
This project uses mkdocs
to generate documentation.
All documentation locating in the *.md root files and in the docs folder.
To run docs locally use
(.venv)$ make docs-serve
This will start local server with hot reload.
To build docs use
(.venv)$ make docs-build
This will build docs in the site
folder.
Really appreciate any contributions!
Feel free to open issues and PRs. Please check on existing issues and PRs before opening new ones.
This project uses pre-commit hooks to check:
commit-msg
- check commit message format to follow conventional commits
Please install it with (included in test
extra)
(.venv)$ pre-commit install --hook-type commit-msg
This project uses GitHub actions to run tests and build docs on each push and pull request.
Your PR will not be merged if tests or docs build will fail. The following checks are mandatory:
- Testing
- Linting/typechecks/formatting
- Docs build and Docs Tests
- PR title should follow conventional commits