Files
telegram-tui/CONTRIBUTING.md
Mikhail Kilin 051c4a0265
Some checks are pending
CI / Check (pull_request) Waiting to run
CI / Format (pull_request) Waiting to run
CI / Clippy (pull_request) Waiting to run
CI / Build (macos-latest) (pull_request) Waiting to run
CI / Build (ubuntu-latest) (pull_request) Waiting to run
CI / Build (windows-latest) (pull_request) Waiting to run
fixes
2026-01-28 01:29:03 +03:00

4.7 KiB
Raw Blame History

Contributing to tele-tui

Спасибо за интерес к проекту! Мы рады любому вкладу.

Как помочь проекту

Сообщить о баге

  1. Проверьте, нет ли уже такого issue в Issues
  2. Создайте новый issue с описанием:
    • Шаги для воспроизведения
    • Ожидаемое поведение
    • Фактическое поведение
    • Версия ОС и Rust
    • Логи (если есть)

Предложить новую фичу

  1. Проверьте ROADMAP.md — возможно, эта фича уже запланирована
  2. Создайте issue с меткой enhancement
  3. Опишите:
    • Зачем нужна эта фича
    • Как она должна работать
    • Примеры использования

Внести код

  1. Fork репозитория
  2. Создайте feature branch: git checkout -b feature/amazing-feature
  3. Прочитайте DEVELOPMENT.md для понимания процесса разработки
  4. Внесите изменения
  5. Протестируйте локально
  6. Commit: git commit -m 'Add amazing feature'
  7. Push: git push origin feature/amazing-feature
  8. Создайте Pull Request

Правила кода

Стиль кода

  • Используйте cargo fmt перед коммитом
  • Следуйте Rust API Guidelines
  • Добавляйте комментарии для сложной логики

Структура коммитов

<type>: <краткое описание>

<подробное описание (опционально)>

Типы:

  • feat: новая фича
  • fix: исправление бага
  • refactor: рефакторинг без изменения функциональности
  • docs: изменения в документации
  • style: форматирование, отступы
  • test: добавление тестов
  • chore: обновление зависимостей, конфигурации

Примеры:

feat: add emoji reactions to messages

fix: correct timezone offset calculation

docs: update installation instructions

Тестирование

  • Протестируйте вручную все изменения
  • Опишите сценарии тестирования в PR
  • Убедитесь, что cargo build проходит без ошибок
  • Убедитесь, что cargo fmt и cargo clippy не дают предупреждений

Процесс Review

  1. Maintainer проверит ваш PR
  2. Возможны комментарии и запросы на изменения
  3. После одобрения PR будет смержен
  4. Ваш вклад появится в следующем релизе

Архитектура проекта

Перед началом работы рекомендуем ознакомиться:

  • REQUIREMENTS.md — функциональные требования
  • CONTEXT.md — текущий статус и архитектурные решения
  • ROADMAP.md — план развития

Структура кода

src/
├── main.rs           # Event loop, инициализация
├── config.rs         # Конфигурация
├── app/              # Состояние приложения
├── ui/               # Отрисовка UI
├── input/            # Обработка ввода
├── utils.rs          # Утилиты
└── tdlib/            # TDLib интеграция

Ключевые принципы

  1. Неблокирующий UI: TDLib updates в отдельном потоке
  2. Оптимизация памяти: LRU кеши, лимиты на коллекции
  3. Vim-style навигация: консистентные хоткеи
  4. Graceful degradation: fallback для отсутствующих данных

Code of Conduct

  • Будьте вежливы и уважительны
  • Конструктивная критика приветствуется
  • Фокус на технических аспектах

Вопросы?

Создайте issue с меткой question или свяжитесь с maintainers.

Лицензия

Внося код в этот проект, вы соглашаетесь с лицензией MIT.