Contribution guide

First of all, thanks for taking the time and interest to contribute 🎉🎉🎉

Suggestions 💬 and pull requests 🔀 are always welcome!

The following is a set of guidelines for contributing to this project. These are mostly guidelines, not rules.

Dependencies

The following set of dependencies is required for successfully developing the Ansible roles. Install them via your favorite Python package manager.

Testing

With Molecule installed it is simple to test changes locally. In the root of a role run mol test for a full test run.

During the implementation of a feature or fix a more iterative workflow makes sense:

  • Run mol converge to provision a container via the molecule/default/converge.yml playbook.

  • Run mol login to log into the container.

  • Run mol verify to execute the checks in molecule/default/verify.yml.

  • Run mol destroy to clean up when you are done.

Most development is done under Windows with WSL2

Since WSL2 has no systemd capabilities there is different Molecule configuration for local development (molecule.yml) and the CI pipeline (molecule-ci.yml):

  • A non-systemd container is used for local development.

  • Podman is used instead of Docker. Either install the Molecule driver (molecule-podman) or use Docker locally.

Styleguides

Git commit messages

The following style guide reflects personal preferences as well as best practices as described in the Pro Git book.

  • Limit the first line to 50 characters or less.

  • Start the first line with an applicable emoji from https://gitmoji.dev/.

  • Use the present tense.

    -✨ Added feature xyz
    +✨ Add feature xyz
  • Use the imperative mood.

    -✨ Adds feature xyz
    +✨ Add feature xyz
  • Do not end the commit title with a period.

    -✨ Add feature xyz.
    +✨ Add feature xyz
  • Leave a blank line between title and body.

  • Limit remaining lines to 72 characters or less.

  • You may use the message body to provide additional information

    Full example adapted from https://git-scm.com/book/ch5-2.html
    📝 Capitalized, short (50 chars or less) summary
    
    More detailed explanatory text, if necessary. The blank line separating
    the summary from the body is critical (unless you omit the body
    entirely); tools like rebase will confuse you if you run the two
    together.
    
    Further paragraphs come after blank lines.
    
    * Bullet points are okay, too
    * Typically a hyphen or asterisk is used for the bullet, followed by a
      single space
    * Use a hanging indent
You may reference issues and pull requests liberally in the message body.