# Релизная политика
## Время
Пн-Чт: желательно до 12:00 (мск), но в случае блокеров или других обстоятельств может быть и позже
Пт: обязательно до 12:00 (мск).
Некоторые релизы требуют времени для выкладки (например, миграции выполняются достаточно долго). В таком случае релиз может быть перенесен на "технологическое окно", выбранное заранее в менее нагруженное время работы системы.
## Порядок релиза
Для каждой задачи в релизе:
Найти **Merge Request** задачи (все, если их несколько)
Проверить аппрувы (должно быть минимум 2) и target-ветку (должна соответствовать родительской задаче)
Сделать Merge, удалить исходную ветку
Запустить pipeline для выкладки на production, проверить его результаты
Подвинуть задачу в следующий статус кнопкой "Вылито" и оставить соответствующий комментарий
## Зависимости задач
Для каждой задачи необходимо понимать откуда её выводить в начале работы и куда ее вливать в конце. По умолчанию это `master`-ветка, но в случае зависимых задач могут быть исключения. Про них и поговорим.
Для этого вводим понятие "**Родитель**" задачи. Это локальный `master` для задачи. **Родитель** может быть либо один, либо отсутвовать.
Если **Родитель** отсутствует, то действуем как обычно - ответвляемся от `master`-ветки и MR делаем туда же.
**Родителем** задачи считаем открытую задачу (статусы от **Открыта** до **Готово к релизу**) из блока связанных задач "**Зависит от**".
Если таких задач больше одной, то стоит уточнить связи задачи до начала работы. Так как в таком случае есть неопределенность при выводе задачи или мерже ее обратно, то останавливаем работу над ней *до устранения неопределенности*.