Skip to content

Commit a3f3746

Browse files
committed
chore(docs): add maintainer guidelines
1 parent b5a0704 commit a3f3746

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Reactive Extensions Library for JavaScript
99

1010
- [Code of Conduct](CODE_OF_CONDUCT.md)
1111
- [Contribution Guidelines](CONTRIBUTION.md)
12+
- [Maintainer Guidelines](docs/maintainer-guidelines-md)
1213

1314
## Important
1415

doc/maintainer-guidelines.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Maintainer Guidelines
2+
3+
These are guidelines for maintainers of this repository as (mostly) [gifted to us by](https://github.com/ReactiveX/RxJS/issues/121#issue-97747542)
4+
His Beardliness, @jeffbcross. They are words to live by for those that are tasked with reviewing and merging pull requests and otherwise
5+
shepherding the community. As the roster of trusted maintainers grows, we'll expect these guidelines to stay pretty
6+
much the same (but suggestions are always welcome).
7+
8+
9+
### The ~~10~~ 6 Commandments
10+
11+
* __[Code of Conduct](../CODE_OF_CONDUCT.md)__. We should be setting a good example and be welcoming to all. We should be listening
12+
to all feedback from everyone in our community and respect their viewpoints and opinions.
13+
* __Be sure PRs meet [Contribution Guidelines](../CONTRIBUTION.md)__. It's important we keep our code base
14+
and repository consistent. The best way to do this is to know and enforce the contribution guidelines.
15+
* __Clean, flat commit history__. We never click the green merge button on PRs, but instead we pull down
16+
the PR branch and rebase it against master then replace master with the PR branch. See
17+
[example gist](https://gist.github.com/jeffbcross/307c6da45d26e29030ef). This reduces noise in the commit
18+
history, removing all of the merge commits, and keeps history flat. The flat history is beneficial
19+
to tools/scripts that analyze commit ancestry.
20+
* __Always green master__. Failing master builds tend to cascade into other broken builds, and
21+
frustration among other contributors who have rebased against a broken master. Much of our deployment
22+
and other infrastructure is based on the assumption that master is always green, nothing should be
23+
merged before Travis has confirmed that a PR is green, even for seemingly insignificant changes.
24+
Nothing should be merged into a red master, and whomever broke it should drop everything and fix it
25+
right away. Fixes should be submitted as a PR and verified as green instead of immediately merging
26+
to master.
27+
* __No force pushes to master__. Only in rare circumstances should a force push to master be made,
28+
and other maintainers should be notified beforehand. The most common situation for a justified force
29+
push is when a commit has been pushed with an invalid message. The force push should be made as soon
30+
as possible to reduce side effects.
31+
* __Small, logical commits__. A PR should be focused on a single problem, though that problem may be
32+
reasonable to be broken into a few logical commits. For example, a global renaming may be best to be
33+
broken into a single commit that renames all files, and then a commit that renames symbols within files.
34+
This makes the review process simpler easier, so the diff of the meaty commit (where symbols are
35+
renamed) can be easily understood than if both were done in the same commit, in which case github would
36+
just show a deleted file and an added file.

0 commit comments

Comments
 (0)