Wanna contribute to Patroni? Yay - here is how!


Just want to chat with other Patroni users? Looking for interactive troubleshooting help? Join us on channel #patroni in the PostgreSQL Slack .

Running tests

Requirements for running behave tests:

  1. PostgreSQL packages need to be installed.

  2. PostgreSQL binaries must be available in your PATH . You may need to add them to the path with something like PATH=/usr/lib/postgresql/11/bin:$PATH python -m behave .

  3. If you’d like to test with external DCSs (e.g., Etcd, Consul, and Zookeeper) you’ll need the packages installed and respective services running and accepting unencrypted/unprotected connections on localhost and default port. In the case of Etcd or Consul, the behave test suite could start them up if binaries are available in the PATH .

Install dependencies:

# You may want to use Virtualenv or specify pip3.
pip install -r requirements.txt
pip install -r requirements.dev.txt

After you have all dependencies installed, you can run the various test suites:

# You may want to use Virtualenv or specify python3.

# Run flake8 to check syntax and formatting:
python setup.py flake8

# Run the pytest suite in tests/:
python setup.py test

# Run the behave (https://behave.readthedocs.io/en/latest/) test suite in features/;
# modify DCS as desired (raft has no dependencies so is the easiest to start with):
DCS=raft python -m behave

Reporting issues

If you have a question about patroni or have a problem using it, please read the README before filing an issue. Also double check with the current issues on our Issues Tracker .

Contributing a pull request

  1. Submit a comment to the relevant issue or create a new issue describing your proposed change.

  2. Do a fork, develop and test your code changes.

  3. Include documentation

  4. Submit a pull request.

You’ll get feedback about your pull request as soon as possible.

Happy Patroni hacking ;-)