Что обычно представляют собой числа в версии (т. е. v1.9.0. 1)?
может быть, это глупый вопрос, но я всегда предполагал, что каждое число, обозначенное точкой, представляет собой один компонент программного обеспечения. Если это правда, они когда-нибудь представляют что-то другое? Я хотел бы начать назначать версии для разных сборок моего программного обеспечения, но я не совсем уверен, как это должно быть структурировано. Мое программное обеспечение имеет пять различных компонентов.
28 ответов:
в версии 1.9.0.1:
1: основной пересмотр (новый пользовательский интерфейс, множество новых функций, концептуальные изменения и т. д.)
9: незначительная ревизия (возможно, изменение в поле поиска, добавлена 1 функция, коллекция исправлений ошибок)
0: Исправлена ошибка выхода
1: Номер сборки(если используется) - вот почему вы видите, что .NET framework использует что-то вроде 2.0.4.2709
вы не найдете много приложений, идущих до четырех уровней, 3 обычно достаточно.
есть спецификация семантического управления версиями
Это резюме версии 2.0:
учитывая номер версии MAJOR.НЕЗНАЧИТЕЛЬНЫЙ.Патч, увеличьте значение:
MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.
дополнительные метки для метаданных предварительного выпуска и сборки доступны в виде расширения до майора.НЕЗНАЧИТЕЛЬНЫЙ.Формат патча.
Он может быть весьма произвольным, и отличается от продукта к продукту. Например, в дистрибутиве Ubuntu 8.04 относится к 2008 году.Апрель
обычно самые левые (главные) числа указывают на крупный релиз, и чем дальше вы идете вправо, тем меньше изменений.
номера могут быть полезны, как описано в других ответах, но подумайте, как они могут быть достаточно бессмысленны... Солнце, вы знаете солнце, java: 1.2, 1.3, 1.4 1.5 или 5, затем 6. В старой доброй версии Apple II номера что-то значили. В настоящее время люди отказываются от номеров версий и идут с глупыми именами, такими как "Feisty fig" (или что-то в этом роде) и "hardy heron", "europa" и "ganymede". Конечно, это гораздо менее полезно, потому что, вы собираетесь запустить из лун Юпитера перед вами прекратите менять программу, и поскольку нет очевидного заказа, вы не можете сказать, что новее.
чем больше очков, тем более мелкие релиза. Нет никакого реального твердого стандарта за этим - могут означать разные вещи, основанные на том, что решают сопровождающие проекта.
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 будет a незначительный релиз-возможно, исправление ошибки безопасности. 2.0.2-2.1 будет значительным релизом-новые функции, как правило.
числа могут означать все, что вы хотите, хотя они обычно не связаны с отдельными компонентами, а скорее с основными и незначительными изменениями в вашем выпуске.
проверьте эти resources:
http://www.netbeans.org/community/guidelines/process.html
http://en.wikipedia.org/wiki/Release_engineering
http://www.freebsd.org/releases/6.0R/schedule.htmlУра
номера версий обычно не представляют отдельные компоненты. Для некоторых людей/программного обеспечения цифры довольно произвольны. Для других разные части строки номера версии представляют разные вещи. Например, некоторые системы увеличивают часть номера версии при изменении формата файла. Таким образом, V 1.2.1-это формат файла, совместимый со всеми другими версиями V 1.2 (1.2.2, 1.2.3 и т. д.), но не с V 1.3. В конечном счете, это зависит от вас, какую схему вы хотите использовать.
Это зависит, но типичным представлением является представление майора.незначительный.освобождать.строй.
где:
- основные является основной версией вашего программного обеспечения, думаю, .NET 3.x
- несовершеннолетний это небольшая версия вашего программного обеспечения, думаю, .NET x. 5
- релиз является выпуском этой версии, как правило, исправления будут увеличивать это
- build это число, которое обозначает количество выполненных сборок.
Так, например, 1.9.0.1, означает, что это версия 1.9 программного обеспечения, после 1,8 и 1,7, и т. д. где 1.7, 1.8 и 1.9 все в некотором роде обычно добавляют небольшое количество новых функций наряду с исправлениями ошибок. Так как это x.x.0.x, это начальная версия 1.9, и это первая сборка этой версии.
вы также можете найти хорошую информацию о статья Википедии о тема.
майора.Незначительный.Баги
(или некоторые вариации на этом)
ошибки, как правило, исправления ошибок без каких-либо новых функций.
незначительное изменение, которое добавляет новую функциональность, но не изменяет программу каким-либо серьезным образом.
Major-это изменение в программе, которое либо нарушает старую функциональность, либо настолько велико, что оно каким-то образом меняет то, как пользователи должны использовать программу.
из 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.*")]
релиз.основной.незначительный.пересмотр был бы моим предположением.
Но он может сильно различаться между продуктами.
майора.незначительный.точка.строят обычно. Major и minor не требуют пояснений, point-это релиз для нескольких незначительных исправлений, а build-это просто идентификатор сборки.
Юп. Основные выпуски добавляют большие, новые функции, могут нарушать совместимость или иметь значительно отличающиеся зависимости и т. д.
незначительные релизы также добавляют функции, но они меньше, иногда урезанные портированные версии из бета-версии major.
Если есть третий компонент номер версии, это обычно для важных исправлений ошибок и исправлений безопасности. Если их больше, это действительно так сильно зависит от продукта, что трудно дать общий ответ.
каждый выбирает, что он хочет сделать с этими числами. У меня было искушение назвать релизы a.b.c, так как это довольно глупо в любом случае. Тем не менее, то, что я видел за последние 25+ лет развития, имеет тенденцию работать таким образом. Допустим, ваш номер версии 1.2.3.
"1 "означает" основную " ревизию. Обычно это начальный релиз, большое изменение набора функций или переписывание значительных частей кода. Как только набор функций определен и по крайней мере частично реализовано переходите к следующему номеру.
"2" указывает на выпуск в пределах серии. Часто мы используем эту позицию, чтобы догнать функции, которые не сделали это в последнем крупном выпуске. Эта позиция (2) почти всегда указывает на добавление функции, обычно с исправлениями ошибок.
"3" в большинстве магазинов указывает на выпуск патча/исправление ошибок. Почти никогда, по крайней мере на коммерческой стороне, это указывает на значительную функцию add. Если функции отображаются в положении 3 тогда это, вероятно, потому, что кто-то что-то проверил, прежде чем мы узнали, что нам нужно сделать выпуск исправления ошибок.
за пределами позиции "3"? Я понятия не имею, почему люди делают такие вещи, это просто становится более запутанным.
особенно некоторые из ОСС там бросает все это из wack. Например, Trac версии 10 на самом деле 0.10.X. X. Я думаю, что многие люди в мире OSS либо не уверены в себе, либо просто не хотят объявлять, что у них есть крупный релиз.
парадигма основного выпуска.незначительный выпуск.исправление ошибок довольно распространено, я думаю.
в некоторых контрактах на поддержку предприятий существует $ $ $ (или нарушение обязательств по контракту), связанных с тем, как обозначается конкретный выпуск. Например, контракт может предоставить клиенту право на некоторое количество основных релизов в течение определенного периода времени, или обещать, что будет меньше, чем x количество незначительных релизов в период, или что поддержка будет по-прежнему доступна для такого количества выпуск. Конечно, независимо от того, сколько слов вложено в контракт, чтобы объяснить, что такое крупный релиз по сравнению с незначительным релизом, он всегда субъективен, и всегда будут серые зоны – что приводит к возможности того, что поставщик программного обеспечения может играть в систему, чтобы победить такие договорные положения.
в случае библиотеки, номер версии говорит о уровень совместимости между двумя выпусками, и, таким образом, насколько сложно обновление будет.
Исправлена ошибка релиз должен сохранить двоичный источник, и совместимость сериализации.
незначительные релизы означают разные вещи для разных проектов, но обычно им не нужно сохранять совместимость с исходным кодом.
основные номера версий могут сломать все три формы.
Я написал больше об обосновании здесь.
комбинация майора, минора, патча, сборки, патча безопасности и т. д.
первые два являются основными и второстепенными-- остальное будет зависеть от проекта, компании и иногда сообщества. В ОС, таких как FreeBSD, у вас будет 1.9.0.1_number для представления патча безопасности.
немного зависит от языка, например, Delphi и C# имеют разные значения.
обычно первые два числа представляют собой основную и второстепенную версию, т. е. 1.0 для первого реального выпуска, 1.1 для некоторых важных исправлений и незначительных новых функций, 2.0 для большого нового выпуска функций.
третье число может относиться к" действительно незначительной " версии или ревизии. 1.0.1-это просто небольшое исправление для 1.0.0 например. Но он также может нести номер ревизии от ваша система управления версиями или постоянно увеличивающееся число, которое увеличивается с каждой сборкой. Или метка даты.
немного более подробно здесь. "официально", в .net, 4 числа являются " основными.Незначительный.Строить.Ревизия", тогда как в Delphi есть " майор.Незначительный.Освобождать.Строить." Я использую " майор.Незначительный.- Действительно, майнор.SubversionRev " для моей версии.
обычно тогда число находится в формате версии.основной.незначительный.исправление, а не отдельные внутренние компоненты. Таким образом, v1.9.0.1 будет версия 1, основной выпуск 9 (v1), незначительный выпуск (v1.9) 0, горячее исправление 1 (v1.9.0).
первый номер обычно называется основным номером версии. Он в основном используется для обозначения значительных изменений между сборками (т. е. когда вы добавляете много новых функций, вы увеличиваете основную версию). Компоненты с разными основными версиями одного и того же продукта, вероятно, несовместимы.
следующий номер-это номер дополнительной версии. Это может представлять некоторые новые функции, или ряд исправлений и мелких изменений архитектуры. Компоненты из одного и того же продукта которые отличаются незначительным номером версии могут или не могут работать вместе и, вероятно, не должны.
следующий обычно называется номером сборки. Это может быть увеличено ежедневно или с каждой "выпущенной" сборкой, или с каждой сборкой вообще. Могут быть только небольшие различия между двумя компонентами, которые отличаются только номером сборки и обычно могут хорошо работать вместе.
конечное число обычно является номером ревизии. Часто это используется автоматической сборкой процесс, или когда вы делаете "одноразовые" одноразовые сборки для тестирования.
при увеличении номера версии зависит от вас, но они всегда должны инкремент или оставайся такой же. Все компоненты могут иметь один и тот же номер версии или только увеличивать номер версии для измененных компонентов.
номер версии сложного программного обеспечения представляет собой весь пакет и не зависит от номеров версий деталей. Гизмо версии 3.2.5 может содержать Foo версии 1.2.0 и бар версии 9.5.4.
при создании номеров версий используйте их следующим образом:
первый номер является основным релизом. Если вы вносите значительные изменения в пользовательский интерфейс или вам нужно сломать существующие интерфейсы (так что вашим пользователям придется изменить их код интерфейса), вы должны перейти к новой основной версии.
второе число должно указывать на то, что новые функции были добавлены или что-то работает по-другому внутри. (Например, база данных Oracle может решить использовать другую стратегию для извлечения данных, делая большинство вещей быстрее, а некоторые вещи медленнее.) Существующие интерфейсы должны продолжать работать, и пользовательский интерфейс должен быть узнаваемым.
нумерация версий далее до человек, пишущий программное обеспечение - Oracle использует пять (!) группы, т. е.. версия Oracle-это что-то вроде 10.1.3.0.5. Начиная с третьей группы, вы должны вводить только исправления или незначительные изменения в функциональности.
те, которые отличаются меньше, будут первыми двумя, для майора.незначительный, после этого это может быть что угодно: от сборки, ревизии, выпуска до любых пользовательских алгоритмов (например, в некоторых продуктах MS)
организация/группа имеет свой собственный стандарт. Важно то, что вы придерживаетесь любой нотации, которую вы выбираете, иначе ваши клиенты будут смущены. Сказав, что я использовал обычно 3 числа:
х.УГ.bbbbb. Где: x: является ли основная версия (основные новые функции) y: является ли второстепенным номером версии (небольшие новые функции, небольшие улучшения без изменений пользовательского интерфейса) z: это пакет обновления (в основном такой же, как x. y, но с некоторыми исправлениями ошибок bbbb: это номер сборки и только действительно видно из "О" с другими деталями для поддержки клиентов. bbbb-это бесплатный формат, и каждый продукт может использовать его самостоятельно.
вот что мы используем:
- первый номер = общая системная эра. Изменения каждые пару лет и, как правило, представляет собой фундаментальное изменение в технологии, или клиентских функций или обоих.
- второе число = пересмотр схемы базы данных. Увеличение этого числа требует миграции базы данных и поэтому является значительным изменением (или системы реплицируются и поэтому изменение структуры базы данных требует тщательного процесса обновления). Сбрасывается в 0, если первое число изменения.
- третий номер = программное обеспечение только изменить. Обычно это может быть реализовано на клиентской основе, поскольку схема базы данных не изменяется. Сбрасывается до нуля, если изменяется второе число.
- номер версии Subversion. Мы заполняем это автоматически при сборке с помощью инструмента TortoiseSVN. Это число никогда не сбрасывается,но постоянно увеличивается. Используя это, мы всегда можем воссоздать любую версию.
эта система служит нам хорошо, потому что каждый номер имеет ясная и важная функция. Я видел, как другие команды борются с вопросом о главном числе/второстепенном номере (насколько велико изменение), и я не вижу в этом пользы. Если вам не нужно отслеживать изменения в базе данных сразу зайти на 3 или 2-значный номер версии, и сделать жизнь проще!
люди не всегда распознают тонкую разницу между номерами версий, такими как 2.1, 2.0.1 или 2.10 - спросите человека технической поддержки, сколько раз у них были проблемы с этим. Разработчики ориентированы на детали и знакомы с иерархическими структурами, так что это слепое пятно для нас.
Если это вообще возможно, предоставьте своим клиентам более простой номер версии.