|
| 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