Developing
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.
Installation
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
Testing and linting
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
Documentation
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
To build docs use
(.venv)$ make docs-build
site
folder.
Contributing
Really appreciate any contributions!
Feel free to open issues and PRs. Please check on existing issues and PRs before opening new ones.
Git hooks
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
CI
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