Модель stage delivery и release handoff
Обновлён 14 апр. 2026 г., 17:16 · 0 комментариев
Модель stage delivery и release handoff
Паспорт документа
- Статус документа: working reference
- Актуально на: 1 апреля 2026 года
- Владелец: backend/platform-команда
- Пересмотр: при изменении stage release workflow, ownership-модели или границы между текущим сервером и stage-контуром
- Область применения: каноническая модель передачи backend/frontend изменений в
mainи их автоматического развёртывания на отдельном stage-сервере - Связанные документы:
Цель документа
Этот документ фиксирует простую и недвусмысленную release-модель проекта:
- текущая машина используется для разработки, исправлений, документирования и локальных инженерных проверок;
- отдельный stage-сервер отвечает за сборку/развёртывание UI-проверочного контура;
- релизным действием считается не ручной деплой с этой машины, а попадание согласованного change package в
main.
1. Канонический процесс
Правильная модель сейчас такая:
- backend/platform-команда готовит change package в
qadam-core; - frontend-команда готовит свой change package в
qadam-web; - backend фиксирует frontend-impact в
frontend-change-log.md; - frontend-команда подтверждает готовность или закрывает свой remediation scope;
- обе стороны мержат согласованные изменения в
main; - отдельный stage-сервер автоматически забирает
mainи разворачивает актуальное состояние проекта; - UI и интеграция проверяются уже на stage-сервере, а не на этой машине.
2. Что это означает для текущего сервера
На текущем сервере:
- можно разрабатывать backend и documentation packages;
- можно собирать инженерный контекст, прогонять тесты, чинить код и синхронизировать контракты;
- нельзя считать локальный ручной deploy обязательной частью каждого change package;
- нельзя считать этот сервер каноническим stage-контуром для frontend-проверок.
Если нужен UI-проверочный результат, источником истины становится отдельный stage-сервер после merge в main.
3. Что считается release-событием
Для проекта release-событием сейчас считается:
- merge change package в
mainрепозиторияqadam-core, если пакет backend/platform-значимый; - merge change package в
mainрепозиторияqadam-web, если пакет frontend-значимый; - завершённый handoff между командами, если пакет требует согласованного внедрения с обеих сторон.
Сам по себе локальный commit не считается release.
Сам по себе локальный docker build, systemctl restart или ручной smoke на этой машине не считается релизом stage-контура.
4. Роль backend-команды в этой модели
Backend/platform-команда обязана:
- доводить change package до merge-ready состояния;
- обновлять
OpenAPI, если меняется контракт; - обновлять frontend-change-log.md, если пакет влияет на frontend;
- обновлять execution-checkpoints.md и project-change-log.md;
- не передавать изменения frontend-команде только устно.
Backend/platform-команда не обязана вручную выкатывать каждый пакет на stage с текущей машины, если stage разворачивается внешним автоматическим контуром.
5. Роль frontend-команды в этой модели
Frontend-команда обязана:
- брать в работу только опубликованные и зафиксированные backend handoff-пакеты;
- использовать
frontend-change-log.mdиfrontend-adoption-backlog.mdкак рабочий контур; - подтверждать статус на
qadam-roadmap.2fab.app, если пакет появился какready_for_frontend; - мержить готовый пакет в
main, если он согласован по UX и контракту.
6. Граница между текущим сервером и stage-сервером
Текущий сервер:
- development/control plane;
- документация;
- локальные проверки;
- backend/platform runtime и production-история, описанная в
deployment-runbook.md.
Stage-сервер:
- UI-проверочный контур;
- автоматический deploy из
main; - место, где подтверждается согласованная работа frontend и backend в браузере.
Важно: этот документ не описывает внутреннюю реализацию stage pipeline. Он фиксирует только каноническое правило взаимодействия команд и то, что stage deploy уже живёт вне текущей машины.
7. Что запрещено
- считать ручной деплой с текущего сервера обязательным release-этапом, если речь идёт о stage-проверке;
- утверждать, что staging обновится от feature-ветки, если release-модель завязана на
main; - считать backend-пакет завершённым для frontend без записи в
frontend-change-log.md; - передавать задачу на frontend словами вместо changelog/checkpoint/handoff-контура.
8. Короткий operational вывод
Локально мы:
- чиним;
- добавляем фичи;
- синхронизируем документацию и контракты;
- доводим пакет до merge-ready состояния.
Релизно мы:
- мержим в
main; - даём внешнему stage-контуру автоматически развернуть актуальный backend и frontend;
- проверяем интеграцию уже на stage-сервере.