Skip to content

Latest commit

 

History

History
218 lines (148 loc) · 4.23 KB

CONTRIBUTING.md

File metadata and controls

218 lines (148 loc) · 4.23 KB

How to contribute

Dependencies

We use poetry to manage the dependencies. If you dont have poetry installed, you should run the command below.

make download-poetry

To install dependencies and prepare pre-commit hooks you would need to run install command:

make install

To activate your virtualenv run poetry shell.

Codestyle

After you run make install you can execute the automatic code formatting.

make codestyle

Checks

Many checks are configured for this project. Command make check-style will run black diffs, darglint docstring style and mypy. The make check-safety command will look at the security of your code.

You can also use STRICT=1 flag to make the check be strict.

Makefile usage

Makefile contains many functions for fast assembling and convenient work.

1. Download Poetry

make download-poetry

2. Install all dependencies and pre-commit hooks

make install

If you do not want to install pre-commit hooks, run the command with the NO_PRE_COMMIT flag:

make install NO_PRE_COMMIT=1

3. Check the security of your code

make check-safety

This command launches a Poetry and Pip integrity check as well as identifies security issues with Safety and Bandit. By default, the build will not crash if any of the items fail. But you can set STRICT=1 for the entire build, or you can configure strictness for each item separately.

make check-safety STRICT=1

or only for safety:

make check-safety SAFETY_STRICT=1

multiple

make check-safety PIP_STRICT=1 SAFETY_STRICT=1

List of flags for check-safety (can be set to 1 or 0): STRICT, POETRY_STRICT, PIP_STRICT, SAFETY_STRICT, BANDIT_STRICT.

4. Check the codestyle

The command is similar to check-safety but to check the code style, obviously. It uses Black, Darglint, Isort, and Mypy inside.

make check-style

It may also contain the STRICT flag.

make check-style STRICT=1

List of flags for check-style (can be set to 1 or 0): STRICT, BLACK_STRICT, DARGLINT_STRICT, ISORT_STRICT, MYPY_STRICT.

5. Run all the codestyle formaters

Codestyle uses pre-commit hooks, so ensure you've run make install before.

make codestyle

6. Run tests

make test

7. Run all the linters

make lint

the same as:

make test && make check-safety && make check-style

List of flags for lint (can be set to 1 or 0): STRICT, POETRY_STRICT, PIP_STRICT, SAFETY_STRICT, BANDIT_STRICT, BLACK_STRICT, DARGLINT_STRICT, ISORT_STRICT, MYPY_STRICT.


Before submitting

Before submitting your code please do the following steps:

  1. Add any changes you want
  2. Add tests for the new changes
  3. Edit documentation if you have changed something significant
  4. Run make codestyle to format your changes.
  5. Run STRICT=1 make check-style to ensure that types and docs are correct
  6. Run STRICT=1 make check-safety to ensure that security of your code is correct

Other help

You can contribute by spreading a word about this library. It would also be a huge contribution to write a short article on how you are using this project. You can also share your best practices with us.