# Правила проекта ## Миграции базы данных **ВАЖНО:** Если меняется структура базы данных — пиши НОВУЮ миграцию. НИ В КОЕМ СЛУЧАЕ не меняй старые миграции, можно добавлять только новые. Старой миграцией считается та, что была уже ранее закоммичена. ## Перезапуск приложения после изменений После применения всех изменений в бэкенде (`play-life-backend/`) или фронтенде (`play-life-web/`), а также после изменений в `docker-compose.yml`, **ОБЯЗАТЕЛЬНО** выполни команду `./run.sh` для перезапуска всех сервисов. Применяется при работе с: - Go кодом в `play-life-backend/` - Миграциями базы данных в `play-life-backend/migrations/` - React компонентами и стилями в `play-life-web/src/` - Docker конфигурациями (`docker-compose.yml`, `Dockerfile`) При изменениях в `play-life-llm/` (если LLM запущен на этой машине) выполни `./runLLM.sh`. **Команды:** `./run.sh` (web + backend + db) или `bash run.sh` в корне проекта. Для LLM: `./runLLM.sh`. ## Поднятие версии и пуш Когда пользователь просит **поднять версию и запушить**: ### 1. Определи тип версии - **major** — первая цифра (1.1.1 → 2.0.0), минор и патч обнуляются - **minor** — вторая цифра (1.0.1 → 1.1.0), патч обнуляется - **patch** — третья цифра (1.0.0 → 1.0.1) Любая часть версии может быть больше 9 (10, 11, 12 и т.д.). **Если тип версии непонятен из контекста — обязательно спроси у пользователя!** ### 2. Обнови версию в файлах - `VERSION` (в корне проекта) - `play-life-web/package.json` (поле `"version"`) ### 3. Составь commit message Выполни `git diff --staged` и `git diff`, проанализируй изменения. Составь **короткий commit message** (максимум 50 символов) на русском языке. Формат: `"1.2.3: Описание изменений"`. ### 4. Закоммить и запушить ```bash git add -A git commit -m "" git push ``` ## Пуш без поднятия версии Когда пользователь просит просто запушить (без поднятия версии): 1. Выполни `git diff --staged` и `git diff`, составь короткий commit message на русском (максимум 50 символов) 2. `git add -A && git commit -m "" && git push` **Примеры:** - "Подними патч и запушь" → поднять patch - "Bump minor and push" → поднять minor - "Подними версию и запушь" → спросить какой тип - "Запушь изменения" → пушить без изменения версии