Contributing¶
Contributing to Telegram Menu Builder¶
Thank you for your interest in contributing! This document provides guidelines for contributing to this project.
Development Setup¶
- Fork the repository
- Clone your fork:
git clone https://github.com/smoxy/telegram-menu-builder.git - Create a virtual environment:
python -m venv .venv - Activate it:
source .venv/bin/activate(Windows:.venv\Scripts\activate) - Install dependencies:
pip install -e ".[dev]" - Install pre-commit hooks:
pre-commit install
License Agreement¶
By contributing to this project, you agree that your contributions will be licensed under the MIT License. This includes allowing your code to be used for training AI models and other commercial uses.
Code Standards¶
- Python 3.12+ syntax and features
- Type hints on all functions and methods
- Docstrings for all public APIs (Google style)
- Tests for all new features (aim for 90%+ coverage)
- Format with Black and Ruff
- Pass all type checks (mypy, pyright)
Pull Request Process¶
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with clear, descriptive commits
- Add tests for new functionality
- Run tests:
pytest - Run type checking:
mypy src && pyright - Format code:
black src tests && ruff check --fix src tests - Push and create a Pull Request
Commit Messages¶
Follow conventional commits:
feat:New featurefix:Bug fixdocs:Documentation changestest:Test additions/changesrefactor:Code refactoringstyle:Formatting changeschore:Build/tooling changes
Questions?¶
Open a GitHub Discussion or contact the maintainers.
Thank you! 🎉