Thank you for investing your time and energy by contributing to our project: please ensure you are familiar with the HashiCorp Code of Conduct.
This provider is a HashiCorp utility provider, which means any bug fix and feature has to be considered in the context of the thousands/millions of configurations in which this provider is used. This is great as your contribution can have a big positive impact, but we have to assess potential negative impact too (e.g. breaking existing configurations). Stability over features.
To provide some safety to the wider provider ecosystem, we strictly follow semantic versioning and HashiCorp's own versioning specification. Any changes that could be considered as breaking will only be included as part of a major release. In case multiple breaking changes need to happen, we will group them in the next upcoming major release.
For questions, curiosity, or if still unsure what you are dealing with, please see the HashiCorp Terraform Providers Discuss forum.
Please disclose security vulnerabilities responsibly by following the HashiCorp Vulnerability Reporting guidelines.
Before proceeding with raising issues or submitting pull requests, it will probably help to familiarise yourself with the design principles of this provider. This will aid your proposals, and help understand why we took certain decisions during development.
We welcome issues of all kinds including feature requests, bug reports or documentation suggestions. Below are guidelines for well-formed issues of each type.
bug
to help narrow things down.enhancement
to help narrow things down.Thank you for contributing!
We are happy to review pull requests without associated issues, but we highly recommend starting by describing and discussing your problem or feature and attaching use cases to an issue first before raising a pull request.
go get
, go mod tidy
or other commands). Refer to the dependency updates section for more information about how this project maintains existing dependencies.Dependency management is performed by Dependabot. Where possible, dependency updates should occur through that system to ensure all Go module files are appropriately updated and to prevent duplicated effort of concurrent update submissions. Once available, updates are expected to be verified and merged to prevent latent technical debt.
HashiCorp’s open-source projects have always maintained user-friendly, readable CHANGELOG
s that allow practitioners and developers to tell at a glance whether a release should have any effect on them, and to gauge the risk of an upgrade.
We follow Terraform Plugin changelog specifications.
This provider uses the Changie automation tool for changelog automation. To add a new entry to the CHANGELOG
install Changie using the following instructions and run
changie new
then choose a kind
of change corresponding to the Terraform Plugin changelog categories and then fill out the body following the entry format. Changie will then prompt for a Github issue or pull request number. Repeat this process for any additional changes. The .yaml
files created in the .changes/unreleased
folder should be pushed the repository along with any code changes.
Entries that are specific to resources or data sources, they should look like:
* resource/RESOURCE_NAME: ENTRY DESCRIPTION * data-source/DATA-SOURCE_NAME: ENTRY DESCRIPTION
CHANGELOG
The CHANGELOG
is intended to show developer-impacting changes to the codebase for a particular version. If every change or commit to the code resulted in an entry, the CHANGELOG
would become less useful for developers. The lists below are general guidelines to decide whether a change should have an entry.
CHANGELOG
entryCHANGELOG
entryCHANGELOG
entryAll source code files (excluding autogenerated files like go.mod
, prose, and files excluded in .copywrite.hcl) must have a license header at the top.
This can be autogenerated by running make generate
or running go generate ./...
in the /tools directory.