Как вы версии ваших проектов? - PullRequest
16 голосов
/ 27 сентября 2008

Я понимаю, что Microsoft использует этот шаблон при создании версий своих продуктов: Major.Minor.Build.Revision.

Major изменяется, когда «разработчики» хотят показать, что в программном обеспечении произошли большие изменения, и нельзя предполагать обратную совместимость Возможно, основная перезапись кода завершена.

Незначительное число представляет собой значительное улучшение с целью обеспечения обратной совместимости.

Номер сборки - небольшое изменение, например, перекомпиляция того же источника.

Редакция используется для исправления дыры в безопасности и должна быть полностью взаимозаменяемой. И Build, и Revision являются необязательными. Эта информация основана на MSDN версии класса .

Как вы создаете версии своих проектов и почему вы их так называете?

Ответы [ 13 ]

8 голосов
/ 27 сентября 2008
7 голосов
/ 27 сентября 2008

Обычно мы выполняем Major.minor [.maintenance [.build]] там, где я работаю, но, похоже, он немного варьируется для проекта.

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

4 голосов
/ 27 сентября 2008

Мне лично нравится использовать схему, ориентированную на уровень обратной совместимости, которого могут ожидать пользователи проекта / продукта:

До 1.0:

  • 0.0.1 = Первый выпуск
  • 0 .-. X = Обратно совместимое обновление
  • 0.X.0 = Обратно несовместимое обновление

После 1.0:

  • -.-. X = Обновление без изменений интерфейса
  • -. X.0 = Обновление с добавлением обратно совместимых интерфейсов
  • X.0.0 = Обратно несовместимое обновление

Использование совместимости в качестве центрального пункта в номере версии облегчает пользователям, особенно если продукт является библиотекой, чтобы судить, могут ли они ожидать более плавного и безопасного обновления или нет.

2 голосов
/ 27 сентября 2008

Обычно мы делаем версии наших проектов на основе текущей даты выпуска, ГГГГ.ММ.ДД. *, и мы позволяем номеру сборки генерироваться автоматически, например, если бы у нас был выпуск сегодня, это был бы 2008.9.26.BUILD .

2 голосов
/ 27 сентября 2008

Я часто вижу Xyz, где X - год после номера выпуска, а yz - месяц года. То есть 201 январь, 2 года после выпуска. То есть когда продукт запускается в мае, его первый номер выпуска - 105. Выпуск в феврале следующего года - 202.

1 голос
/ 27 сентября 2008

Major.Minor.BugFix.SVNRevision

например: 3.5.2.31578

  • Версия SVN дает вам очень точный код, отправленный клиенту. Вы абсолютно уверены, что это исправление было или нет.
  • Это также помогает найти правильный PDB в случае, если у вас есть ошибка приложения. Просто сопоставьте версии SVN на сервере сборки, скопируйте PDB в папку EXE, откройте отладчик, и вы получите трассировку стека сбоев.
1 голос
/ 27 сентября 2008

Major.minor.patch.build с исправлением, являющимся исправлением или выпуском исправления.

Если вы можете получить QA и войти в SVN, вы можете использовать версию SVN HEAD в качестве номера сборки. Таким образом, каждая сборка описывает, откуда она взялась с точки зрения контроля версий и что находится в сборке. Это означает, что у вас будут сборки с пробелами (1.0.0.1, 1.0.0.34 ....)

1 голос
/ 27 сентября 2008

Я работаю над множеством небольших проектов, и лично я нашел это полезным.

PatchNumber.DateMonthYear

Это для небольших веб-инструментов, где пользователи могут видеть, когда было последнее обновление и как часто оно обновлялось.

PatchNumber - это количество выпусков, которые были сделаны, а остальные используются, чтобы показать пользователям, когда они были опубликованы.

1 голос
/ 27 сентября 2008

Я просто делаю Major.minor. Поскольку я работаю над веб-приложением (иногда помогаю), большинство людей не заботятся о мелких исправлениях, которые я делаю. Поэтому я просто перебираю второстепенные версии, добавляя новые функции и номера основных версий, когда делаю какие-то колоссальные изменения / обновления. В противном случае я просто игнорирую мелкие исправления, касающиеся номеров версий (хотя у меня есть номера ревизий Subversion, если мне нужно обратиться к себе).

1 голос
/ 27 сентября 2008

Я использую major.minor.point.revision, где point - это версия только для исправления ошибок, а revision - версия репозитория Это просто и хорошо работает.

...