Added docs RazorConsole

This commit is contained in:
2026-04-13 16:53:31 +03:00
parent e37ab09fc5
commit c117d928b0
5 changed files with 913 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
# RazorConsole — Контрибьюция
## Начало работы
- **Для крупных PR, рефакторингов, новых фич** — сначала создай Issue для обсуждения
- **Discord:** https://discord.gg/DphHAnJxCM — мейнтейнеры активны там
## Настройка окружения разработки
### Требования
- .NET 8.0 или 9.0 SDK
- Git LFS (для крупных медиафайлов)
### Клонирование
```bash
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
```bash
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` — сборка, тесты, паковка и публикация. Версии следуют семантическому версионированию.