First, thank you for wanting to spend your time helping make this project better! It's very appreciated <3
- By making PR, you agree that your code will be published under the MIT License.
- You agree to our No LLM rule.
- You agree to follow the style guidelines when making changes to the code.
Due to the current black-box nature of LLMs, a bad impact on the environment, legal issues (such as no copyright mentions in the generated codes from GitHub Copilot) and many other problems, any commits, issues or PRs must not contain LLM responses and/or a help from LLM. Even if it was reviewed by a human, it will be rejected.
Create an issue, if you...
- Noticed a bug or a typo.
- Want to propose a new feature.
Create a PR, if you...
- Want to improve the documentation.
Create an issue and PR, if you...
- Know how to realize the feature or fix the bug you found.
If none of these cases are yours, then create an issue about your case and we'll discuss it.
The project follows PEP 8. The only change is a maximum line length: limit all lines to a maximum of 120 symbols.
Before making any changes, you must to set up the developing environment.
First of all, you need to install the project's tooling. If you don't have some of the tools, follow the instructions on the corresponding pages.
When all tools are installed, clone the repo, cd into the folder and sync all dependencies by uv:
uv sync --all-groupsThen we need to install the prek's pre-commit. The pre-commit hook will help to mitigate the typical mistakes like forgetting to use the formatter or run the unit tests. To do this, run this command:
prek installDone!
To test the bot, run this:
pytestIf you want to measure a code coverage, run the test command with a --cov flag. For example, here's a command to run the unit tests and measure a code coverage of the main module:
pytest --cov='./main.py'The project uses the following tools:
- Package manager: uv
- Linter and formatter: Ruff
- Type checker: mypy
- Test runner: pytest
- Coverage: Coverage.py
pre-commitframework:prek
Send security issues to one of the authors' emails: piston.pro0001@gmail.com or romanmashevskyi@proton.me.