diff --git a/docs/PROJECT_RULES.md b/docs/PROJECT_RULES.md index 9c11217..a639fbf 100644 --- a/docs/PROJECT_RULES.md +++ b/docs/PROJECT_RULES.md @@ -49,18 +49,89 @@ registerCalculator(myCalculatorConfig); ## Работа с Git ### Ветки: -- `main` / `master` - продакшн -- `dev` - разработка +- `main` / `master` - продакшн (стабильная версия) +- `dev` - разработка (активная разработка) + +### Стандартный Workflow разработки + +#### 1. Разработка в `dev` +Все новые изменения разрабатываются в ветке `dev`: + +```bash +# Переключиться на dev +git checkout dev + +# Получить последние изменения с сервера +git pull origin dev + +# После внесения изменений +git add . +git commit -m "описание изменений" +git push origin dev +``` + +#### 2. Тестирование на сервере +Перед слиянием в `main` обязательно тестируйте изменения на сервере: +- Залить изменения на сервер (из `dev`) +- Пересобрать фронтенд: `cd frontend && npm run build` +- Перезапустить процессы: `pm2 restart dosoap-frontend dosoap-backend` +- Проверить работу функционала + +#### 3. Слияние в `main` +После успешного тестирования слить `dev` в `main`: + +```bash +# Переключиться на main +git checkout main + +# Обновить локальную main +git pull origin main + +# Слить dev в main +git merge dev --no-ff -m "Merge dev: краткое описание изменений" + +# Отправить на сервер +git push origin main +``` + +**Важно**: Используйте флаг `--no-ff` для создания merge commit - это сохраняет историю разработки. + +#### 4. Feature-ветки (для больших изменений) +Для крупных изменений создавайте feature-ветки от `dev`: + +```bash +git checkout dev +git checkout -b feature/new-calculator +# Работаете в feature ветке +git push origin feature/new-calculator +# Когда готово - мержите в dev +git checkout dev +git merge feature/new-calculator +git push origin dev +``` ### Коммиты: -- Используй понятные сообщения коммитов +- Используй понятные сообщения коммитов на русском или английском - Один коммит = одно логическое изменение +- Формат: `тип: краткое описание` + - `feat:` - новая функциональность + - `fix:` - исправление ошибки + - `docs:` - изменения в документации + - `refactor:` - рефакторинг кода + - `style:` - форматирование (без изменения логики) ### Перед коммитом: 1. Проверь линтер: `npm run lint` 2. Убедись, что сборка проходит: `npm run build` 3. Проверь типы: TypeScript должен компилироваться без ошибок +### Перед слиянием в main: +1. ✅ Все изменения протестированы на сервере в `dev` +2. ✅ Линтер не выдает ошибок +3. ✅ Production build собирается успешно +4. ✅ Функционал работает корректно +5. ✅ Нет критических ошибок в консоли браузера + ## Деплой на сервер ### Порядок действий: