Contributing
June 11, 2026 ยท View on GitHub
Bug report
For now GitHub bug traker is used for this project.
We aim to be user friendly, so if you have any issue or suggestion for the UI/UX or about the application packging, please tell us, we appreciate it.
Development
- The 3rd version of the Python programming language is used mainly in this project.
- Dependencies managment is handled using requirements files with uv.
requirements.incontain requirements for running the application andrequirements-dev.incontain requirements for development..txtfiles are locked requirements with hashes generated usinguvto provide a reproducible environment.- For development you will need to use both files, while users just need to use the
requirements.txtfile.
pre-commitwill take care about generating.txtfiles. You should just edit.infiles or useuvto upgrade locked requirements.
Create a virtual environment and install dependencies
First clone the git repository:
git clone https://github.com/zefr0x/hashes.git
For development you are recomended to use uv for reproducing the same environment.
- Create a virtual environment and activate it
uv venv
source .venv/bin/activate
- Run the folowing command in the project's root directory to install all the dependencies for development
uv pip sync requirements/{requirements,requirements-dev}.txt
- Then you can run the application as a python module
python3 -m hashes
You can use the
justfilefor the last two steps if you want to.
Style
- You should type hint every thing as possible.
- You should comment every thing to keep the code easy to read. Every file, every class, every function and any line that need a comment.
You should use:
You can also use any tool that you want as long as it's compatable with the required style.
Installing pre-commit
To make every thing easy pre-commit is used in this project, it should run in every
commit, so you shouldn't commit any thing without checking it first.
First install it:
pip install pre-commit
You can use another way to install it, maybe from your OS's package manager.
Then add it as a git hook while you are inside the repository:
pre-commit install
Testing
TODO...
Translation
The application's GUI is prepared for internationalisation using gettext.
Go to the ./po directory for more details.
Translating the application name
The name of the application should be changed with respect to the target locale, but it must convey the same meaning.