Contributing guidelines

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

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 flake8

# Run the pytest suite in tests/:
python test

# Run the behave ( 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 ;-)