Разбирание в номерах версий программного обеспечения. v1.0.0.1 [закрывается]

Я не уверен в других способах этого делать, но вот как вы это делаете в Prototype (учебник JSON) .

new Ajax.Request('/some_url', {
  method:'get',
  requestHeaders: {Accept: 'application/json'},
  onSuccess: function(transport){
    var json = transport.responseText.evalJSON(true);
  }
});

Вызов evalJSON () с истинным как аргумент санирует входящую строку.

21
задан a.l 9 May 2012 в 16:49
поделиться

14 ответов

Я начинаю любить год. Выпуск [.Build] соглашение, что некоторые приложения (например, По необходимости) использование. В основном это просто говорит год, в котором Вы выпускаете, и последовательность в течение того года. Так 2008.1 была бы первая версия, и если бы Вы выпустили другого месяцы или три позже, она перешла бы в 2 008,2.

преимущество этой схемы нет никакой подразумеваемой "величины" выпуска, где Вы входите в аргументы о том, является ли функция достаточно главной для гарантирования увеличения старшей версии или нет.

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

29
ответ дан Greg Whitfield 29 November 2019 в 06:31
поделиться

Для прошлых шести основных версий мы использовали M.0.m.b, где M является основной версией, m является вспомогательной версией, и b является номером сборки. Таким образом, выпущенные версии включали 6.0.2, 7.0.1..., до 11.0.0. Не спрашивайте, почему второе число всегда 0; я спросил неоднократно, и никто действительно не знает. У нас не было ненулевого там, так как 5.5 был выпущен в 1996.

0
ответ дан Graeme Perrow 29 November 2019 в 06:31
поделиться

Для внутренней разработки мы используем следующий формат.

