Семантическое управление версиями (для краткости называемое SemVer ) — это система управления версиями, которая развивается в течение последних нескольких лет. Благодаря тому, что новые плагины, надстройки, расширения и библиотеки создаются каждый день, универсальный способ создания версий проектов разработки программного обеспечения — это хорошая вещь, чтобы помочь нам отслеживать происходящее.
Что такое СемВер?
SemVer — это трехкомпонентная система в формате x.y.z
-
x
-
y
-
z
Итак, у вас есть: Major.Minor.Patch
Как работает SemVer?
SemVer использует правильные компоненты в нужное время. Поэтому определить, какой тип версии вы должны выпускать, очень просто.
Если вы в основном исправляете ошибки , то это будет классифицироваться как патч, и в этом случае вы должны поднять z
.
Если вы реализуете новые функции обратно-совместимым способом, то вы столкнетесь с y
потому что это то, что называется минорной версией.
С другой стороны, если вы реализуете новые вещи, которые могут сломать существующий API , вам нужно поднять x
потому что это основная версия.
Почему СемВер?
Потому что это имеет смысл. Если есть одна вещь, которую я узнал, так это то, что управление версиями без руководств в принципе ничего не значит. Переход на 4.2? В порядке Хорошо. Почему? Почему не 5? Почему не 4.1.1? Почему не 4.11? Почему бы не 4.1.oh-snap-new-version?
Следование строгим правилам помогает придать смысл номерам версий.
Например, если вы видите версию 1.3.37, то вы будете знать, что это первый основной выпуск, но уже было 3 вспомогательных версии с новыми функциями. Однако вы также заметите, что это 37-й патч в этой второстепенной версии, что означает, что в нем было много ошибок (маленьких или больших).
Также это очень помогает в управлении зависимостями . Допустим, вы строите библиотеку под названием Unicorn
По каким-то причинам у вас есть Rainbow
Когда вы впервые получаете свою библиотеку из коробки, Rainbow
Это означает, что вы можете указать Rainbow
Unicorn
Помните, как первое число является основным патчем с апокалиптическими изменениями? Если когда-нибудь Rainbow
Unicorn
Что нужно помнить
Теперь, когда вы знаете, что такое SemVer, давайте рассмотрим некоторые вещи, которые могут запутать людей, когда они впервые начнут его использовать.
Начинается с 0.1.0
При использовании SemVer следует отметить, что он начинается с 0.1.0, а не с 0.0.1, как можно было бы предположить. Если вы думаете об этом, это имеет смысл. Вы не начинаете с патча, вы начинаете с набора функций в качестве первого черновика для вашего проекта, следовательно, версия 0.1.0.
До 1.0.0 это только фаза разработки
Всякий раз, когда вы создаете новую часть программного обеспечения, всегда есть этап, на котором вы постоянно спрашиваете себя: когда я должен выпустить первую официальную основную версию?
Вот несколько советов, которые помогут вам ответить на этот вопрос: Если ваше программное обеспечение уже используется в производстве или у вас есть пользователи в зависимости от него, то у вас уже должна быть версия 1.0.0. Кроме того, если вы сильно беспокоитесь о нарушении текущего API, это также, вероятно, означает, что вы уже должны использовать 1.0.0.
В противном случае, имейте в виду, что версии ниже 1.0.0 — это в основном стремление к разработке, когда вы сосредотачиваетесь на том, чтобы все было сделано. До версии 1.0.0 вам не следует бояться ломать вещи, и вы будете делать все, что нужно, чтобы при достижении 1.0.0 он был стабильным.
О предварительных выпусках
Перед развертыванием основной версии вы обычно проделываете большую работу, которую необходимо проверять снова и снова, чтобы убедиться, что все в порядке. Это типичный момент, когда вы хотели бы получить предварительный релиз.
В SemVer предварительные выпуски могут быть определены путем добавления дефиса и идентификатора к версии. Например, предварительный релиз для версии 1.0.0 может быть 1.0.0-alpha.1. Затем, если потребуется другая сборка, она станет 1.0.0-alpha.2 и так далее.
Последние мысли
Если вы не используете SemVer, нет законных оснований не использовать его в вашем следующем проекте (или текущем проекте?). Это не только поможет сохранить чистоту и значимость, но также поможет другим людям, которые могут использовать ваш проект в качестве зависимости.