Skip to content

Commit 12705c6

Browse files
authored
add CONTRIBUTING.md
1 parent 257f605 commit 12705c6

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

.github/CONTRIBUTING.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Contributing to `terraform-provider-archive`
2+
3+
**First:** if you're unsure or afraid of _anything_, just ask or submit the issue describing the problem you're aiming to solve.
4+
5+
The `archive` provider is a HashiCorp *standard library* provider, which means we consider it part of the core Terraform experience. Our priority is stability and correctness, and any bug fix or feature has to be considered in the context of this provider's many users and the wider Terraform ecosystem.
6+
This is great as your contribution can have a big positive impact, but we have to assess potential negative impact too.
7+
8+
To provide some safety to the Terraform ecosystem, we strictly follow [semantic versioning](https://semver.org/) and any changes that could be considered as breaking will only be released as part of a major release.
9+
10+
## Table of Contents
11+
12+
- [I just have a question](#i-just-have-a-question)
13+
- [I want to report a vulnerability](#i-want-to-report-a-vulnerability)
14+
- [New Issue](#new-issue)
15+
- [New Pull Request](#new-pull-request)
16+
17+
## I just have a question
18+
19+
> **Note:** We use GitHub for tracking bugs and feature requests only.
20+
21+
For questions, please see relevant channels at https://www.terraform.io/community.html
22+
23+
## I want to report a vulnerability
24+
25+
Please disclose security vulnerabilities responsibly by following the procedure
26+
described at https://www.hashicorp.com/security#vulnerability-reporting
27+
28+
## New Issue
29+
30+
We welcome issues of all kinds including feature requests, bug reports or documentation suggestions. Below are guidelines for well-formed issues of each type.
31+
32+
### Bug Reports
33+
34+
- **Test against latest release**: Make sure you test against the latest avaiable version of both Terraform and the provider.
35+
It is possible we already fixed the bug you're experiencing.
36+
37+
- **Search for duplicates**: It's helpful to keep bug reports consolidated to one thread, so do a quick search on existing bug reports to check if anybody else has reported the same thing. You can scope searches by the label `bug` to help narrow things down.
38+
39+
- **Include steps to reproduce**: Provide steps to reproduce the issue, along with code examples (both HCL and Go, where applicable) and/or real code, so we can try to reproduce it. Without this, it makes it much harder (sometimes impossible) to fix the issue.
40+
41+
### Feature Requests
42+
43+
- **Search for possible duplicate requests**: It's helpful to keep requests consolidated to one thread, so do a quick search on existing requests to check if anybody else has reported the same thing. You can scope searches by the label `enhancement` to help narrow things down.
44+
45+
- **Include a use case description**: In addition to describing the behavior of the feature you'd like to see added, it's helpful to also lay out the reason why the feature would be important and how it would benefit the wider Terraform ecosystem. Use case in context of 1 provider is good, wider context of more providers is better.
46+
47+
## New Pull Request
48+
49+
Thank you for contributing!
50+
51+
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.
52+
53+
- **Early validation of idea and implementation plan**: Terraform's SDK is complicated enough that there are often several ways to implement something, each of which has different implications and tradeoffs. Working through a plan of attack with the team before you dive into implementation will help ensure that you're working in the right direction.
54+
55+
- **Acceptance Tests**: It may go without saying, but every new patch should be covered by tests wherever possible.
56+
57+
- **Go Modules**: We use [Go Modules](https://github.com/golang/go/wiki/Modules) to manage and version all our dependencies. Please make sure that you reflect dependency changes in your pull requests appropriately (e.g. `go get`, `go mod tidy` or other commands). Where possible it is better to raise a separate pull request with just dependency changes as it's easier to review such PR(s).
58+
59+
### Cosmetic changes, code formatting, and typos
60+
61+
In general we do not accept PRs containing only the following changes:
62+
63+
- Correcting spelling or typos
64+
- Code formatting, including whitespace
65+
- Other cosmetic changes that do not affect functionality
66+
67+
While we appreciate the effort that goes into preparing PRs, there is always a tradeoff between benefit and cost. The costs involved in accepting such contributions include the time taken for thorough review, the noise created in the git history, and the increased number of GitHub notifications that maintainers must attend to.
68+
69+
#### Exceptions
70+
71+
We belive that one should "leave the campsite cleaner than you found it", so you are welcome to clean up cosmetic issues in the neighbourhood when submitting a patch that makes functional changes or fixes.

0 commit comments

Comments
 (0)