Files
duty-teller/CONTRIBUTING.md
Nikolay Tatarinov 37d4226beb chore: update project documentation and configuration files
- 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.
2026-03-02 20:02:20 +03:00

2.0 KiB

Contributing to Duty Teller

Development setup

  1. Clone the repository

    git clone <repository-url>
    cd duty-teller
    
  2. Create a virtual environment

    python -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    # or: .venv\Scripts\activate  # Windows
    
  3. Install dependencies

    pip install -r requirements.txt
    pip install -r requirements-dev.txt
    
  4. Configure

    cp .env.example .env
    

    Set BOT_TOKEN and any other variables as needed (see README).

  5. 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, no src/):

    pytest
    

    Use 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 command
  • fix: correct timezone in pinned message
  • docs: 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).