- Added AGENTS.md for AI agent documentation and maintainers, outlining project structure and conventions. - Updated CONTRIBUTING.md to specify that all project documentation must be in English, including README and docstrings. - Enhanced README.md to reference documentation guidelines and the new AGENTS.md file. - Cleaned up .gitignore by removing unnecessary entries for cursor-related files. - Introduced new .cursor rules for backend, frontend, project architecture, and testing to standardize development practices.
2.0 KiB
Contributing to Duty Teller
Development setup
-
Clone the repository
git clone <repository-url> cd duty-teller -
Create a virtual environment
python -m venv .venv source .venv/bin/activate # Linux/macOS # or: .venv\Scripts\activate # Windows -
Install dependencies
pip install -r requirements.txt pip install -r requirements-dev.txt -
Configure
cp .env.example .envSet
BOT_TOKENand any other variables as needed (see README). -
Documentation (optional)
To build and preview the docs (MkDocs + mkdocstrings):pip install -e ".[docs]" mkdocs build mkdocs serve # preview at http://127.0.0.1:8000
Running tests and linters
-
Tests (from repository root; package is
duty_teller, nosrc/):pytestUse
PYTHONPATH=.if imports fail. -
Lint (ruff):
ruff check duty_teller tests -
Security (bandit):
bandit -r duty_teller -ll
Documentation
All project documentation must be in English. This includes:
- README, files in
docs/, docstrings, and commit messages that touch documentation. - Exception: user-facing UI strings are localized (Russian/English) in
duty_teller/i18n/and are not considered project documentation.
Docstrings and code comments must be in English (Google-style docstrings). See AGENTS.md for AI/maintainer context.
Commit messages
Use Conventional Commits, e.g.:
feat: add /pin_duty commandfix: correct timezone in pinned messagedocs: update README env section
Submit changes via pull requests (Gitea Flow); reviews consider functionality, code quality, and security.
Releases
When cutting a release, update CHANGELOG.md with the new version and list changes under Added / Changed / Fixed / Security as appropriate (see Keep a Changelog).