Template Sync Strategy
Template Sync Strategy описывает процесс, при котором приложение создаётся от шаблона и дальше регулярно получает обновления шаблона без ручного копирования файлов.
Основной маршрут:
templates/master -> template -> sync/* -> masterГде:
templates/master— основная ветка внешнего репозитория шаблона.template— чистый слепок шаблона внутри репозитория приложения.sync/*— временная ветка, где шаблон накладывается на приложение.master— основная ветка приложения.
Задача
Шаблон хорошо решает старт проекта: приносит CI/CD, Dockerfile, зависимости, линтер, сборку, структуру и базовую документацию. Но после старта приложения расходятся: где-то обновили CI, где-то забыли, где-то сделали локальную кастомизацию.
Стратегия нужна, чтобы шаблон оставался общей технической базой не только в первый день проекта, но и на всём жизненном цикле приложения.
Главный принцип
Ветка template должна оставаться чистым слепком оригинального шаблона.
В неё нельзя коммитить изменения приложения и нельзя решать конфликты. Все конфликтные решения выполняются только во временных ветках sync/*.
Состав документации
- Зачем это нужно — какие проблемы появляются без update-flow.
- Модель веток — роли
templates/master,template,sync/*иmaster. - Правила процесса — ограничения, которые удерживают схему чистой.
- Новый проект от шаблона — старт приложения с правильной историей.
- Миграция существующего master — одноразовое связывание несвязанных историй.
- Обычное обновление шаблона — регулярный рабочий процесс.
- Решение конфликтов — где и как совместить шаблон с приложением.
- Review и merge — как доставлять sync-ветку в
master. - Памятка — короткий набор команд.
- Troubleshooting — типовые ошибки и диагностика.
- Глоссарий — основные термины.