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

Interested in contributing to RapidFuzz? Want to report a bug?
Before you do, please read the following guidelines.

Submission context
-------------------

Got a question or problem?
^^^^^^^^^^^^^^^^^^^^^^^^^^

For questions you can reach us using
`github discussions <https://github.com/rapidfuzz/RapidFuzz/discussions>`__.

Found a bug?
^^^^^^^^^^^^

If you found a bug in the source code, you can help us by submitting an issue
to the `issue tracker <https://github.com/rapidfuzz/rapidfuzz/issues>`__
in our GitHub repository. Even better, you can submit a Pull Request with a fix.
However, before doing so, please read the :ref:`submission-guidelines`.

Missing a feature?
^^^^^^^^^^^^^^^^^^

You can request a new feature by submitting an issue to our GitHub Repository.
If you would like to implement a new feature, please submit an issue with a
proposal for your work first, to be sure that it is of use for everyone.
Please consider what kind of change it is:

* For a **major feature**, first open an issue and outline your proposal so
  that it can be discussed. This will also allow us to better coordinate our
  efforts, prevent duplication of work, and help you to craft the change so
  that it is successfully accepted into the project.

* **Small features and bugs** can be crafted and directly submitted as a Pull
  Request. However, there is no guarantee that your feature will make it into
  the ``main``, as it's always a matter of opinion whether if benefits the
  overall functionality of the project.

.. _submission-guidelines:

Submission guidelines
---------------------

Submitting an issue
^^^^^^^^^^^^^^^^^^^

Before you submit an issue, please search the issue tracker, maybe an issue for
your problem already exists and the discussion might inform you of workarounds
readily available.
