**tl;dr**  Good (code + tests + commit message) = Great Pull Request.

*****************************************************************************

How do the pull requests get merged?
------------------------------------

The following points are considered as part of merging pull requests
after it is deemed necessary.

1.  Is there an issue tagged in the commit?
2.  Do the existing tests pass?
3.  Are there new tests added to verify any new functionality / issue?
4.  Is the authors list up to date?
5.  Is the changelog updated?
6.  Is the version updated?
7.  Does this require any changes to the documentation?

Guidelines
-----------

If the following guidelines are observed as much as possible, it will
immensely help in verifying and merging the pull requests.

1.  One pull request = One feature or One bug.
2.  Always tag an issue in the commit. If an issue does not exist for
    a feature or a bug, please add one.
3.  Use topic / feature branches.
4.  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.
5.  Make the `commit message`_ as verbose as possible.
6.  Add yourself to `Authors`_ list and update your contribution.
7.  Cross update `Changelog`_ list as well.
8.  Update ``version.py`` and ``README.rst`` with a version in this
    format: <version>-<yourusername><issuenumber>.
9.  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.
10. Update the `Readme`_.


.. _commit message: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
.. _Changelog: CHANGELOG.rst
.. _Authors: AUTHORS.rst
.. _Readme: README.rst
