Contributing¶
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.
Patches¶
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:
Code¶
- 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
Documentation¶
When introducing new functionality, please remember to write documentation.
First time setup¶
- Download and install the latest version of git
- Configure git with your username and email
$ git config user.name 'Your Name'
$ git config user.email 'your.email@example.org'
- Make sure you have a GitHub account
- Fork DinoTools/python-ssdeep to your GitHub account by using the Fork button
- Clone the main repository locally
$ git clone https://github.com/DinoTools/python-ssdeep.git
$ cd python-ssdeep
- Add your fork as a remote to push your work to. Replace <username> with your username.
$ git remote add fork https://github.com/<username>/python-ssdeep
- Install pre-commit by using a virtualenv.
$ python3 -m venv venv_git
$ source venv_git/bin/activate
$ pip install pre-commit
- Install pre-commit hooks.
$ pre-commit install
Review¶
Finally, pull requests must be reviewed before merging. Everyone can perform reviews; this is a very valuable way to contribute, and is highly encouraged.