mastko/CONTRIBUTING.md

84 lines
1.7 KiB
Markdown

# Contributing
## Reporting Issues
Please use GitHub issues to report any conerns about the code.
## Contributions
All code contributions should be submitted through GitHub pull requests.
## Developing Locally
```shell
$ git clone path_to_git
$ cd mastko
$ sh init.sh
```
This will create a python virtual environment using `venv`, install dependencies and runs `tox`.
## Code Quality
`tox` is currently configured to run `black`, `flake8`, `isort`, `mypy`, `pytest-cov`, and `pytest` in addition to the unit tests by default. You can run all these tools by running the tox command:
```
tox
```
Run only `mypy` command as specified in tox.ini file:
```
tox run -e mypy
```
Run only `flake8` command as specified in tox.ini file:
```
tox run -e flake8
```
## Code Formatting
Use the `black` and `isort` auto-formatter with line-length set to 160 to ensure consistent code formatting. This will run only `black` and `isort`.
```
tox run -e autoformat
```
Run only `isort` command as specified in tox.ini file:
```
tox run -e isort
```
Run only `black` command as specified in tox.ini file:
```
tox run -e black
```
## Code Coverage and Unit Tests
We are using the `pytest` and `pytest-cov` libraries for unit tests and code coverage analysis. Please add
sufficient code coverage for all new/modified functionality and verify that all tests are passing via `tox`.
To run all the unit tests and code coverage tool:
```
tox run -e py39
```
To run individual test files:
```
tox run -e py39 -- tests/stand/cli/test_get_args.py
```
To run individual test functions:
```
tox run -e py39 -- tests/stand/cli/test_get_args.py::test_getArgValue_withWrappedValue_shouldReturnValue
```