Are you a core maintainer of Terraform? Great! Here's a few notes to help you get comfortable when working on the project.
This documentation is somewhat outdated since it still includes provider-related information even though providers are now developed in their own separate codebases, but the general information is still valid.
We value the time you spend on the project and as such your maintainer status doesn't imply any obligations to do any specific work.
These apply to all contributors, but maintainers should lead by examples! :wink:
provider/*
PRs it's useful to attach test results & advise on how to run the relevant testsbug
fixes it's useful to attach repro case, ideally in a form of a testenhancement
& provider/aws
Collaborator
, Member
or Owner
badge) - we expect the submitter to merge their own PR after receiving a positive review from either HC employee or another maintainer. Exceptions apply - see below.[GH-12345]
to format the PR number. These will be turned into links as part of the release process. Breaking changes should be always documented separately.Any PR that is significantly changing or even breaking user experience cross-providers should always get at least one :+1: from a HC employee prior to merge.
It is generally advisable to leave PRs labelled as core
for HC employees to review and merge.
Examples include:
If you‘re unsure about anything, ask in the committer’s Slack channel.
These will require :+1: and some extra effort from HC employee.
We expect all acceptance tests to be as self-sustainable as possible to keep the bar for running any acceptance test low for anyone outside of HashiCorp or core maintainers team.
We expect any test to run in parallel alongside any other test (even the same test). To ensure this is possible, we need all tests to avoid sharing namespaces or using static unique names. In rare occasions this may require the use of mutexes in the resource code.
We will need some details about who to contact or where to register for a new account and generally we can't merge providers before ensuring we have a way to test them nightly, which usually involves setting up a new account and obtaining API credentials.
We will need either Terraform configs that will set up the underlying test infrastructure (e.g. GKE cluster for Kubernetes) or Dockerfile(s) that will prepare test environment (e.g. MySQL) and expose the endpoint for testing.