============
Contributing
============

Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.

You can contribute in many ways:

Types of Contributions
----------------------

Report Bugs
~~~~~~~~~~~

If you are reporting a bug, please include:

* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.

Fix Bugs
~~~~~~~~

To fix bugs please fork the repository and create a merge request. See also
merge_requests_.

Implement Features
~~~~~~~~~~~~~~~~~~

To fix bugs please fork the repository and create a merge request. See also
merge_requests_.

Write Documentation
~~~~~~~~~~~~~~~~~~~

``cosmic_toolbox`` could always use more documentation, whether as part of the
official ``cosmic_toolbox`` docs, in docstrings, or even on
the web in blog posts, articles, and such.

Submit Feedback
~~~~~~~~~~~~~~~

If you are proposing a feature:

* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
  are welcome :)


Merge Request Guidelines
------------------------

.. _merge_requests:

Before you submit a merge request, check that it meets these guidelines:

1. The merge request should include tests for your bugfix or new feature.
2. Make sure that all tests succeed.
3. If the merge request adds functionality, the docs should be updated. Put
   your new functionality into a function with a docstring, and add the
   feature to the list in README.rst.
4. The pull request should work for Python latest 3.X.
