tyzhnenko
@tyzhnenko
System Administrator, DevOps, QA Engineer

Какие способы нумерации версий существуют?

Привет всем.

Назрел вопрос про версии продуктов. Поиск в сети и на хабре к очевидным ответам не привел :(, возможно из-за того, что не понимаю(не знаю) что искать. Поэтому решил обратиться к уважаемому сообществу. Надеюсь ответы будут полезны многим начинающим разработчикам.

Как правильно(какие есть варианты) нумерации версий ПО? Собственно интересуют некие правила(законы) по которым идет нумерация версий ПО. Например:

Если версия продукта состоит из X.Y.Z, то
Z — увеличивается при исправлении багов
Y — при изменении, может добавлении функциональности
X — когда выходит полностью обновленный код или что-то типа того

Вот бы найти где почитать разные типы(виды) нумерации версий и примеры их применения. Может кто поделился своим опытом, какие плюсы и подводные камни были при использовании?

Спасибо за помощь!

P.S. Теги по которым можно найти полезный материал по этой теме — приветствуются.
  • Вопрос задан
  • 11047 просмотров
Пригласить эксперта
Ответы на вопрос 5
DmZ
@DmZ
Почитайте про семантическое версионирование SemVer как один из подходов.
Также интересно посмотреть как к версиям относятся различные пакетные менеджеры, например RPM: Naming Guidelines
Ответ написан
KirAmp
@KirAmp
На ум приходит следующее:
версия.билд.дата (как у ms office)
версия.подверсия.билд (как у ms windows)
Ответ написан
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Не скажу что гуру, но возможно и мой взгляд на версирование поможет чем-то.

Версирование ПО помогает:

1) Маркетингу
2) Саппорту
3) Разработчику
4) Тестировщику

п.1. Маркетолог может сказать «Ув. пользователь мы выпустили новую мажорную версию, в этой версии продукта много багфиксов и много вкусных фич.».
п.2. Специалист саппорта может иметь возможность отвечать более предметно на проблемы, к примеру «По лиц.политике одна мажорная версия действительна в течении… месяцев, Ваша версия устарела. Вам стоит связаться с отделом продаж для Обновления» или «Мы не можем воспроизвести Вашу ситуацию какая версия продукта у Вас стоит?»
п.3 Разработчик увидев задачу в баг-трекере может сказать «Я чего-то не пойму, для stable-ветки комиты есть, баг исправлен. В какой конкретно версии это воспроизводится?»
п.4. Тестировщик также как и разработчик может утверждать «Я протестировал фикс баги на новой версии…, а также версии… проблема не воспроизводится, баг пофикшен»

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

Из этого вытекают след. вопросы:
1) Какова судьба софта проданного покупателю?
2) Нужно ли хранить историю билдов и версий софта или достаточно иметь один stable-разлив?
3) Как Вы хотите сообщать тех.специалистам о том что Ваша программа изменилась координально и возможно она не совместима с форматами пред. версий или же она просто получила доп. баг-фиксы и несколько новых фич?
4) Хотите ли вы говорить покупателям что Вы реально круто поработали и им пора бы заплатить денег Вам чтобы Вашу работу оценить?

Как правило, видя изменение мажорной версии многие спецы задаются вопросами:
1) Совместима ли новая версия с прежними форматами?
2) Изменился ли GUI и нужно ли обновлять инструкции использования в корпоративной документации нашей компании?
3) Надо ли проводить приемочное испытание?

И ряд. др. важных вопросов

Также в строку о версии иногда включается и ревизия из системы контроля версии, это сильно помогает разработчикам не раскрывая ничего о внутренней структуре ПО.
Ответ написан
@anitspam
немного оффтопа из недавнего обновления «нетбинса» :)
Common Scripting Language API (new) [2.28.1.2.1.1.6 -> 2.28.2.2.1.1.6]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы