Skip to content

Latest commit

 

History

History
104 lines (70 loc) · 2.48 KB

6_development.md

File metadata and controls

104 lines (70 loc) · 2.48 KB

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

Note: integration tests require docker to be installed and running. TBA

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

This will start local server with hot reload.

To build docs use

(.venv)$ make docs-build

This will build docs in the 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:

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:

  1. Testing
  2. Linting/typechecks/formatting
  3. Docs build and Docs Tests
  4. PR title should follow conventional commits