На http://semver.org/, который, по моему мнению, является наиболее широко используемым соглашением при версионировании, рекомендуется увеличивать основной номер версии, когда вводится изменение, которое нарушает / модифицирует API.
Есть два связанных сценария, которые я не вижу, как применять это руководство:
- Что если мой код не предлагает API? Как мне сделать версию моего кода?
- Что если мой код начнет предлагать API на поздней стадии его разработки?
semantic-versioning
Марио
источник
источник
Ответы:
Semver в основном заботится о версиях библиотек и пакетов таким образом, чтобы избежать адских зависимостей, в различных воплощениях. Тем не менее, идея, лежащая в основе Semver, может быть распространена на все виды программ - любой фрагмент кода имеет какой-то пользовательский интерфейс или он довольно бесполезен.
Используя пример потребительского программного обеспечения, такого как текстовый процессор:
Однако многие проблемы, которые пытается решить Semver, не существуют за пределами области управления зависимостями. В потребительских приложениях версия - это не только версия, но и маркетинговый актив.
Firefox и Chrome выпускают новые версии сравнительно часто и увеличивают номер своей основной версии при каждом выпуске. Это приводит к смехотворно высоким номерам версий (сейчас им по 30). Браузер с более высоким номером версии должен быть просто лучше, чем браузер с более низким номером версии, верно?
Основной номер версии операционной системы Apple OS X стал частью названия (X - 10 в римских цифрах), что делает младший номер версии эффективным номером основной версии.
В операционной системе Ubuntu используется схема управления версиями year.month.patchlevel. Это позволяет легко помнить, сколько лет вашей ОС, но гораздо сложнее выяснить, какие версии совместимы, и как долго длится поддержка каждой версии.
Ядро Linux изменило номер версии с 2.6.39 до 3.0.0, потому что оно
39
становилось немного большим, и в ознаменование 20-летия Linux.Легендарная система набора текста TeX Дональда Кнута использует номер версии, который, начиная с версии 3, сходится к π, добавляя еще одну цифру в каждом выпуске: 3.14159265…. Это показывает, как система приближается к совершенству. Аналогично, система Metafont сходится к e : 2.7182818….
Таким образом, Semver плохо обслуживает многие приложения. Выберите схему управления версиями, которая подходит вашим пользователям (независимо от того, являются ли эти пользователи коллегами-программистами или потребителями), и придерживайтесь ее.
источник