You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
COLLABORATOR_GUIDE.md and onboarding.md cover some of the same
information. The aim of this commit is to remove duplicated
information.
PR-URL: #9635
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Sam Roberts <[email protected]>
Copy file name to clipboardexpand all lines: COLLABORATOR_GUIDE.md
+55-19
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,8 @@ Collaborators or additional evidence that the issue has relevance, the
36
36
issue may be closed. Remember that issues can always be re-opened if
37
37
necessary.
38
38
39
+
[**See "Who to CC in issues"**](./onboarding-extras.md#who-to-cc-in-issues)
40
+
39
41
## Accepting Modifications
40
42
41
43
All modifications to the Node.js code and documentation should be
@@ -60,19 +62,20 @@ and work schedules. Trivial changes (e.g. those which fix minor bugs
60
62
or improve performance without affecting API or causing other
61
63
wide-reaching impact) may be landed after a shorter delay.
62
64
63
-
For non-breaking changes, if there is no disagreement amongst Collaborators, a
64
-
pull request may be landed given appropriate review. Where there is discussion
65
-
amongst Collaborators, consensus should be sought if possible. The
66
-
lack of consensus may indicate the need to elevate discussion to the
67
-
CTC for resolution (see below).
68
-
69
-
Breaking changes (that is, pull requests that require an increase in the
70
-
major version number, known as `semver-major` changes) must be elevated for
71
-
review by the CTC. This does not necessarily mean that the PR must be put onto
72
-
the CTC meeting agenda. If multiple CTC members approve (`LGTM`) the PR and no
73
-
Collaborators oppose the PR, it can be landed. Where there is disagreement among
74
-
CTC members or objections from one or more Collaborators, `semver-major` pull
75
-
requests should be put on the CTC meeting agenda.
65
+
For non-breaking changes, if there is no disagreement amongst
66
+
Collaborators, a pull request may be landed given appropriate review.
67
+
Where there is discussion amongst Collaborators, consensus should be
68
+
sought if possible. The lack of consensus may indicate the need to
69
+
elevate discussion to the CTC for resolution (see below).
70
+
71
+
Breaking changes (that is, pull requests that require an increase in
72
+
the major version number, known as `semver-major` changes) must be
73
+
elevated for review by the CTC. This does not necessarily mean that the
74
+
PR must be put onto the CTC meeting agenda. If multiple CTC members
75
+
approve (`LGTM`) the PR and no Collaborators oppose the PR, it can be
76
+
landed. Where there is disagreement among CTC members or objections
77
+
from one or more Collaborators, `semver-major` pull requests should be
78
+
put on the CTC meeting agenda.
76
79
77
80
All bugfixes require a test case which demonstrates the defect. The
78
81
test should *fail* before the change, and *pass* after the change.
@@ -96,20 +99,31 @@ The CTC should serve as the final arbiter where required.
96
99
97
100
## Landing Pull Requests
98
101
102
+
* Please never use GitHub's green ["Merge Pull Request"](https://help.github.com/articles/merging-a-pull-request/#merging-a-pull-request-using-the-github-web-interface) button.
103
+
* If you do, please force-push removing the merge.
104
+
* Reasons for not using the web interface button:
105
+
* The merge method will add an unnecessary merge commit.
106
+
* The rebase & merge method adds metadata to the commit title.
107
+
* The rebase method changes the author.
108
+
* The squash & merge method has been known to add metadata to the
109
+
commit title.
110
+
* If more than one author has contributed to the PR, only the
111
+
latest author will be considered during the squashing.
112
+
99
113
Always modify the original commit message to include additional meta
100
114
information regarding the change process:
101
115
102
-
- A `Reviewed-By: Name <email>` line for yourself and any
103
-
other Collaborators who have reviewed the change.
104
-
- Useful for @mentions / contact list if something goes wrong in the PR.
105
-
- Protects against the assumption that GitHub will be around forever.
106
116
- A `PR-URL:` line that references the *full* GitHub URL of the original
107
117
pull request being merged so it's easy to trace a commit back to the
108
118
conversation that led up to that change.
109
119
- A `Fixes: X` line, where _X_ either includes the *full* GitHub URL
110
120
for an issue, and/or the hash and commit message if the commit fixes
111
121
a bug in a previous commit. Multiple `Fixes:` lines may be added if
112
122
appropriate.
123
+
- A `Reviewed-By: Name <email>` line for yourself and any
124
+
other Collaborators who have reviewed the change.
125
+
- Useful for @mentions / contact list if something goes wrong in the PR.
126
+
- Protects against the assumption that GitHub will be around forever.
113
127
114
128
Review the commit message to ensure that it adheres to the guidelines
115
129
outlined in the [contributing](https://github.com/nodejs/node/blob/master/CONTRIBUTING.md#step-3-commit) guide.
@@ -119,7 +133,6 @@ See the commit log for examples such as
119
133
exactly how to format your commit messages.
120
134
121
135
Additionally:
122
-
123
136
- Double check PRs to make sure the person's _full name_ and email
124
137
address are correct before merging.
125
138
- Except when updating dependencies, all commits should be self
@@ -224,23 +237,46 @@ Save the file and close the editor. You'll be asked to enter a new
224
237
commit message for that commit. This is a good moment to fix incorrect
225
238
commit logs, ensure that they are properly formatted, and add
226
239
`Reviewed-By` lines.
240
+
* The commit message text must conform to the [commit message guidelines](../CONTRIBUTING.md#step-3-commit).
227
241
228
242
Time to push it:
229
243
230
244
```text
231
245
$ git push origin master
232
246
```
247
+
* Optional: Force push the amended commit to the branch you used to
248
+
open the pull request. If your branch is called `bugfix`, then the
249
+
command would be `git push --force-with-lease origin master:bugfix`.
250
+
When the pull request is closed, this will cause the pull request to
251
+
show the purple merged status rather than the red closed status that is
252
+
usually used for pull requests that weren't merged. Only do this when
253
+
landing your own contributions.
254
+
255
+
* Close the pull request with a "Landed in `<commit hash>`" comment. If
256
+
your pull request shows the purple merged status then you should still
257
+
add the "Landed in <commithash>..<commithash>" comment if you added
258
+
multiple commits.
259
+
260
+
*`./configure && make -j8 test`
261
+
*`-j8` builds node in parallel with 8 threads. Adjust to the number
262
+
of cores or processor-level threads your processor has (or slightly
263
+
more) for best results.
233
264
234
265
### I Just Made a Mistake
235
266
236
-
With `git`, there's a way to override remote trees by force pushing
267
+
* Ping a CTC member.
268
+
*`#node-dev` on freenode
269
+
* With `git`, there's a way to override remote trees by force pushing
237
270
(`git push -f`). This should generally be seen as forbidden (since
238
271
you're rewriting history on a repository other people are working
239
272
against) but is allowed for simpler slip-ups such as typos in commit
240
273
messages. However, you are only allowed to force push to any Node.js
241
274
branch within 10 minutes from your original push. If someone else
242
275
pushes to the branch or the 10 minute period passes, consider the
243
276
commit final.
277
+
* Use `--force-with-lease` to minimize the chance of overwriting
0 commit comments