Я пытаюсь реализовать поток git, внутри проекта php. Я добавляю новую функцию. Последний тег — 1.1.0.
Теперь я не в версии 1.1.0 (потому что я добавляю новую функцию). Это означает, что я не должен обновлять версию внутри файла composer.json.
Стоит ли обновлять версию, когда добавляется функция для разработки? Вши 1.1-признак-имя?
Нужно ли обновлять версию только внутри ветки релиза? Я думаю, что подходящий момент — последний.
Посмотрите на 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"
Когда ваша функция будет завершена, вы объедините ее с «master», который уже должен иметь «1.2.0», подготовленный в файле composer.
Теперь, когда вы будете готовы выпустить 1.2, вы пометите его как 1.2.0
с последующим созданием ветки «1.2» и фиксацией.
Наконец, вы измените файл composer на «master» на «1.3-dev» и выполните коммит. Все новые функции после этого будут нацелены на «1.3.0».
Пост релиз
Вам нужно будет поддерживать 1.2, поэтому ваши патчи будут применены к ветке 1.2. Тем не менее, вы хотите, чтобы эти патчи были применены к мастеру, так что на мастере вы используете git merge 1.2
, Таким образом, вы все еще добавляете функции в мастер, но в то же время извлекаете патчи из предыдущей версии.
Других решений пока нет …