# Contribute and support

- Do not be afraid to contribute with small and apparently insignificant improvements like correction to typos. Every change counts.

- Read carefully the License of PyCryptodome. By submitting your code, you acknowledge that you accept to release it according to the BSD 2-clause license.

- You must disclaim which parts of your code in your contribution were partially copied or derived from an existing source. Ensure that the original is licensed in a way compatible to the BSD 2-clause license.

- You can propose changes in any way you find most convenient. However, the preferred approach is to:

  - Clone the main repository on GitHub.

  - Create a branch and modify the code.

  - Send a pull request upstream with a meaningful description.

- Provide tests (in `Crypto.SelfTest`) along with code. If you fix a bug add a test that fails in the current version and passes with your change.

- If your change breaks backward compatibility, highlight it and include a justification.

- Ensure that your code complies to PEP8 and PEP257.

- If you add or modify a public interface, make sure the relevant type stubs remain up to date.

- Ensure that your code does not use constructs or includes modules not present in Python 2.6.

- Add a short summary of the change to the file `Changelog.rst`.

- Add your name to the list of contributors in the file `AUTHORS.rst`.

The PyCryptodome mailing list is hosted on Google Groups. You can mail any comment or question to pycryptodome@googlegroups.com.

Bug reports can be filed on the GitHub tracker.