When contributing to this repository, please first discuss the change you wish to make via an issue, an email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
- Ensure any installed or built dependencies are removed before the end of the layer when doing a Pull Request. Ensure also that your code is clean and production ready.
- Update the README.md with details of changes to the module, including variables, outputs or changes to examples.
- Update the CHANGELOG.md with a new entry block starting with
# Unreleased
followed by a description of your new feature, bug fix or change. - The CI must pass. It ensures that our Terraform module codestyle rules are followed.
- Please wait for maintainers to review your code, they will merge and release your changes once every discussions or implementation details are satisfied.
This repository uses the pre-commit git hook framework which can update and format some files enforcing our Terraform code module best-practices. This repository has been tested with the following software versions:
Installation is simple and works cross platform. Use an elevated terminal when installing pre-commit. The framework can be installed and configured with a few steps:
One off actions to install Pre-commit
- Install Python
3.12.8
ensuring you enable Add to PATH option on the Windows installer - Install the Pre-commit framework:
pip3 install pre-commit==4.0.1
- Ensure
bash.exe
can be executed from a PowerShell terminal. If not, try addingC:\Program Files\Git\bin
to yourPath
environment variable
Only required on new cloned repositories
- Within the repo directory, run
pre-commit install
to set up thepre-commit
git hook - Within the repo directory, run
pre-commit install --hook-type commit-msg
to set up thecommit-msg
git hook
To have all pre-commit
hooks working you will have to setup these dependencies locally. Place these files within a folder that has been added to your Path
environment variable:
Note:
To run the pre-commit
hook against all files run pre-commit run -a
.
Make code changes as usual, the Git hooks will be triggered by pre-commit
every time you use the git commit
command.
A typical workflow would be:
git pull
: the most recent changes into main from remotegit checkout -b [branch name]
: create a new branch to make code changesgit add .
: to stage all changed filesgit commit -m '[commit message]'
: commit code changesgit push
: push commited changes to remote
This repo will use conventional commits. There is a Pre-commit hook that will enforce the commit message format.
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contribute to creating a positive environment include:
- Using a welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attentions or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective actions in response to any instance of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, to temporarily or permanently ban any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at http://contributor-covenant.org/version/1/4