Files
LazyBearWorks/docs/razorconsole/contributing.md

2.8 KiB
Raw Blame History

RazorConsole — Контрибьюция

Начало работы

  • Для крупных PR, рефакторингов, новых фич — сначала создай Issue для обсуждения
  • Discord: https://discord.gg/DphHAnJxCM — мейнтейнеры активны там

Настройка окружения разработки

Требования

  • .NET 8.0 или 9.0 SDK
  • Git LFS (для крупных медиафайлов)

Клонирование

git lfs install
git clone https://github.com/RazorConsole/RazorConsole.git
cd RazorConsole
dotnet build RazorConsole.slnx
dotnet test RazorConsole.slnx

Стандарты кода

  • Следовать правилам .editorconfig (4 пробела, file-scoped namespaces, System usings первые)
  • Предпочитать async/await с ConfigureAwait(false) в библиотечном коде
  • Public API: nullable-enabled, документировать исключения и edge cases
  • Spectre.Console renderables — immutable вне rendering loops

Перед отправкой PR

dotnet format RazorConsole.slnx   # форматирование
dotnet test RazorConsole.slnx     # тесты (должны пройти на Linux и Windows)

При изменениях в focus/keyboard handling — добавить/обновить тесты в FocusManagerTests или KeyboardEventManagerTests.

Процесс PR

  1. Создать Issue для крупных изменений
  2. Форкнуть репозиторий, создать ветку от main
  3. Сделать изменения, соблюдая стандарты кода
  4. Написать/обновить тесты
  5. Запустить dotnet format и dotnet test
  6. Отправить PR с описанием изменений

Структура тестов

  • Тесты находятся в src/RazorConsole.Tests
  • CI требует чистого прохождения на Linux и Windows
  • Покрытие: Codecov (Cobertura format)

Документация

  • README.md — обновлять при user-facing изменениях
  • XML doc-комментарии для public API
  • examples/ — добавлять примеры для новых фич
  • design-doc/ — архитектурные заметки

Git LFS

Отслеживаемые типы файлов: *.gif, *.png, *.jpg, *.jpeg, *.mp4, *.mov, *.avi, *.zip, *.tar.gz, *.pdf.

Релизный процесс

Создание GitHub Release запускает .github/workflows/release.yml — сборка, тесты, паковка и публикация. Версии следуют семантическому версионированию.