tl;dr Good (code + tests + commit message) = Great Pull Request.
The following points are considered as part of merging pull requests after it is deemed necessary.
- Is there an issue tagged in the commit?
- Do the existing tests pass?
- Are there new tests added to verify any new functionality / issue?
- Is the authors list up to date?
- Is the changelog updated?
- Is the version updated?
- Does this require any changes to the documentation?
If the following guidelines are observed as much as possible, it will immensely help in verifying and merging the pull requests.
- One pull request = One feature or One bug.
- Always tag an issue in the commit. If an issue does not exist for a feature or a bug, please add one.
- Use topic / feature branches.
- Make sure a test exists to verify the committed code. A good way to think about it is: if these commits were reversed and only the test were added back in, it ought to fail.
- Make the commit message as verbose as possible.
- Add yourself to Authors list and update your contribution.
- Cross update Changelog list as well.
- Update version.py and README.rst with a version in this format: <version>-<yourusername><issuenumber>.
- If the change was complicated and resulted in a lot of commits, consider rebase -i to sqash and/or rearrange them to make it easier to review.
- Update the Readme.