Семантическое управление версиями: обнаружена ошибка во всех версиях моего модуля, где исправить и обновить версию? - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь понять семантическое управление версиями. В настоящее время мой модуль имеет 2 основные версии, как показано ниже.

1.0.0, 1.1.0, 1.1.1, 1.1.2 .... 2.0.0, 2.1.0

Итак, у меня есть несколько вопросов:

  1. Нашли одну ошибку во всех версиях, так что не нужно ли ее исправить во всех версиях и обновить версию? или исправьте и обновите версии, такие как 1.1.3 и 2.1.1

  2. Что если в новом выпуске есть функция и исправление ошибки, что мне нужно увеличить?

1 Ответ

0 голосов
/ 15 мая 2018

В случае сомнений всегда следует ссылаться на спецификацию SemVer .

Скажем, вы найдете ошибку в следующих наборах функций:

1.0.x
1.1.x
1.3.x
2.0.x
2.1.x

В каждом случаеисправление ошибки для этого уровня функции будет выглядеть следующим образом:

1.0.x+1
1.1.x+1
1.3.x+1
2.0.x+1
2.1.x+1

Где x - это наивысший номер патча для каждого из наборов функций.

Решите, нужно ли поддерживать более ранние версии сисправление ошибок.В какой-то момент большинство команд ограничивают работу на нижнем уровне исправлениями ошибок и возвращаются только к двум или трем второстепенным релизам в каждой основной серии, которую они все еще поддерживают.Весьма обычно останавливать все работы версии 1 после одного или двух выпусков в серии версий 2.

Semver 2.0.0 # 7 указывает:

НезначительноеВерсия Y (xYz | x> 0) ДОЛЖНА быть увеличена, если в общедоступный API введена новая, обратно совместимая функциональность.Он ДОЛЖЕН быть увеличен, если какая-либо публичная функция API помечена как устаревшая.Это МОЖЕТ быть увеличено, если в частный код будут введены существенные новые функциональные возможности или улучшения.Это МОЖЕТ включать изменения уровня патча.Версия патча ДОЛЖНА быть сброшена на 0 при увеличении вспомогательной версии.

По сути, вы повышаете значение Minor или Major в зависимости от того, добавили ли вы функции обратного компатации или внесли критические изменения.Вы можете включить все исправления ошибок и новые функции, которые вы хотите в одном выпуске.Все нижние поля версии сбрасываются в ноль при повышении значения Major или Minor.

...