How To Contribute
=================

``symfit`` needs more contributors to help it become even better. In particular I would like help in the packaging department, as I am new to distributing code in a cross-platform way.
Even if you don't know much about this yourself, it would be great if you could help provide information about on which OS and Python versions ``symfit`` works and on which it doesn't.
Just open an issue_!

To make participation as pleasant as possible, this project adheres to the `Code of Conduct`_ by the Python Software Foundation.

Here are a few hints and rules to get you started:

- The core principle of ``symfit`` as that the way people use this package is beatiful, easy, and Pythonic. 
  Under the hood ugly code is sometimes inevitable and therefore forgivable, but the users should never have to interact with the package in such a way.
  If you are unsure your proposed code adheres to this just add a pull request or open an issue_ to have a discussion about it.
  If your pull request can indeed be worked into the project, great! Otherwise, no harm done.
- Add yourself to the AUTHORS.rst_ file in an alphabetical fashion.
  Every contribution is valuable and shall be credited.
- Please submit as many fixes for typos and grammar bloopers as you can, as I am known to make many of them.
- Don’t *ever* break backward compatibility.
  If it ever *has* to happen for higher reasons, please open an issue_ to have a discussion about it first.
- *Always* add tests and docs for your code.
  This is a hard rule; patches with missing tests or documentation won’t be merged.
  If a feature is not tested or documented, it doesn’t exist.
- Obey `PEP 8`_ and `PEP 257`_.
- Write `good commit messages`_.

Thank you for considering to contribute to ``symfit``!
If you have any question or concerns, feel free to reach out to me.


.. _`PEP 8`: http://www.python.org/dev/peps/pep-0008/
.. _`PEP 257`: http://www.python.org/dev/peps/pep-0257/
.. _`good commit messages`: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
.. _`Code of Conduct`: http://www.python.org/psf/codeofconduct/
.. _AUTHORS.rst: https://github.com/tBuLi/symfit/blob/master/AUTHORS.rst
.. _issue: https://github.com/tBuLi/symfit/issues
