Contributing to Mars
====================

Reporting bugs and asking questions
-----------------------------------

We use `GitHub issues`_ for bug reports and feature requests. Issues should be
written in English to help coders all over the world understand your idea. For
discussions about development, questions about usage, or any general questions,
we use our mailing list `mars-dev@googlegroups.com`_.

To contribute a patch:
----------------------

1. It is recommended to submit an issue before working on a non-trivial patch.
2. Break your work into small, single-purpose patches if possible. It's much
   harder to merge in a large change with a lot of disjoint features.
3. Submit the patch as a GitHub pull request against the master branch. Write
   your comments in English so developers all over the world can understand
   your idea.
4. Make sure that your code passes the tests.
5. Add new unit tests for your code and try to cover all crucial branches of
   your code.
6. If your patch changes the way people use Mars, you need to update docs to
   reflect these changes.

.. _`GitHub issues`: https://github.com/mars-project/mars/issues
.. _`mars-dev@googlegroups.com`: https://groups.google.com/forum/#!forum/mars-dev
