Что обычно обозначают числа в версии (например, v1.9.0.1)?

Может быть, это глупый вопрос, но я всегда предполагал, что каждое число, обозначенное точкой, представляет собой отдельный компонент программного обеспечения. Если это правда, представляют ли они что-то другое? Я хотел бы начать назначать версии различным сборкам моего программного обеспечения, но я не совсем уверен, как это должно быть структурировано. Мое программное обеспечение состоит из пяти отдельных компонентов.


person BeachRunnerFred    schedule 15.09.2008    source источник
comment
Числа могут означать все, что вы хотите, хотя обычно они не связаны с отдельными компонентами, а скорее связаны с основными и второстепенными изменениями в сравнении с техническими изменениями в вашем выпуске. Ознакомьтесь с этими ресурсами: netbeans.org/community/guidelines/process.html en.wikipedia.org/wiki/Release_engineering freebsd.org/releases/6.0R/schedule.html Ура!   -  person Alvaro Rodriguez    schedule 15.09.2008


Ответы (28)


В версии 1.9.0.1:

  • 1: основные изменения (новый пользовательский интерфейс, множество новых функций, концептуальные изменения и т. д.)

  • 9: незначительное изменение (возможно, изменение окна поиска, добавление 1 функции, сборник исправлений ошибок)

  • 0: выпуск с исправлением ошибки

  • 1: номер сборки (если используется) - поэтому вы видите, что платформа .NET использует что-то вроде 2.0.4.2709.

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

person Dillie-O    schedule 15.09.2008
comment
Я использую именно это, но, в частности, номер сборки - это версия репозитория базы данных Subversion. - person Xetius; 16.09.2008
comment
Я использую то же самое, но без третьей цифры, что и в major.minor.build. Причина в том, что номер сборки в любом случае будет увеличиваться, так что это само по себе может идентифицировать факт исправления незначительных ошибок и т. Д. - person Mark Embling; 05.06.2009
comment
major.minor.revision (исправления ошибок) .build для меня имеет наибольший смысл. К сожалению, тип версии .NET определяется как major.minor.build.revision (возможно, потому, что Microsoft использовала только 3 места версии?). - person Kevin Kibler; 14.11.2009
comment
Я пытаюсь понять эту систему. Итак, вот вопрос: что, если в новом выпуске есть функция и исправление ошибки, что мне следует увеличить? - person iTurki; 16.07.2013
comment
@iturki Обычно больший номер версии имеет приоритет. Поэтому, если вы обновляете свое приложение с версии 1.4.23, вы просто обновляете его до версии 1.5.0, и все готово. Вы можете указать в примечаниях к выпуску, какие ошибки были исправлены. Точно так же вы можете обновиться с 1.4.23 до 2.0.0. - person Dillie-O; 17.07.2013
comment
@ Dillie-O, Последовательность, указанная в MSDN, имеет номер сборки на третьем месте и ревизию на четвертом, ‹основная версия›. ‹Второстепенная версия›. ‹Номер сборки›. ‹Revision›, msdn.microsoft.com/en-us/library/51ket42z (v = vs.110). aspx - person Adil; 04.02.2014
comment
в Windows 8, Microsoft представляет новый пользовательский интерфейс, но основная версия все еще 6 - person AminM; 16.12.2014
comment
Поскольку среда сборки может меняться, хорошо иметь и увеличивать # сборки для каждой автоматической сборки, даже если исходный код проекта не изменился. И независимо от того, можно ли это сделать, мы случайно будем ссылаться на дистрибутив по build #. Итак, я предпочитаю эту схему major.minor.revision.build. - person bvj; 20.05.2017
comment
Итак, для asp.net MVC. Если вы добавите новый пункт меню в боковое меню, будет ли это приращение основной или второстепенной версии? - person eaglei22; 09.06.2017
comment
@ eaglei22 - Я считаю это незначительным изменением, поскольку оно связано с изменением навигации. Не инкрементный (например, исправление ошибки или рефакторинг кода), но чуть более значительный - person Dillie-O; 13.06.2017

Существует спецификация семантического управления версиями

Это сводка версии 2.0.0:

