Thank you for your interest in contributing! This document provides guidelines for contributing to this Terraform module.
By participating in this project, you agree to abide by our Code of Conduct.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- Clear title and description
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Terraform version and AWS provider version
- Module version you're using
- Relevant code snippets or configuration
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- Clear title and description
- Use case for the enhancement
- Examples of how it would work
- Potential impact on existing functionality
- Fork the repository and create your branch from
main - Make your changes following our coding standards
- Add tests if applicable
- Update documentation including README.md if needed
- Ensure CI passes - all validation checks must pass
- Write clear commit messages
- Submit a pull request
# Clone your fork
git clone https://github.com/your-username/aws-native-terraform-module.git
cd aws-native-terraform-module
# Install development dependencies
brew install terraform tflint pre-commit
# Set up pre-commit hooks
pre-commit install- Follow Terraform style conventions
- Run
terraform fmt -recursivebefore committing - Use meaningful variable and resource names
- Add comments for complex logic
# Format code
terraform fmt -recursive
# Validate module
terraform init -backend=false
terraform validate
# Lint code
tflint --recursive
# Test example
cd examples/complete
terraform init -backend=false
terraform validateWe use pre-commit hooks to ensure code quality:
# Install hooks
pre-commit install
# Run manually
pre-commit run --all-files- Update Readme.md for any user-facing changes
- Add inline comments for complex Terraform code
- Update examples if adding new features
- Variables and outputs should have clear descriptions
Follow conventional commits format:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(ecr): add support for ECR private registries
fix(iam): correct policy permissions for EBS scanning
docs: update README with new variables
This project follows Semantic Versioning:
- MAJOR: Incompatible API changes
- MINOR: Backwards-compatible functionality additions
- PATCH: Backwards-compatible bug fixes
Maintainers will handle releases:
- Update CHANGELOG.md
- Create and push a version tag
- GitHub Actions automatically creates the release
Feel free to open an issue with the question label if you need help or clarification.
By contributing, you agree that your contributions will be licensed under the MIT License.