Правила работы в системе контроля версий
Основные ветки проекта
В проекте первоначально присутствуют 4 ветки:
/master
/master_dirty
/release/current
/release/current_dirty
Ветки /master и /release/current закрыты для изменений.
Правила добавления новых веток
Ветки именуются в соответствии со следующими правилами:
для разработки и добавления нового функционала используется раздел
feature;
для исправления ошибок используется раздел
bugfix;
для задач из Мегаплана надо заводить подраздел с номером задачи.
Название ветки должно содержать краткое описание сути доработки. То есть доработка по задаче 99999 Мегаплана будет называться "/feature/99999/new-mod-feature".
Рекомендации по работе с коммитами
В разработке рекомендуется придерживаться подробности в коммитах.
В идеале каждый шаг рефакторинга и каждый добавленный класс должны отправляться отдельным коммитом с комментарием.
Такой подход позволит самому помнить ход разработки и будет проще отслеживать изменения по проекту.
Правила оформления пулл-реквестов
Пулл-реквесты следует формировать с сайта http://ci.corteos.ru:7990, так как он позволяет оформлять подробное описание со скриншотами.
В описании к пулл-реквесту обязательно должны быть описаны сделанные изменения, даны описания ключевым классам и методам, и все это должно быть максимально подробно освещено скриншотами. Иначе ревьюверу придется проделать двойную работу - вслед за разработчиком пройтись по всем его файлам и дополнительно еще заняться реверс-инжинирингом.
Получение обновлений сборки проекта
В ветку /master периодически поступают обновления библиотек и файлов из основного проекта.
Это происходит каждый раз при обновлении продакшн-версии, то есть там находятся стабильные протестированные сборки.
Соответственно, в ходе своей разработки стоит периодически (лучше каждый день) выполнять Merge из ветки /master, чтобы гарантированно иметь свежую версию проекта.
Публикация мода на выделенном домене
Если разработка дошла до какой-то промежуточной стадии, которую требуется продемонстрировать, и тестирования на localhost все пройдены успешно, то можно выполнить и смержить pull-request в ветку /master_dirty.
После мержа в ветку /master_dirty будет произведена сборка проекта на стенде разработки, прогнаны юнит-тесты, и если все пройдено успешно, то сборка будет опубликована на привязанном доменном имени.
В примере это будет modpartnerdevelopersolution.partnerdevelopersolution.corteos.info. На этом сайте можно будет провести тестирование и демонстрацию работы мода.
Отправка мода на ревью и добавление его на продакшн-сайт
Если разработка дошла до завершающей стадии, и можно отправить ее на ревью, то надо выполнить pull-request в ветку /release/current_dirty.
К этому реквесту будут автоматически добавлены ревьюверы, и если этот пулл-реквест будет одобрен и смержен, то произойдет автоматическая сборка и публикация его на боевой сайт основного проекта.