Взгляните на Symfony на Github. На момент написания ветка master
использует: 3.0-dev
.
https://github.com/symfony/symfony/blob/master/composer.json
Теперь посмотрите на тег 2.7.6
. Это использует: 2.7-dev
.
https://github.com/symfony/symfony/blob/v2.7.6/composer.json
Наконец, если вы посмотрите на все перечисленные ветки, вы заметите, что они названы в честь каждой версии «major.minor».
Шаблон, который они используют, заключается в добавлении всех новых функций в основную ветку, которая всегда является «следующей» версией кода. Таким образом, вы добавите эту функцию в «ветвь функций», на самом деле не имеет значения, как вы ее назовете на данном этапе, но ваш файл композитора будет говорить:
"dev-master": "1.2-dev"
Когда ваша функция будет завершена, вы объедините ее с «мастером», который уже должен иметь «1.2.0», подготовленный в файле композитора.
Теперь, когда вы будете готовы выпустить 1.2, вы пометите его как 1.2.0
, после чего создадите ветку «1.2» и зафиксируете.
Наконец, вы измените файл композитора на «master» на «1.3-dev» и зафиксируете. Все новые функции после этого будут нацелены на «1.3.0».
Пост-релиз
Вам нужно будет поддерживать 1.2, поэтому ваши исправления будут применяться к ветке 1.2. Однако вы захотите, чтобы эти исправления применялись и к мастеру, поэтому на мастере вы используете git merge 1.2
. Таким образом, вы все еще добавляете функции в основную версию, но в то же время извлекаете исправления из предыдущей версии.
person
Flosculus
schedule
17.11.2015