check-patroni/CONTRIBUTING.md

1.7 KiB

Contributing to check_patroni

Thanks for your interest in contributing to check_patroni.

Clone Git Repository

Installation from the git repository:

$ git clone https://github.com/dalibo/check_patroni.git
$ cd check_patroni

Change the branch if necessary.

Create Python Virtual Environment

You need a dedicated environment, install dependencies and then check_patroni from the repo:

$ python3 -m venv .venv
$ . .venv/bin/activate
(.venv) $ pip3 install .[test]
(.venv) $ pip3 install -r requirements-dev.txt
(.venv) $ check_patroni

To quit this env and destroy it:

$ deactivate
$ rm -r .venv

Development Environment

A vagrant file is available to create a icinga / opm / grafana stack and install check_patroni. You can then add a server to the supervision and watch the graphs in grafana. It's in the vagrant directory.

A vagrant file can be found in [this repository](https://github.com/ioguix/vagrant-patroni to generate a patroni/etcd setup.

The README.md can be geneated with ./docs/make_readme.sh.

Executing Tests

The pytests are in ./tests and use a moker to provide a json response instead of having to call the patroni API. To manually run the tests use one of these commands :

pytest ./tests  # just the tests
tox             # pytests for all supported version of python + mypy + flake8
tox -e py       # pytests + mypy + flake8 or the default version of python

The tests are executed automatically for each PR using the ci (see .github/workflow/lint.yml and .github/workflow/tests.yml).

Release

The package is generated and uploaded to pypi when a v* tag is created (see .github/workflow/publish.yml).

Alternatively, the release can be done manually with:

tox -e build
tox -e upload