Contributing to Piny

Piny is a proof-of-concept. It’s developed specifically (but not limited to!) for the containerized Python applications deployed with orchestration systems like docker compose or Kubernetes.

Piny is still in its early stage of development. The API may change, backward compatibility between minor versions is not guaranteed until version 1.0.0 is reached.

Piny sticks to the Unix-way’s rule Do One Thing and Do It Well. Piny is all about interpolating environment variables in configuration files. Other features like YAML-parsing or data validation are implemented using third-party libraries whenever possible.

You are welcome to contribute to Piny as long as you follow the rules.

General rules

  1. Before writing any code take a look at the existing open issues. If none of them is about the changes you want to contribute, open up a new issue. Fixing a typo requires no issue though, just submit a Pull Request.

  2. If you’re looking for an open issue to fix, check out labels help wanted and good first issue on GitHub.

  3. If you plan to work on an issue open not by you, write about your intention in the comments before you start working.

  4. Follow an Issue/Pull Request template.

Development rules

  1. Fork Piny on GitHub.

  2. Clone your fork with git clone.

  3. Use Python 3.6+, git, make and virtualenv.

  4. Create and activate virtualenv.

  5. Install Piny and its dependencies with make install.

  6. Follow GitHub Flow: create a new branch from master with git checkout -b <your-feature-branch>. Make your changes.

  7. Fix your code’s formatting and imports with make format.

  8. Run unit-tests and linters with make check.

  9. Build documentation with make docs.

  10. Commit, push, open new Pull Request.

  11. Make sure Travis CI/CD pipeline succeeds.