Skip to content

Latest commit

 

History

History
126 lines (82 loc) · 4.29 KB

CONTRIBUTING.md

File metadata and controls

126 lines (82 loc) · 4.29 KB

Contributing guidelines

This document gives an overview of how to contribute to Terraform Baseline repositories.

💡 Requesting changes

Open an issue in this repository.

📝 Making changes

  1. Create a new branch. For external contributors, create a fork.
  2. Commit your changes. Your commit message should follow the Conventional Commits specificiation
  3. Create a pull request (PR).
  4. If a relevant issue exists, link your PR to that issue.

✅ Reviewing changes

  1. If any resources are added or updated, ensure that they follow the best practices for resources.

  2. If any variables are added or updated, ensure that they follow the best practices for variables.

  3. If any outputs are added or updated, ensure that they follow the best practices for outputs.

  4. If any meta-arguments (count, for_each) or -blocks (lifecycle) are used, ensure that they follow the best practices for meta-arguments.

  5. Check if there are any breaking changes that will require users to update their module calls:

    • Add variable without default value.
    • Update variable type.
    • Update output value.
    • Rename variable or output.
    • Remove variable or output.
    • Remove moved block.

    Changing required provider versions do not count as breaking. It is expected of users to keep providers up-to-date.

  6. Ensure that the PR title follows the Conventional Commits specificiation.

📋 Commit messages

Commit messages should follow the Conventional Commits specificiation and use one of the following types:

  • feat: add or remove something (resource, argument, nested block, variable or output)
  • fix: fix something broken
  • refactor: change something without adding, removing or fixing anything
  • docs: document something
  • chore: everything else

Example commit messages for common changes:

  • Create a resource:

    feat: create <resource>
    
  • Add a variable that allows setting the value of an argument:

    feat: configure <argument>
    
  • Add an output that outputs the value of an argument:

    feat: output <argument>
    
  • Add an argument and set its value to true:

    feat: enable <argument>
    
  • Add an argument and set its value to false:

    feat: disable <argument>
    

🤝 Roles and responsibilities

This section describes the various roles and responsibilities in the Terraform Baseline project.

🦸‍♀️ External contributors

An external contributor should:

  • Create forks of Terraform Baseline repositories.
  • Create issues and pull requests in Terraform Baseline repositories.

👨‍🎓 Contributors

A contributor must:

A contributor should:

  • Have basic understanding of Terraform.
  • Have basic understanding of Terraform Baseline best practices.
  • Create module repositories.

👷‍♀️ Maintainers

A maintainer must:

A maintainer should:

  • Have complete understanding of Terraform.
  • Have complete understanding of Terraform Baseline best practices.
  • Communicate and share with other maintainers.

👮‍♂️ Administrators

An administrator must:

An administrator should:

  • Configure module repositories.
  • Publish modules to Terraform Registry.
  • Archive deprecated module repositories.
  • Recruit people to the above roles 🤗