Учитывая номер версии MAJOR.MINOR.PATCH, увеличьте:

  1. ОСНОВНАЯ версия при внесении несовместимых изменений API,
  2. МИНИМАЛЬНАЯ версия, когда вы добавляете функциональность обратно совместимым образом, и
  3. Версия PATCH при исправлении ошибок с обратной совместимостью.

Дополнительные метки для метаданных предварительной версии и сборки доступны как расширения для формата MAJOR.MINOR.PATCH.

person magyk    schedule 24.07.2014

Он может быть очень произвольным и различается от продукта к продукту. Например, в дистрибутиве Ubuntu 8.04 относится к апрелю 2008 года.

Обычно крайние левые (основные) числа указывают на основную версию, и чем дальше вы идете вправо, тем меньшие изменения вносятся.

person rkabir    schedule 15.09.2008

major.minor [.main maintenance [.build]]

http://en.wikipedia.org/wiki/Software_versioning#Numeric

person Søren Spelling Lund    schedule 15.09.2008

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

WordPress, например, работает в этом направлении:

1.6 -> 2.0 -> 2.0.1 -> 2.0.2 -> 2.1 -> 2.1.1 -> 2.2 ...

1.6–2.0 будет большим выпуском - функции, изменения интерфейса, серьезные изменения API, поломка некоторых шаблонов и плагинов 1.6 и т. Д. 2.0–2.0.1 будет второстепенным выпуском - возможно, исправляющим ошибку безопасности. 2.0.2–2.1 будет значительным выпуском - как правило, новыми функциями.

person ceejayoz    schedule 15.09.2008

Числа могут быть полезны, как описано в других ответах, но подумайте, как они могут быть довольно бессмысленными ... Солнце, вы знаете, SUN, java: 1.2, 1.3, 1.4 1.5 или 5, затем 6. В старом добром Apple II номера версий имели в виду Что-то. В настоящее время люди отказываются от номеров версий и пользуются глупыми именами, такими как «Feisty fig» (или что-то в этом роде), «hardy heron», «europa» и «ganymede». Конечно, это гораздо менее полезно, потому что у вас закончатся луны Юпитера до того, как вы перестанете менять программу, а поскольку нет очевидного порядка, вы не можете сказать, какая из них новее.

person Community    schedule 15.09.2008

В версии v1.9.0.1: Это явная схема управления версиями, используемая, когда вы не хотите использовать имя для предварительных выпусков или сборки, например -alpha, -beta.

1: Основная версия, которая может нарушить обратную совместимость

9: Добавление новых функций для поддержки вашего приложения вместе с обратной совместимостью с предыдущей версией.

0: Исправлены незначительные ошибки.

1: Номер сборки (номер предварительной версии)

но в настоящее время вы не найдете такой схемы управления версиями. Обратитесь к Семантическому управлению версиями [semver2.0] https://semver.org/

person Mehul Sancheti    schedule 04.12.2018

Номера версий обычно не представляют собой отдельные компоненты. Для некоторых людей / программного обеспечения цифры довольно произвольны. Для других разные части строки номера версии действительно представляют разные вещи. Например, в некоторых системах части номера версии увеличиваются при изменении формата файла. Таким образом, V 1.2.1 - это формат файла, совместимый со всеми другими версиями V 1.2 (1.2.2, 1.2.3 и т. Д.), Но не с V 1.3. В конечном итоге вам решать, какую схему вы хотите использовать.

person user9385    schedule 15.09.2008

Обычно это:

MajorVersion.MinorVersion.Revision.Build

person Jason Punyon    schedule 15.09.2008

Это зависит от обстоятельств, но обычно это major.minor.release.build.

Где:

  • major - это основная версия вашего программного обеспечения, например .NET 3.x
  • minor - это дополнительная версия вашего программного обеспечения, например .NET x.5.
  • release - это выпуск этой версии, обычно исправления ошибок увеличивают этот
  • build - это число, обозначающее количество выполненных сборок.

Так, например, 1.9.0.1 означает, что это версия 1.9 вашего программного обеспечения, следующая за 1.8 и 1.7 и т. Д., Где 1.7, 1.8 и 1.9 все так или иначе обычно добавляют небольшое количество новых функций наряду с исправлениями. Поскольку это x.x.0.x, это начальный выпуск 1.9 и первая сборка этой версии.

