Подтвердить что ты не робот

Какую версию нумерации вы рекомендуете?

Мой вопрос в том, какая версия-схема именования должна использоваться для какого типа проекта.

Очень распространенный файл major.minor.fix, но даже это может привести к 4-му числу (то есть Firefox 2.0.0.16). У некоторых есть модель, в которой нечетные числа указывают на версии для разработчиков и даже стабильные версии чисел. И всевозможные дополнения могут войти в микс, например -dev3, -rc1, SP2 и т.д.

Существуют причины предпочитать одну схему над другой и должны ли разные типы проектов (например, Open Source или Closed Source) иметь разные схемы именования версий?

4b9b3361

Ответ 1

Есть хорошие два для этого (плюс множество личных предпочтений, см. комментарий к религиозным войнам gizmo)

Для приложений public стандарт Major.Minor.Revision.Build лучше всего работает с IMO - публичные пользователи могут легко определить, какая версия программы у них есть, и в какой-то степени, насколько далеко устарели их версия.

Для приложений в доме, где пользователи никогда не запрашивали приложение, развертывание обрабатывается ИТ, а пользователи будут обращаться в службу поддержки, я нашел Year.Month.Day.Build лучше работать во многих ситуациях. Таким образом, этот номер версии может быть декодирован для предоставления более полезной информации в справочной системе, а затем в общедоступной схеме номеров версий.

Однако в конце дня я бы сделал одну рекомендацию превыше всего - использовать систему, которую вы можете сохранить согласованной. Если есть система, которую вы можете настроить / script, ваш компилятор будет автоматически использовать каждый раз, используйте это.

Самое худшее, что может случиться, это выпустить двоичные файлы с тем же номером версии, что и предыдущие, - я недавно занимался автоматическими отчетами об ошибках в сети (кто-то из приложений elses) и пришел к выводу, что Year.Month.Day.Build номера версий, показанные на основных дампах, где даже не отдаленно обновлено само приложение (само приложение использовало заставку с реальными числами, что, конечно же, не выводилось из двоичного файла, как можно было бы предположить). В результате у меня нет способа узнать, происходят ли аварийные дампы из двухлетнего двоичного кода (что указывает номер версии) или двухмесячного двоичного кода, и, таким образом, нет способа получить правильный исходный код (без контроля источника! )

Ответ 2

Вот что мы используем в нашей компании: Основной. Малый. Патч версия. Номер сборки.

Изменение Major включает полный цикл выпуска, включая участие в маркетинге и т.д. Это число контролируется силами вне R & D (например, в одном из мест, где я работал, маркетинг решил, что наша следующая версия будет "11" - для соответствия конкуренту. Мы были в версии 2 в то время:)).

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

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

Версия сборки используется, когда для клиента выпущена специальная версия, обычно с исправлением ошибки, характерным для него. Обычно это исправление будет свернуто для следующего патча или младшей версии (а Product Management обычно отмечает ошибку как "будет выпущена для патча 3" в нашей системе отслеживания).

Ответ 3

Наш отдел R & D использует 1.0.0.0.0.000: MAJOR.minor.patch.audience.critical_situation.build

Пожалуйста, пожалуйста, не делайте этого.

Ответ 5

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

На моей стороне, я использую схему X.Y.Z, все числа, где:

  • X указывают на изменение общедоступного API, которые вводят обратную несовместимость
  • Y указывают на добавление некоторых функций
  • Z указывает исправление (либо исправление ошибки, либо изменение внутренней структуры без влияния на функциональную)

В конце концов, я использую суффикс "Beta N", если мне нужна некоторая обратная связь от пользователей до официального выпуска. Нет суффикса "RC", поскольку никто не идеален, и всегда будут ошибки; -)

Ответ 6

Я лично предпочитаю MAJOR.MINOR.BUGFIX-SUFFIX, где SUFFIX dev для версий разработки (проверки контроля версий), rc1/rc2 для кандидатов на выпуск и без суффикса для версий выпуска.

Если у вас есть суффиксы для проверки разработки, возможно, даже с номером ревизии, нет необходимости делать их четными/нечетными, чтобы их не было.

Ответ 8

В случае библиотеки номер версии сообщает вам о уровне совместимости между двумя версиями и, следовательно, насколько сложно будет обновление.

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

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

Основные номера версий могут разбивать все три формы.

Я написал больше об обосновании здесь.

Ответ 9

Мы предпочитаем схему major. minor. milestone. revision - build, где:

  • major: Увеличение значительных архитектурных изменений или важных улучшений в возможностях.
  • minor: небольшие изменения и новые функции, которые не требуют архитектурных изменений.
  • milestone: указывает стабильность и зрелость кода:
    • 0 для разработки /pre -alpha
    • 1 для альфа
    • 2 для бета
    • 3 для кандидата на выпуск (RC)
    • 4 для окончательного/производственного выпуска
  • revision: Указывает номер выпуска, исправления или исправления.
  • build: уникальные ссылки на конкретные сборки или версии приложения. Номер сборки представляет собой последовательное целое число, обычно увеличиваемое при каждой сборке.

Примеры:

  • 1.4.2.0-798: первая бета-версия версии 1.4, созданная по номеру сборки 798.
  • 1.8.3.4-970: 1.8-RC4, созданный номером сборки 970.
  • 1.9.4.0-986: первый выпуск версии версии 1.9, созданный номером сборки 986.
  • 1.9.4.2-990: второй выпуск исправления версии 1.9, созданный номером сборки 990.

Так как выпуски prodcution всегда имеют 4 в своей третьей строке строки версии, эта цифра может быть удалена для выпуска выпуска.

Ответ 10

С Agile-технологиями разработки программного обеспечения и приложениями SaaS идея выпуска Major или Maison исчезла - выпуски выходят очень часто на регулярной основе, поэтому схема нумерации релизов, которая опирается на это различие, больше не полезна мне.

Моя компания использует схему нумерации, которая занимает последние 2 цифры года выпуска, за которым следует номер выпуска в течение этого года.

Итак, четвертый выпуск, начатый в 2012 году, будет 12.4.

После этого вы можете включить номер версии "исправления ошибок", но в идеале вы достаточно часто освобождаетесь, чтобы это не часто было необходимо - так "12.4.2".

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

Ответ 11

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

Ответ 12

Что мы здесь делали, это major.minor.platform.fix.

major. Мы увеличиваем это число, когда сохраненный файл из этой сборки больше не совместим с предыдущей сборкой.
Пример: файлы, сохраненные в версии 3.0.0.0, не будут совместимы с версией 2.5.0.0.

minor. Мы увеличиваем это число при добавлении новой функции. Эта функция должна быть видна пользователю. Не скрытая функция для разработчиков. Это число reset до 0, когда основной увеличивается.

платформа. Это платформа, которую мы используем для разработки.
Пример: 1 означает версию .net framework 3.5.

Исправить. Мы увеличиваем это число, когда в эту новую версию включены только исправления ошибок. Это число reset to 0, когда основной или младший увеличивается.

Ответ 13

Просто

Major.Minor.Revision.Build