2010-09-29 4 views
68

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

Как это сделать?

Как это, что некоторые программы получает две версии, как 1.3v1.1

или некоторые из них 3 номера - 4.0.1

Что метод за всем этим?

Спасибо.

ответ

130

Обычный метод я видел XYZ, которая в целом соответствует major.minor.patch:

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

Другие варианты используют номера строений в качестве дополнительного идентификатора. Таким образом, у вас может быть большое количество для X.Y.Z.build, если у вас есть много версий, проверенных между релизами. Я использую пару пакетов, которые идентифицируются по году/месяцу или году/выпуску. Таким образом, выпуск в сентябре 2010 года может быть 2010.9 или 2010.3 для третьего выпуска этого года.

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

Для «1.3v1.1», которые могут быть двумя разными внутренними продуктами, что-то, что будет разделяемой библиотекой/кодовой базой, которая отличается от основного продукта; что может указывать версию 1.3 для основного продукта и версию 1.1 внутренней библиотеки/пакета.

11

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

+1

на самом деле эта статья написана не очень хорошо, но у меня есть лучшая идея, спасибо. –

38

Возможно, вы найдете Semantic Versioning Specification.

+1

SemVer должен стать предлагаемым стандартом и переиздан в формате RFC. – alecov

+1

Что касается того, что делать, если ваш код не предлагает публичный API, см. Http://programmers.stackexchange.com/questions/255190/how-does-semantic-versioning-apply-to-programs-without-api – cyclingLinguist

+0

Это полезно только в контексте программных библиотек. – Kais

Смежные вопросы