84 lines
1.7 KiB
Markdown
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
|
|
```
|
|
|