Files
ansible-telegraf/CONTRIBUTING.md
2020-10-17 11:23:19 +02:00

94 lines
3.5 KiB
Markdown

# Contributing to this role
**Table of content**
- [Contributing to this role](#contributing-to-this-role)
* [Contributing](#contributing)
* [(local) Development](#-local--development)
+ [Requirements](#requirements)
+ [Execution](#execution)
- [Other](#other)
* [Virtualenv](#virtualenv)
* [Links](#links)
Thank you very much for making time to improve this Ansible role.
## Contributing
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. [Contributor Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html).
1. Fork the repo
2. Create a branch and apply your changes to this branch.
a. Make sure you have updated the documentation when adding new variables;
b. Don't forget to add/update tests so we can test the functionality during each Pull Request;
c. Make sure the tests will succeed.
3. Push the branch to your fork and submit a pull request.
**Note**
Pull Requests that fails during the tests will not be merged.
## Coding Guidelines
Style guides are important because they ensure consistency in the content, look, and feel of a book or a website.
* [Ansible Style Guide](http://docs.ansible.com/ansible/latest/dev_guide/style_guide/)
* It's "Ansible" when referring to the product and ``ansible`` when referring to the command line tool, package, etc
* Playbooks should be written in multi-line YAML with ``key: value``. The form ``key=value`` is only for ``ansible`` ad-hoc, not for ``ansible-playbook``.
* Tasks should always have a ``name:``
## (local) Development
This role make use of Molecule to test the execution of the role and verificate it. In the repository https://github.com/dj-wasabi/dj-wasabi-release, a file named `requirements.txt` exists and contains the versions used by the tests.
### Requirements
You can install them with the following command:
```
wget https://raw.githubusercontent.com/dj-wasabi/dj-wasabi-release/main/requirements.txt
pip install -r requirements.txt
```
Once the dependencies are installed, please install Docker as Molecule is configured in this repository to create Docker containers. See [this](https://docs.docker.com/install/) link to install Docker on your system.
### Execution
Once everything is installed, you can validate your changes by executing:
```
molecule test
```
It should run without any issues.
# Other
## pre-commit
This repository contains a pre-commit hook. This means that when you want to commit the changes, 1 or more tests are executed to validate the changes. Please take a look at how to install the `pre-commit` package from the official [site](https://pre-commit.com/). Also make sure to install `ansible-lint` via `pip install ansible-lint` as this is 1 of the tools that is executed while a pre-commit hooks runs.
## Virtualenv
Suggestion is to create a virtualenv so you won't have issues with other projects.
Some web pages describing for virtual env:
* http://thepythonguru.com/python-virtualenv-guide/
* https://realpython.com/python-virtual-environments-a-primer/
* https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/
## Links
[Molecule](https://molecule.readthedocs.io/)
[Ansible](https://www.ansible.com/)
[Molecule V2 with your own role](https://werner-dijkerman.nl/2017/09/05/using-molecule-v2-to-test-ansible-roles/)
**End note**: Have fun making changes. If a feature helps you, then others find it helpful too and I will happily have it merged.