Skip to content

Commit 210fab2

Browse files
dfawleyeshitachandwani
authored andcommitted
github: add PR template (grpc#8524)
1 parent 2d44ee1 commit 210fab2

File tree

2 files changed

+82
-21
lines changed

2 files changed

+82
-21
lines changed

.github/pull_request_template.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Thank you for your PR. Please read and follow
2+
https://github.com/grpc/grpc-go/blob/master/CONTRIBUTING.md, especially the
3+
"Guidelines for Pull Requests" section, and then delete this text before
4+
entering your PR description.

CONTRIBUTING.md

Lines changed: 78 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,21 @@ guidelines, there may be valid reasons to do so, but it should be rare.
3333

3434
## Guidelines for Pull Requests
3535

36-
How to get your contributions merged smoothly and quickly:
36+
Please read the following carefully to ensure your contributions can be merged
37+
smoothly and quickly.
38+
39+
### PR Contents
3740

3841
- Create **small PRs** that are narrowly focused on **addressing a single
3942
concern**. We often receive PRs that attempt to fix several things at the same
4043
time, and if one part of the PR has a problem, that will hold up the entire
4144
PR.
4245

43-
- For **speculative changes**, consider opening an issue and discussing it
44-
first. If you are suggesting a behavioral or API change, consider starting
45-
with a [gRFC proposal](https://github.com/grpc/proposal). Many new features
46-
that are not bug fixes will require cross-language agreement.
46+
- If your change does not address an **open issue** with an **agreed
47+
resolution**, consider opening an issue and discussing it first. If you are
48+
suggesting a behavioral or API change, consider starting with a [gRFC
49+
proposal](https://github.com/grpc/proposal). Many new features that are not
50+
bug fixes will require cross-language agreement.
4751

4852
- If you want to fix **formatting or style**, consider whether your changes are
4953
an obvious improvement or might be considered a personal preference. If a
@@ -56,16 +60,6 @@ How to get your contributions merged smoothly and quickly:
5660
often written as "iff". Please do not make spelling correction changes unless
5761
you are certain they are misspellings.
5862

59-
- Provide a good **PR description** as a record of **what** change is being made
60-
and **why** it was made. Link to a GitHub issue if it exists.
61-
62-
- Maintain a **clean commit history** and use **meaningful commit messages**.
63-
PRs with messy commit histories are difficult to review and won't be merged.
64-
Before sending your PR, ensure your changes are based on top of the latest
65-
`upstream/master` commits, and avoid rebasing in the middle of a code review.
66-
You should **never use `git push -f`** unless absolutely necessary during a
67-
review, as it can interfere with GitHub's tracking of comments.
68-
6963
- **All tests need to be passing** before your change can be merged. We
7064
recommend you run tests locally before creating your PR to catch breakages
7165
early on:
@@ -81,15 +75,80 @@ How to get your contributions merged smoothly and quickly:
8175
GitHub, which will trigger a GitHub Actions run that you can use to verify
8276
everything is passing.
8377

84-
- If you are adding a new file, make sure it has the **copyright message**
78+
- Note that there are two github actions checks that need not be green:
79+
80+
1. We test the freshness of the generated proto code we maintain via the
81+
`vet-proto` check. If the source proto files are updated, but our repo is
82+
not updated, an optional checker will fail. This will be fixed by our team
83+
in a separate PR and will not prevent the merge of your PR.
84+
85+
2. We run a checker that will fail if there is any change in dependencies of
86+
an exported package via the `dependencies` check. If new dependencies are
87+
added that are not appropriate, we may not accept your PR (see below).
88+
89+
- If you are adding a **new file**, make sure it has the **copyright message**
8590
template at the top as a comment. You can copy the message from an existing
8691
file and update the year.
8792

8893
- The grpc package should only depend on standard Go packages and a small number
8994
of exceptions. **If your contribution introduces new dependencies**, you will
90-
need a discussion with gRPC-Go maintainers. A GitHub action check will run on
91-
every PR, and will flag any transitive dependency changes from any public
92-
package.
95+
need a discussion with gRPC-Go maintainers.
96+
97+
### PR Descriptions
98+
99+
- **PR titles** should start with the name of the component being addressed, or
100+
the type of change. Examples: transport, client, server, round_robin, xds,
101+
cleanup, deps.
102+
103+
- Read and follow the **guidelines for PR titles and descriptions** here:
104+
https://google.github.io/eng-practices/review/developer/cl-descriptions.html
105+
106+
*particularly* the sections "First Line" and "Body is Informative".
107+
108+
Note: your PR description will be used as the git commit message in a
109+
squash-and-merge if your PR is approved. We may make changes to this as
110+
necessary.
111+
112+
- **Does this PR relate to an open issue?** On the first line, please use the
113+
tag `Fixes #<issue>` to ensure the issue is closed when the PR is merged. Or
114+
use `Updates #<issue>` if the PR is related to an open issue, but does not fix
115+
it. Consider filing an issue if one does not already exist.
116+
117+
- PR descriptions *must* conclude with **release notes** as follows:
118+
119+
```
120+
RELEASE NOTES:
121+
* <component>: <summary>
122+
```
123+
124+
This need not match the PR title.
125+
126+
The summary must:
127+
128+
* be something that gRPC users will understand.
129+
130+
* clearly explain the feature being added, the issue being fixed, or the
131+
behavior being changed, etc. If fixing a bug, be clear about how the bug
132+
can be triggered by an end-user.
133+
134+
* begin with a capital letter and use complete sentences.
135+
136+
* be as short as possible to describe the change being made.
137+
138+
If a PR is *not* end-user visible -- e.g. a cleanup, testing change, or
139+
github-related, use `RELEASE NOTES: n/a`.
140+
141+
### PR Process
142+
143+
- Please **self-review** your code changes before sending your PR. This will
144+
prevent simple, obvious errors from causing delays.
145+
146+
- Maintain a **clean commit history** and use **meaningful commit messages**.
147+
PRs with messy commit histories are difficult to review and won't be merged.
148+
Before sending your PR, ensure your changes are based on top of the latest
149+
`upstream/master` commits, and avoid rebasing in the middle of a code review.
150+
You should **never use `git push -f`** unless absolutely necessary during a
151+
review, as it can interfere with GitHub's tracking of comments.
93152

94153
- Unless your PR is trivial, you should **expect reviewer comments** that you
95154
will need to address before merging. We'll label the PR as `Status: Requires
@@ -98,5 +157,3 @@ How to get your contributions merged smoothly and quickly:
98157
`stale`, and we will automatically close it after 7 days if we don't hear back
99158
from you. Please feel free to ping issues or bugs if you do not get a response
100159
within a week.
101-
102-
- Exceptions to the rules can be made if there's a compelling reason to do so.

0 commit comments

Comments
 (0)