pilosus/piny

View on GitHub
CONTRIBUTING.rst

Summary

Maintainability
Test Coverage
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.

.. _proof-of-concept: https://blog.pilosus.org/posts/2019/06/07/application-configs-files-or-environment-variables-actually-both/
.. _minor versions: https://semver.org/
.. _open issues: https://github.com/pilosus/piny/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen
.. _help wanted: https://github.com/pilosus/piny/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
.. _good first issue: https://github.com/pilosus/piny/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
.. _GitHub Flow: https://guides.github.com/introduction/flow/
.. _Piny: https://github.com/pilosus/piny/fork