This document provides an overview of how you can participate in improving this project or extending it. We are grateful for all your help: bug reports and fixes, code contributions, documentation or ideas. Feel free to join, we appreciate your support!!
Much of the issues, goals and ideas are tracked in the respective projects in GitHub. Please use this channel to report bugs and post ideas.
In order to contribute code please:
- Fork the project on GitHub
- Clone the project
- Add changes (and tests)
- Commit and push
- Create a merge-request
To have your code merged, see the expectations listed below.
You can find a well-written guide here.
Please follow common commit best-practices. Be explicit, have a short summary, a well-written description and references. This is especially important for the merge-request.
Some great guidelines can be found here and here.
Generally we try to stick to semantic versioning, where every accepted PR is treated as patch or minor feature and version is released accordingly by our CI pipeline.
We try to provide production ready ansible roles which should be as much zero-conf as possible but this doesn't mean to overcomplicate things. Just follow KISS.
- Please avoid using nonsensical property and variable names.
- Use self-describing attribute names for user configuration.
- In case of failures, communicate what happened and why a failure occurs to the user. Make it easy to track the code or action that produced the error. Try to catch and handle errors if possible to provide improved failure messages.
We try to have as much tests written in testinfra framework as possible, so when you copy file, some template or starting some server just add couple of lines in /tests/test)default.py file. If you want to know how to write tests in testinfra, go to their docs.
Please follow ansible best practices and especially provide meaningful names to tasks and even comments where needed.
Our test framework automatically lints code with ansible-lint
command so be sure to follow it's rules.
Remember: Code is generally read much more often than written.
Wherever possible, please refrain from any other formats and stick to simple markdown.