[Program #] . [Year] . [Month] . [Release # of this app within the month]

, Например, если я выпускаю приложение № 15 сегодня, и это - третье обновление в этом месяце, тогда моя версия # будет

15.2008.9.3

, Это полностью нестандартно, но это полезно для нас.

0
ответ дан JosephStyons 29 November 2019 в 06:31
поделиться

Мне нравится Year.Month.Day. Итак, v2009.6.8 будет «версией» этого поста. Невозможно продублировать (разумно), и это очень ясно, когда что-то более новое издание. Вы также можете сбросить десятичные дроби и сделать это v20090608.

1
ответ дан Frank V 29 November 2019 в 06:31
поделиться

Я использую V.R.M, например, 2.5.1

В (версия), изменения являются основной перезаписью
R (пересмотр), изменения являются существенно новыми функциями или исправлениями ошибок
М (модификация), изменения являются незначительным bux, фиксирует (опечатки, и т.д.)

, я иногда использую число фиксации SVN на конце также.

1
ответ дан RichH 29 November 2019 в 06:31
поделиться

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

, Мое единственное правило разработано для уменьшения ошибок в создании отчетов что число: все четыре числа должны быть 1 цифрой [только 119].

1.1.2.3

в порядке, но

1.0.1.23

не. Клиенты, вероятно, сообщат об обоих числах (устно, по крайней мере) как "one-one-two-three".

номера сборки Автопостепенного увеличения часто приводят к номерам версий как

1.0.1.12537

, который действительно не помогает, также.

2
ответ дан MusiGenesis 29 November 2019 в 06:31
поделиться

Люди склонны хотеть сделать это намного тяжелее, чем это действительно должно быть. Если Ваш продукт имеет только единственное долговечное ответвление, просто назовите последовательные версии их номером сборки. Если у Вас есть некоторые "незначительные исправления ошибок, свободны, но необходимо заплатить за главные новые версии", тогда используйте 1.0, 1.1... 1.n, 2.0, 2.1... и т.д.

, Если Вы не можете сразу выяснить, каковы A, B, C, и D в Вашем примере, тогда Вам, очевидно, не нужны они.

2
ответ дан Mark Bessey 29 November 2019 в 06:31
поделиться

Наша политика:

  • А - Значительный (> 25%) изменения или дополнения в функциональности или интерфейсе.
  • B - небольшие изменения или дополнения в функциональности или интерфейсе.
  • C - незначительные изменения, которые повреждают интерфейс.
  • D - прикрепляет к сборке, которые не изменяют интерфейс.
4
ответ дан James Curran 29 November 2019 в 06:31
поделиться

Я думаю, что существует два способа ответить на этот вопрос, и они являются не совсем дополнительными.

  1. Технический: Инкрементные версии на основе технических задач. Пример: D является номером сборки, C является Повторение, B является незначительным выпуском, A является главной версией. Определение незначительных и главных версий действительно субъективно, но могло быть связанными вещами как изменения в базовой архитектуре.
  2. Маркетинг: Инкрементные версии на основе того, сколько "новых" или "полезных" функций предоставляется Вашим клиентам. Можно также связать номера версий с политикой обновления... Изменения в A требуют, чтобы пользователь купил лицензию обновления, тогда как другие изменения не делают.

нижняя строка, я думаю, находит модель, которая работает на Вас и Ваших клиентов. Я видел некоторые случаи, где даже версии являются общедоступными выпусками, и нечетные версии считают бетой или выпусками dev. Я видел некоторые продукты, которые игнорируют C и D все вместе.

Тогда существует пример от Micrsoft, где единственное рациональное объяснение к номерам версий для.Net Платформы состоит в том, что Маркетинг был включен.

5
ответ дан ckramer 29 November 2019 в 06:31
поделиться

Я обычно использую D в качестве счетчика сборок (автоматическое увеличение компилятором). Я увеличиваю C каждый раз, когда сборка публикуется как «общедоступная» (не каждая сборка выпускается). A и B используются в качестве номера основной / вспомогательной версии и меняются. вручную.

7
ответ дан Axeman 29 November 2019 в 06:31
поделиться

Хорошая и нетехническая схема просто использует дату сборки в следующем формате:

YYYY.MM.DD.BuildNumber

Где BuildNumber - это либо непрерывное число (список изменений), либо просто начинается с 1 каждый день.

Примеры: 2008.03.24.1 или 2008.03.24.14503

Это в основном для внутренних выпусков, в общедоступных выпусках будет напечатана версия 2008.03, если вы выпускаете не чаще, чем раз в месяц. Сопровождающие выпуски помечаются как 2008.03a, 2008.03b и так далее. Они должны редко проходить «с», но если это так, это хороший показатель, вам нужны лучшие процедуры контроля качества и / или тестирования.

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

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

2
ответ дан steffenj 29 November 2019 в 06:31
поделиться

По-моему, почти любая схема номера выпуска может быть сделана работать более или менее нормально. Система я работаю над номерами версий использования такой как 11,50. UC3, где U указывает на 32-разрядный Unix и C3, является незначительным пересмотром (почините пакет), число; другие буквы используются для других типов платформы. (Я не рекомендовал бы эту схему, но она работает.)

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

  • не выпускают ту же версию дважды - как только версия 1.0.0 выпущена любому, это никогда не может повторно выпускаться.
  • Номера выпуска должны увеличиться монотонно. Таким образом, код в версии 1.0.1 или 1.1.0 или 2.0.0 должен всегда быть позже, чем версия 1.0.0, 1.0.9, или 1.4.3 (соответственно).

Теперь, на практике, люди действительно должны выпустить, фиксирует для более старых версий, в то время как более новые версии доступны - см. GCC, например:

  • GCC 3.4.6 был выпущен после 4.0.0, 4.1.0 (и AFAICR 4.2.0), но это продолжает функциональность GCC 3.4.x вместо того, чтобы добавить дополнительные опции, добавленные к GCC 4.x.

Так, необходимо создать нумерацию версии тщательно.

Еще одна точка, в которую я твердо верю:

  • номер релизной версии не связан с CM (VCS) нумерация версии системы, за исключением тривиальных программ. Любая серьезная часть программного обеспечения больше чем с одним основным исходным файлом будет иметь номер версии не связанным с версией любого единственного файла.

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

Для материала я работаю с, номер версии является чисто политическим решением.

Кстати, я знаю о программном обеспечении, которое прошло выпуски от версии 1.00 до 9.53, но это тогда измененное на 2,80. Это было грубой ошибкой - продиктованный путем маркетинга. Предоставленный, версия 4.x программного обеспечения, is/was устаревший, таким образом, это сразу не сделало для беспорядка, но версия 5.x программного обеспечения все еще используется и продана, и изменения уже достигли 3.50. Я очень взволнован о том, что мой код, который должен работать с обоими 5.x (старый стиль) и 5.x (новый стиль), собирается сделать, когда неизбежный конфликт происходит. Я предполагаю, что должен надеяться, что они будут тянуть резину при изменении на 5.x, пока старое 5.x действительно не будет мертво - но я не оптимистичен. Я также использую искусственный номер версии, такой как 9,60, для представления этих 3,50 кодов, так, чтобы я мог сделать нормальный if VERSION > 900 тестирование, вместо того, чтобы иметь необходимость сделать: if (VERSION >= 900 || (VERSION >= 280 && VERSION < 400), где я представляю версию 9.00 900. И затем существует существенное изменение, представленное в версии 3.00.xC3 - моей схеме не удается обнаружить изменения на незначительном уровне выпуска... ворчат... ворчание...

NB: Eric Raymond обеспечивает ПРАКТИЧЕСКОЕ РУКОВОДСТВО Практики Релиза программного обеспечения включая (связанный) раздел по именованию (нумерации) выпуски.

8
ответ дан Jonathan Leffler 29 November 2019 в 06:31
поделиться

В конце концов, все это действительно субъективно и зависит только от вас / вашей команды.

Просто взгляните уже на все ответы - все очень разные.

Лично Я использую Major.Minor. *. * - где Visual Studio автоматически подставляет номер версии / сборки. Это используется и там, где я работаю.

1
ответ дан 29 November 2019 в 06:31
поделиться

Хорошая удобная для пользователя схема управления версиями, созданная на старой Mac OS, описана в этой технической заметке Apple: http://developer.apple.com/technotes/tn/tn1132. html

1
ответ дан 29 November 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: