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