Я понимаю, что Microsoft использует этот шаблон при создании версий своих продуктов: Major.Minor.Build.Revision.
Major меняется, когда «разработчики» хотят показать, что в программном обеспечении произошли большие изменения и обратная совместимость не может быть предположена. Может быть, сделан серьезный переписывание кода.
Незначительное число представляет собой значительное улучшение с целью обратной совместимости.
Номер сборки - небольшое изменение, например повторная компиляция того же источника.
Ревизия используется для исправления дыры в безопасности и должна быть полностью взаимозаменяемой. И сборка, и редакция не являются обязательными. Эта информация основана на Класс версии MSDN.
Как вы редактируете свои проекты и почему вы делаете их именно так?





Я использую major.minor.point.revision, где точка - это выпуск с исправлением ошибок, а ревизия - это ревизия репозитория. Это просто и хорошо работает.
Обычно мы делаем major.minor [.main maintenance [.build]] там, где я работаю, но, похоже, это немного варьируется в зависимости от проекта.
Мажор / минор такой же, как вы упомянули. обслуживание будет увеличиваться для небольших исправлений (ошибок) и сборки при каждом запуске сервера сборки.
Я просто делаю Major.minor. Поскольку я единственный разработчик (иногда получаю помощь), работающий над веб-приложением, большинству людей наплевать на мелкие исправления, которые я делаю. Поэтому я просто перебираю второстепенные версии, добавляя новые функции и номера основных версий, когда делаю громадные изменения / обновления. В противном случае я просто игнорирую мелкие исправления, касающиеся номеров версий (хотя у меня есть номера ревизий Subversion, если мне нужно обратиться за собой).
Я работаю над множеством небольших проектов и лично считаю это полезным.
PatchNumber.DateMonthYear
Это для небольших веб-инструментов, где пользователи могут видеть, когда было последнее обновление и как часто оно обновлялось.
PatchNumber - это количество выпущенных выпусков, а остальное используется, чтобы показать пользователям, когда оно было опубликовано.
Я часто вижу Xyz, где X - год после выпуска, а yz - месяц года. Т.е. 201 - это январь, через 2 года после релиза. Т.е. когда продукт запускается в мае, его первый выпуск - 105. Выпуск в феврале следующего года - 202.
Обычно мы редактируем наши проекты на основе текущей даты выпуска, YYYY.MM.DD. *, и позволяем автоматически генерировать номер сборки, например, если бы у нас был выпуск сегодня, это был бы 2008.9.26.BUILD.
Просто у меня есть номер. Первый выпуск - 001. Третья бета-версия второго выпуска - 002b3 и так далее. Это только для личных нужд, у меня на самом деле нет ничего «выпущенного» на данный момент, так что это все теория.
Мне лично нравится использовать схему, которая фокусируется на уровне обратной совместимости, которую могут ожидать пользователи проекта / продукта:
До 1.0:
После 1.0:
Использование совместимости в качестве центрального пункта в номере версии позволяет пользователям, особенно если продукт является библиотекой, легче судить о том, могут ли они ожидать плавного обновления и обновления безопасно или нет.
Major.minor.patch.build причем патч является исправлением или выпуском патча.
Если вы можете получить QA через SVN и находитесь на SVN, вы можете использовать ревизию svn HEAD в качестве номера сборки. Таким образом, каждая сборка описывает, откуда она взялась с точки зрения управления версиями и что входит в сборку. Это означает, что у вас будут сборки с пробелами (1.0.0.1, 1.0.0.34 ....)
Я начал использовать псевдоподобный формат Ubuntu: Y.MMDD
Это помогает по нескольким причинам:
По этой второй точке (рубин и рейк):
def serial(t)
t = Time.now.utc if not t.instance_of?(Time)
t.strftime("%Y").to_i - 2000 + t.strftime("0.%m%d").to_f
end
serial(Time.now) #=> 8.0926
serial(Time.now.utc) #=> 8.0927
ПРИМЕЧАНИЕ: t.strftime ("% Y.% m% d"). to_f - 2000 работает с неточностями с плавающей запятой: 8.09269999999992
Major.Minor.BugFix.SVNRevision
например: 3.5.2.31578
В 80-х мне нравился способ создания версий компилятора Clipper в Нантакете:
Машинка для стрижки зимняя 1984
Клипер Лето 1985
Машинка для стрижки зимних 1985
Машинка для стрижки осень 1986
Клипер, лето 1987
Ну и накладки ....
[слезы на глазах]
Семантическое управление версиями вышло на сцену с тех пор, как я написал этот ответ: semver.org