Вы также можете найти полезную информацию в статье Википедии по этой теме.

person Lasse V. Karlsen    schedule 15.09.2008

Major.Minor Bugs

(Или какой-то вариант этого)

Ошибки обычно представляют собой исправления ошибок без каких-либо новых функций.

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

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

person emeryc    schedule 15.09.2008

Каждый выбирает, что ему делать с этими числами. У меня возникло искушение назвать релизы a.b.c, так как в любом случае это довольно глупо. При этом то, что я видел за последние 25 с лишним лет разработки, имеет тенденцию работать именно так. Допустим, у вас номер версии 1.2.3.

«1» указывает на «основную» версию. Обычно это первоначальный выпуск, большое изменение набора функций или переписывание значительных частей кода. Как только набор функций определен и хотя бы частично реализован, вы переходите к следующему номеру.

Цифра «2» указывает на выпуск в серии. Часто мы используем эту позицию, чтобы узнать о функциях, которых не было в последней крупной версии. Эта позиция (2) почти всегда указывает на добавление функции, обычно с исправлением ошибок.

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

За пределами "3" позиции? Я понятия не имею, почему люди делают такие вещи, это только сбивает с толку.

Примечательно, что некоторые из OSS выбрасывают все это из дурака. Например, Trac версии 10 на самом деле 0.10.X.X. Я думаю, что многие люди в мире OSS либо не уверены в себе, либо просто не хотят объявлять о том, что у них есть крупный релиз.

person Community    schedule 15.09.2008

release.major.minor.revision, как я предполагаю.
Но он может сильно различаться в зависимости от продукта.

person Fire Lancer    schedule 15.09.2008

Major.minor.point. строят обычно. Major и minor не требуют пояснений, point - это выпуск с несколькими незначительными исправлениями, а build - это просто идентификатор сборки.

person Serafina Brocious    schedule 15.09.2008
comment
Что такое идентификатор сборки? - person Darshan L; 27.08.2018

Ага. Основные выпуски добавляют большие новые функции, могут нарушать совместимость или иметь существенно разные зависимости и т. Д.

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

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

person Paweł Hajdan    schedule 15.09.2008

Из файла C # AssemblyInfo.cs вы можете увидеть следующее:

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
/ You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
person Thomas Jespersen    schedule 15.09.2008

Я думаю, что парадигма основного исправления release.minor release.bug довольно распространена.

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

person Will M    schedule 15.09.2008

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

Если возможно, предложите клиентам более простой номер версии.

person Mark Ransom    schedule 25.09.2008

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

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

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

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

Подробнее об обосновании я написал здесь.

person Craig P. Motlin    schedule 28.11.2010

Комбинация основных, второстепенных, исправлений, сборок, исправлений безопасности и т. Д.

Первые два - основные и второстепенные - остальные будут зависеть от проекта, компании, а иногда и сообщества. В таких ОС, как FreeBSD, у вас будет номер 1.9.0.1_number для обозначения исправления безопасности.

person Loren Segal    schedule 15.09.2008

Немного зависит от языка, например, Delphi и C # имеют разные значения.

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

Третье число может относиться к «действительно минорной» версии или ревизии. 1.0.1 - это, например, очень небольшое исправление для 1.0.0. Но он также может содержать номер версии из вашей системы управления версиями или постоянно увеличивающийся номер, который увеличивается с каждой сборкой. Или отметку даты.

Немного подробнее здесь. "официально" в .net четыре числа - это "Major.Minor.Build.Revision", тогда как в Delphi это "Major.Minor.Release.Build". Я использую Major.Minor.ReallyMinor.SubversionRev для управления версиями.

person Michael Stum    schedule 15.09.2008

Обычно номера имеют формат version.major.minor.hotfix, а не отдельные внутренние компоненты. Таким образом, v1.9.0.1 будет версией 1, основным выпуском 9 (v1), второстепенным выпуском (v1.9) 0, оперативным исправлением 1 (v1.9.0).

person Scott Bevington    schedule 15.09.2008

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

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

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

Последний номер - это обычно номер редакции. Часто это используется в процессе автоматической сборки или когда вы делаете «одноразовые» одноразовые сборки для тестирования.

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

person Bob King    schedule 15.09.2008

Номер версии сложного программного обеспечения представляет собой весь пакет и не зависит от номеров версий частей. Версия Gizmo 3.2.5 может содержать Foo версии 1.2.0 и Bar версии 9.5.4.

При создании номеров версий используйте их следующим образом:

  1. Первый номер - основной выпуск. Если вы вносите существенные изменения в пользовательский интерфейс или вам нужно сломать существующие интерфейсы (так, чтобы вашим пользователям пришлось изменить свой код интерфейса), вам следует перейти на новую основную версию.

  2. Второй номер должен указывать на то, что были добавлены новые функции или что-то работает по-другому внутри. (Например, база данных Oracle может решить использовать другую стратегию для извлечения данных, делая большую часть работы быстрее, а некоторые - медленнее.) Существующие интерфейсы должны продолжать работать, а пользовательский интерфейс должен быть узнаваемым.

  3. Дальнейшая нумерация версий зависит от человека, пишущего программное обеспечение - Oracle использует пять (!) Групп, т.е. версия Oracle - это что-то вроде 10.1.3.0.5. Начиная с третьей группы и ниже, вы должны вносить только исправления или незначительные изменения в функциональности.

person Sten Vesterli    schedule 15.09.2008

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

person BlackTigerX    schedule 15.09.2008

У каждой организации / группы есть свои стандарты. Важно то, что вы придерживаетесь того обозначения, которое выберете, иначе ваши клиенты будут сбиты с толку. Сказав, что я обычно использовал 3 числа:

x.yz.bbbbb. Где: x: - основная версия (основные новые функции) y: - это дополнительный номер версии (небольшие новые функции, небольшие улучшения без изменений пользовательского интерфейса) z: - это пакет обновления (в основном такой же, как xy, но с некоторыми исправлениями ошибок bbbb: - это номер сборки, который действительно виден только из окна «Информация» вместе с другими деталями для поддержки клиентов. bbbb - это бесплатный формат, и каждый продукт может использовать его собственный.

person Vasco Duarte    schedule 15.09.2008

Вот что мы используем:

  1. Первое число = общая эпоха системы. Меняется каждые пару лет и обычно представляет собой фундаментальное изменение технологии или клиентских функций, либо того и другого.
  2. Второе число = версия схемы базы данных. Увеличение этого числа требует миграции базы данных и, следовательно, является значительным изменением (или системы реплицируются, поэтому изменение структуры базы данных требует тщательного процесса обновления). Сбрасывается в 0 при изменении первого числа.
  3. Третье число = изменение только программного обеспечения. Обычно это может быть реализовано от клиента к клиенту, поскольку схема базы данных не изменяется. Сбрасывается в ноль при изменении второго числа.
  4. Номер версии Subversion. Мы заполняем его автоматически при сборке с помощью инструмента TortoiseSVN. Это число никогда не сбрасывается, а постоянно увеличивается. Используя это, мы всегда можем воссоздать любую версию.

Эта система хорошо нам служит, потому что у каждого номера есть четкая и важная функция. Я видел, как другие команды борются с вопросом о главном / второстепенном числе (насколько большое изменение является основным), и я не вижу в этом пользы. Если вам не нужно отслеживать изменения в базе данных, просто выберите номер версии из 3 или 2 цифр и упростите жизнь!

person Ewan Makepeace    schedule 15.09.2008

версия: v1.9.0.1

куда-

. v - это аббревиатура версии. Это варьируется от компании к компании в зависимости от номенклатуры, принятой в его организации. Он может молчать в некоторых организациях, например 1.9.0.1

. 1 указывает основную версию, будет обновляться при изменении архитектуры в стеках приложений, инфраструктуре (платформе) или открытом сетевом интерфейсе

. 9 incates minor, будет обновляться при таких действиях, как добавление новых компонентов, таких как ui, api, database и т. Д .; под специфической архитектурой

. 0 указывает на функцию, будет обновляться при любых улучшениях в существующих компонентах (пользовательский интерфейс, API, база данных и т. Д.)

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

person Ashish Kumar    schedule 26.06.2020