Как внести несовместимые изменения, оставаясь в основной нулевой версии? - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть большая личная библиотека программного обеспечения, над которой я работал и в настоящее время работаю.В настоящее время его версия 0.1.0.

Она недостаточно зрелая, чтобы иметь основную версию 1. Я продолжаю модифицировать код и вносить несовместимые изменения, которые заслуживают увеличения номера основной версии.В то же время некоторые другие мои библиотеки зависят от этой библиотеки и ссылаются на нее по номеру версии.

Если я внесу несовместимые изменения и не хочу увеличивать основную версию с 0 до 1, какя должен увеличить мой номер версии?

Веб-сайт SemVer не очень ясно об этом, он просто говорит:

Основная версия ноль (0.yz)для начального развития.Все может измениться в любое время.Публичный API не следует считать стабильным.

Означает ли «что-либо может измениться в любое время», что для основной версии 0 сделано исключение и что я могу изменить числа y и z, однакоМне нравится?

Например, если моя версия 0.1.0 и я внес несовместимое изменение, может ли новая версия с этим изменением быть 0.2.0?

Что говорят другие

На этом сайте там написано:

На самом деле, спецификация SemVer определяет, что все, что начинается с «0», не должнопримените любое из правил SemVer.

Другой сайт также предлагает увеличить младшую версию, если основная версия равна 0 и добавлены несовместимые изменения:

Таким образом, вы просто продолжаете через диапазон 0.xy, увеличивая y для каждого обратно-совместимого изменения и x для каждого несовместимого изменения.

1 Ответ

0 голосов
/ 01 марта 2019

Это зависит от вас, потому что

  • Если другие библиотеки зависят от вашего программного обеспечения, это означает, что у вашего программного обеспечения есть некоторые общедоступные API-интерфейсы, и если они есть ... Почему это уже не на 1.x.x версия?В конце концов ... почему так важно, чтобы ваша программа достигла версии 1.0.0 только после того, как она станет стабильной?Оно может начинаться с 3.0.0 или 4.0.0, как только оно достигнет стабильной версии ...
  • Ваше программное обеспечение не отделено мысленно от вашего более крупного проекта, потому что, на самом деле, вы посчитаете его "зрелым"только когда все программное обеспечение (состоящее из множества небольших библиотек) достигает «зрелой» версии.Но с технической точки зрения он уже отделен ?
  • Это правильно, что начиная с 0 вам не нужно строго придерживаться правил semver

Все вращается вокруг того, что считается«зрелый».Вы сказали, что ваше программное обеспечение не является зрелым, но что это значит?Что можно улучшить?Что это не покрывает все угловые случаи?Что это не на 100% проверено?

В конце: если вы не считаете это зрелым, продолжайте работу с версией 0.x.y и увеличьте младшую версию, но ваше незрелое программное обеспечение уже используется другими библиотеками, поэтому оно должнотеперь достигните 2.0.0 версии 10

...