Срочные изменения в предыдущем основном выпуске

Я ищу руководство для следующего сценария -

Предположим, что у нас есть следующие несколько производственных версий общедоступного API -

1.1.0

2.1.2

Если в исправлении версии "1.1.0" была обнаружена ошибка / дефект, который привел бы к критическому изменению, несовместимому с предыдущими версиями, как нужно было бы обрабатывать управление версиями? После выхода из строя критическое изменение потребует увеличения основной версии, поэтому "1.1.0" должен стать "2.0.0". Тем не менее, у нас уже есть следующая основная версия "2.1.2", с ее собственными изменениями.

Желательно ли пропустить числа между основными обновлениями версий, чтобы приспособиться к таким сценариям? то есть следующая запланированная основная версия после "1.0.0" должна была быть "3.0.0"?

Любые другие предложения?

1 ответ

поэтому "1.1.0" должен стать "2.0.0"

Не правда. Мало того, что у вас уже есть 2.0.0, спецификация semver не требует монотонности. Вы можете выпустить его как 3.0.0 или 100.0.0. Однако, как правило, именно здесь вы прекращаете поддержку серии 1.yz и предлагаете людям перейти на существующую версию 2.yz.

Другой вариант - объединить наборы функций 1.0.0 и 2.0.0 в 3.0.0.

ДОПОЛНЕНИЕ:

В прошлом вы сделали определенный выбор, который влияет на будущее развитие вашего фирменного продукта и вашу репутацию организации. Когда вы заявляете, что применяете семантическое управление версиями, вы НЕ ДОЛЖНЫ выпускать последние изменения, не увеличивая номер основной версии. Чем дольше вы придерживаетесь указанной семантики, тем больше ваши клиенты будут доверять вашему требованию.

В этом случае вы не подписывали никаких контрактов с органом по стандартизации, но, кроме того, никто из нас в SO не может проконсультировать вас о ваших текущих юридических обязательствах перед вашими клиентами. На этом этапе вам решать, будет ли строгое соблюдение semver отвечать интересам ваших клиентов или вашей организации.

За исключением любых договорных обязательств между вами и вашими клиентами, я бы посоветовал вам быть максимально прозрачными с ними, насколько это возможно. Объясните загадку брендинга и управления версиями и переименуйте ваш продукт 1.yz так, чтобы он мог придерживаться семантического управления версиями. Если у вас был продукт X, переименуйте его в X.Classic или что-то подобное.

Другие вопросы по тегам