Путаница с непрерывной доставкой, управлением версиями и функциональными ветвями

В настоящее время я занимаюсь внедрением компакт-диска с рабочим процессом Feature Branch. Что мне непонятно, так это когда увеличивать номер версии.

Должен ли он увеличиваться при создании новой функции?

Итак, допустим, у нас есть версия 1.1, и я собираюсь реализовать новую функцию FB-123.

При создании FB мне увеличивать версию?

       *---*--- increment build number, now on 1.2.456 
      / increment version to 1.2 
  ---* 1.1

И использовать номер сборки Jenkins для последующих коммитов?


person helpermethod    schedule 18.08.2016    source источник
comment
Все действительно зависит от того, для кого предназначен номер сборки. Это для вас внутри, чтобы помочь решить эту проблему обратно к коммиту? Это для того, чтобы другие технические специалисты могли видеть, чтобы они могли сделать вывод о том, что изменилось, исходя из семантики номера сборки? Это стоит прочитать - semver.org, чтобы дать вам пищу для размышлений.   -  person Evolve Software Ltd    schedule 18.08.2016
comment
@EvolveSoftwareLtd Да, это для его разрешения. Я действительно не против, если это семантика или нет.   -  person helpermethod    schedule 19.08.2016
comment
вы используете гит? что происходит с функциональной ветвью, когда она завершена? Вы объединяете его обратно с мастером или с выпуском ветки?   -  person Yuri G.    schedule 01.09.2016
comment
@ЮриГ. В конце создается запрос на извлечение, и, если он принят, он объединяется с мастером.   -  person helpermethod    schedule 01.09.2016


Ответы (1)


Я бы рассмотрел возможность использования следующей схемы управления версиями:

  • Каждый основной/второстепенный выпуск помечен тегом git.
  • схема филиалов - <major>.<minor>.<number of commits from latest minor>-<feature branch-name>-<sha1>
  • основная схема - <major>.<minor> (считает, что каждый принятый запрос на включение является второстепенным выпуском)

Вы можете рассчитать количество коммитов из последнего минора с помощью

git rev-list HEAD ^<latest minor tag> --ancestry-path <latest minor tag> --count

Эта схема позволит вам получить от имени версии:

  • базовая версия
  • название филиала
  • коммит git, из которого была собрана версия
  • правильно сравнить 2 версии одной и той же ветки
person Yuri G.    schedule 01.09.2016