Semantic Versioning
Семантическое версионирование — это подход, набор правил и требований, которые определяют, как назначаются и увеличиваются номера версий.
Суть семантической версии в том, что изменения в API отражаются в увеличении версии особым образом. То, как выглядит версия и то, как она изменяется, передаёт характер изменений, что было изменено от одной версии к другой.
Спецификация
Первоисточник: https://semver.org
- ПО, использующее семантическое версионирование, должно объявить публичный API.
- Обычный номер версии должен иметь формат
X.Y.Z
, где- X — мажорная версия (major)
- Y — минорная версия (minor)
- Z — патч-версия (patch)
- После релиза содержание версии не должно меняться, любое изменение — новая версия.
- Для начальной разработки используются версии вида
0.Y.Z
, которые не требуют обратную совместимость и часто являются нестабильными. - Начиная с версии
1.0.0
API должен быть стабильным, а все последующие версии изменяются по строгим правилам. - Патч-версия
x.y.Z
должна быть увеличена только если содержит обратно совместимые баг-фиксы, т.е. внутренние изменения, которые исправляют некорректное поведение. - Минорная версия
x.Y.z
должна быть увеличена, если в публичном API представлена новая обратно совместимая функциональность. - Мажорная версия
X.y.z
должна быть увеличена, если в публичном API есть обратно несовместимые изменения. Минорная и патч-версия обнуляются. - Предрелизная версия может быть обозначена добавлением дефиса и серией разделённых точкой идентификаторов, следующих сразу за патч-версией.
- Сборочные метаданные могут быть обозначены добавлением знака плюс и ряда разделённых точкой идентификаторов.
Примеры версий:
0.1.0
— версия стадии начальной разра ботки4.42.2
— обычная стабильная версия1.0.0-aplha.1
— версия для альфа тестирования1.2.3-rc1
— release candidate1.0.0-beta.4+202405222303
— версия с метаданными сборки