Перейти к основному содержимому

Semantic Versioning

Семантическое версионирование — это подход, набор правил и требований, которые определяют, как назначаются и увеличиваются номера версий.

Суть семантической версии в том, что изменения в API отражаются в увеличении версии особым образом. То, как выглядит версия и то, как она изменяется, передаёт характер изменений, что было изменено от одной версии к другой.

Спецификация

Первоисточник: https://semver.org

  1. ПО, использующее семантическое версионирование, должно объявить публичный API.
  2. Обычный номер версии должен иметь формат X.Y.Z, где
    • X — мажорная версия (major)
    • Y — минорная версия (minor)
    • Z — патч-версия (patch)
  3. После релиза содержание версии не должно меняться, любое изменение — новая версия.
  4. Для начальной разработки используются версии вида 0.Y.Z, которые не требуют обратную совместимость и часто являются нестабильными.
  5. Начиная с версии 1.0.0 API должен быть стабильным, а все последующие версии изменяются по строгим правилам.
  6. Патч-версия x.y.Z должна быть увеличена только если содержит обратно совместимые баг-фиксы, т.е. внутренние изменения, которые исправляют некорректное поведение.
  7. Минорная версия x.Y.z должна быть увеличена, если в публичном API представлена новая обратно совместимая функциональность.
  8. Мажорная версия X.y.z должна быть увеличена, если в публичном API есть обратно несовместимые изменения. Минорная и патч-версия обнуляются.
  9. Предрелизная версия может быть обозначена добавлением дефиса и серией разделённых точкой идентификаторов, следующих сразу за патч-версией.
  10. Сборочные метаданные могут быть обозначены добавлением знака плюс и ряда разделённых точкой идентификаторов.

Примеры версий:

  • 0.1.0 — версия стадии начальной разработки
  • 4.42.2 — обычная стабильная версия
  • 1.0.0-aplha.1 — версия для альфа тестирования
  • 1.2.3-rc1 — release candidate
  • 1.0.0-beta.4+202405222303 — версия с метаданными сборки