Added docs RazorConsole
This commit is contained in:
69
docs/razorconsole/contributing.md
Normal file
69
docs/razorconsole/contributing.md
Normal 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` — сборка, тесты, паковка и публикация. Версии следуют семантическому версионированию.
|
||||
Reference in New Issue
Block a user