|
| 1 | +# Contributing |
| 2 | + |
| 3 | +## Go Style |
| 4 | + |
| 5 | +Contributions must adhere to [Effective Go](https://go.dev/doc/effective_go). |
| 6 | +Linting rules should be preferred over documenting styles (run ours with |
| 7 | +`make lint`); humans are error prone! |
| 8 | + |
| 9 | +Read |
| 10 | +[Go's Code Review Comments Wiki](https://github.com/golang/go/wiki/CodeReviewComments) |
| 11 | +to find common comments made during reviews of Go code. |
| 12 | + |
| 13 | +### No Unused Packages |
| 14 | + |
| 15 | +Coders write packages that are used during implementation. It's difficult to |
| 16 | +validate whether an abstraction is valid until it's checked against an |
| 17 | +implementation. This results in a larger changeset but provides reviewers with |
| 18 | +an educated perspective on the contribution. |
| 19 | + |
| 20 | +## Review |
| 21 | + |
| 22 | +> Taken from [Go's review philosophy](https://go.dev/doc/contribute#reviews). |
| 23 | +
|
| 24 | +Coders value thorough reviews. Think of each review comment like a ticket: you |
| 25 | +are expected to somehow "close" it by acting on it, either by implementing the |
| 26 | +suggestion or convincing the reviewer otherwise. |
| 27 | + |
| 28 | +After you update the change, go through the review comments and make sure to |
| 29 | +reply to every one. You can click the "Done" button to reply indicating that |
| 30 | +you've implemented the reviewer's suggestion; otherwise, click on "Reply" and |
| 31 | +explain why you have not, or what you have done instead. |
| 32 | + |
| 33 | +It is perfectly normal for changes to go through several round of reviews, with |
| 34 | +one or more reviewers making new comments every time and then waiting for an |
| 35 | +updated change before reviewing again. All contributors, including experienced |
| 36 | +maintainers, are subject to the same review cycle; this process is not meant |
| 37 | +to be applied selectively or discourage anyone from contribution. |
0 commit comments