Ответ
Поддержка нескольких версий (N-1, N-2) необходима в следующих сценариях:
- Долгосрочная поддержка (LTS) для клиентов: Клиенты не могут сразу обновиться и требуют исправления безопасности или критических багов в старой версии.
- Поэтапный rollout (канареечные выпуски): Новая версия развертывается на части инфраструктуры, пока старая продолжает работать для остальных пользователей.
- Кастомизированные версии для разных клиентов: У некоторых клиентов есть собственная форкнутая или модифицированная версия продукта.
Практика управления версиями в Git:
# main/trunk — актуальная разрабатываемая версия
git checkout main
# Ветка для поддержки релиза 1.x
git checkout release/1.x
# Ветка для поддержки релиза 2.x
git checkout release/2.x
Лучшие практики:
- Используйте семантическое версионирование (SemVer: MAJOR.MINOR.PATCH).
- Автоматизируйте сборку и тестирование для всех поддерживаемых веток через CI/CD (Jenkins, GitLab CI).
- Четко определите и задокументируйте политику поддержки (сроки, типы исправлений).