+If your pull request is small, for example one or two commits each containing
+only a few lines of code, then it is easy for the maintainers to review.
+
+If you are creating a larger pull request, then please help the maintainers
+with making the reviews as straightforward as possible:
+
+* The smaller the PR, the easier it is to review. In particular if a PR is too
+ large to review in one sitting, or if changes are requested, then the
+ maintainer needs to repeatedly re-read code that has already been considered.
+* The commit history is important. This is a large codebase, developed over many
+ years by many developers. We frequently need to read the commit history (e.g.
+ using `git blame`) to figure out what is going on. So small, understandable,
+ and relevant commits are important for other developers looking back at your
+ work in future.
+
+If you are creating a large pull request then please:
+
+* Consider splitting your pull request into multiple PRs. If part of your work
+ can be considered standalone, or is a foundation for the rest of your work,
+ please submit it separately first.
+* Avoid including "fixup" commits. If you have added a fixup commit (for example
+ to fix a rubocop warning, or because you changed your own new code) please
+ combine the fixup commit into the commit that introduced the problem.
+ `git rebase -i` is very useful for this.
+* Avoid including "merge" commits. If your PR can no longer be merged cleanly
+ (for example, an unrelated change to Gemfile.lock on master now conflicts with
+ your PR) then please rebase your PR onto the latest master. This allows you to
+ fix the conflicts, while keeping the PR a straightforward list of commits. If
+ there are no conflicts, then there is no need to rebase anything.