Это животрепещущая тема и вариантов можно придумать уйму. Мой совет - начинать нужно с самой простой схемы, а если уж понадобится, то уже усложнять. А самый простой вариант все-таки работать в одной ветке (в master'e) и не париться. Делать теги после релизов и увеличивать версию в этот же момент.
Если же процесс или квалификация этого не позволяет, следующее усложнение - это работать в master'e, а при необходимости (например, во время feature freeze) делать тематические ветки под новые фичи которые пойдут в следующий релиз. Это чтоб не пушать в master пока там подготавливается текущий релиз.
Дальше можно усложнять например работая всегда в release-x.y ветке, а для следующего спринта создавать свой release-x.y и т.д.
Еще можно работать в master'e, а когда близится релиз, создавать release-x.y.
Каждое усложнение имеет свою цену - создавая ветки вы:
- отдаляете интеграцию своего и чужого кода, а значит и баги находите позже
- усложняете CI потому что для других веток вы тоже наверно захотите в какой-то момент конфигураций для сборки и, возможно, и еще чего.
Поэтому каждый раз когда вносите усложнения, хорошенько об этом думайте стоит ли оно того. Судя по тому что будет разрабатываться небольшая библиотека - самый простой способ себя лучше всех и покажет.
Это животрепещущая тема и вариантов можно придумать уйму. Мой совет - начинать нужно с самой простой схемы, а если уж понадобится, то уже усложнять. А самый простой вариант все-таки работать в одной ветке (в master'e) и не париться. Делать теги после релизов и увеличивать версию в этот же момент.
Если же процесс или квалификация этого не позволяет, следующее усложнение - это работать в master'e, а при необходимости (например, во время feature freeze) делать тематические ветки под новые фичи которые пойдут в следующий релиз. Это чтоб не пушать в master пока там подготавливается текущий релиз.
Дальше можно усложнять например работая всегда в release-x.y ветке, а для следующего спринта создавать свой release-x.y и т.д.
Еще можно работать в master'e, а когда близится релиз, создавать release-x.y.
Каждое усложнение имеет свою цену - создавая ветки вы:
- отдаляете интеграцию своего и чужого кода, а значит и баги находите позже
- усложняете CI потому что для других веток вы тоже наверно захотите в какой-то момент конфигураций для сборки и, возможно, и еще чего.
Поэтому каждый раз когда вносите усложнения, хорошенько об этом думайте стоит ли оно того. Судя по тому что будет разрабатываться небольшая библиотека - самый простой способ себя лучше всех и покажет.