.. _how-to-contribute:

How to Contribute
=================

We would love to have you contribute to the project! There are several
ways that you can do so.

How to contribute without coding
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* **Community** - Post your projects, code, screen-shots, and discuss the Arcade library on the `Python Arcade SubReddit`_.
* Try coding your own animations and games. Write down notes on anything that
  is difficult to implement or understand about the library.
* **Suggest improvements** - Post bugs and enhancement requests at the `Github Issue List`_.

How to contribute code
^^^^^^^^^^^^^^^^^^^^^^

First, take some time to understand the project layout:

* :ref:`directory-structure`
* :ref:`how-to-compile`
* :ref:`how-to-submit-changes`

Then you can improve these parts of the project:

* **Document** - Edit the reStructuredText_ and docstrings_ to make the Arcade
  documentation better.
* **Test** - Improve the unit testing.
* **Code** - Contribute bug fixes and enhancements to the code.

.. _Python Arcade SubReddit: https://www.reddit.com/r/pythonarcade
.. _Github Issue List: https://github.com/pvcraven/arcade/issues
.. _reStructuredText: http://www.sphinx-doc.org/en/stable/rest.html
.. _docstrings: http://www.pythonforbeginners.com/basics/python-docstrings