First of all, thank you for your interest in contributing to this project!

Filing bug reports

Bug reports are very welcome. Please file them on the GitHub issue tracker. Good bug reports come with extensive descriptions of the error and how to reproduce it. Try to use the provided issue template, it should be displayed by the GitHub website when creating a new issue.


All patches should be submitted in the form of pull requests to the main repository, DinoTools/python-ssdeep. These pull requests should satisfy the following properties:


  • A pull request should focus on one particular improvement or change.
  • Create different pull requests for unrelated features or bugfixes.
  • Python code should follow PEP 8, especially in the “do what code around you does” sense.
  • Add test if possible


When introducing new functionality, please remember to write documentation.

First time setup

$ git config 'Your Name'
$ git config ''
$ git clone
$ cd python-ssdeep
  • Add your fork as a remote to push your work to. Replace <username> with your username.
$ git remote add fork<username>/python-ssdeep
$ python3 -m venv venv_git
$ source venv_git/bin/activate
$ pip install pre-commit
  • Install pre-commit hooks.
$ pre-commit install


Finally, pull requests must be reviewed before merging. Everyone can perform reviews; this is a very valuable way to contribute, and is highly encouraged.