amqtt/contributing.md

61 wiersze
1.8 KiB
Markdown

# Contributing to AMQTT
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to AMQTT on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
## Development Setup
### Requirements
1. python installed (at least one version, for developers it might be helpful to have multiple versions, e.g. 3.7 and 3.9 installed for testing purposes)
2. [poetry](https://python-poetry.org/docs/#installation) installed
### Testing the newest development version
Poetry will create a virtual environment for you
Install:
```
poetry install --no-dev
```
Usage:
```
poetry run hbmqtt
poetry run hbmqtt_pub
poetry run hbmqtt_sub
```
Or you can enter the virtual enviroment via:
```
poetry shell
```
And then run the commands without prefixing them with `poetry run`
### Setup development tools
Install with:
```
poetry install
```
This will install all dependencies needed for development.
A virtual environment will be created and can be entered with `poetry shell`.
Afterwards you can use `pytest` etc.
If you have multiple python installations you can choose which one to use with poetry with `poetry env`, this is helpful for switching between python versions for testing.
## Testing
When adding a new feature please add a test along with the feature. The testing coverage should not decrease.
If you encounter a bug when using AMQTT which you then resolve, please reproduce the issue in a test as well.
## Style and linting
We use `black` at default settings along with `flake8`. To avoid repeated pushes to satisfy our CI linter, you can use [pre-commit](https://pre-commit.com). Install the necessary hooks with `pre-commit install`.