SemVer (Semantic Versioning) - это соглашение о версионировании программного обеспечения, которое определяет структуру и семантику номеров версий. Основная цель SemVer — обеспечить четкое и последовательное понимание изменений в программном обеспечении.
Структура номера версии
Номер версии SemVer состоит из трех частей, разделенных точками.
Например: v3(major).1(minor).8(patch)
- Основная версия (Major): Указывает на значительные изменения в функциональности или API.
- Минорная версия (Minor): Указывает на добавление новой функциональности или исправление ошибок, которые не ломают обратную совместимость.
- Патч-версия (Patch): Указывает на исправления ошибок или незначительные улучшения, которые не влияют на функциональность.
Семантика
SemVer определяет семантику изменений следующим образом:
- Основная версия увеличивается — вносятся несовместимые изменения, требующие от пользователей внесения изменений в свой код.
- Минорная версия увеличивается — добавляется новая функциональность, которая не ломает обратную совместимость.
- Патч-версия увеличивается — исправляются ошибки или вносятся незначительные улучшения.
Версионность в HLEB2
Если проследить историю создания новых версий в репозитории фреймворка, то его развитие соответствует SemVer, так как этот путь был выбран изначально.
Благодаря этому можно ориентироваться на автоматическое обновление в патч-версиях, которые однозначно полезны для поддержания безопасности и улучшения проекта, а для минорной версии принимать решение в зависимости от проекта, хотя при том, что минорные версии так-же не должны ломать обратную совместимость, в этом случае аналогично можно рассчитывать на автоматическое обновление без проблем. В случае же смены основной версии проект должен быть готов к переходу на неё, так как часто во фреймворках и библиотеках именно в этой версии делается переход на другую минимальную версию языка программирования и добавляются изменения не совместимые с предыдущими версиями.