Правила работы в системе контроля версий

Основные ветки проекта

В проекте первоначально присутствуют 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.

К этому реквесту будут автоматически добавлены ревьюверы, и если этот пулл-реквест будет одобрен и смержен, то произойдет автоматическая сборка и публикация его на боевой сайт основного проекта.