kopia lustrzana https://github.com/Yakifo/amqtt
61 wiersze
1.8 KiB
Markdown
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`.
|