Остальные ответы только наполовину правы. Номера версий имеют значение, которое вы им даете, но они также имеют значение, которое им дают другие. Ваше собственное значение действительно не имеет значения, так как вы не будете там, чтобы исправить своих пользователей. Если они думают, что переход с 2,9 на 3,0 - это огромный скачок, то они так и сделают. Если они боятся использовать версии x.0, то они не будут. Если они используются для нечетных выпусков, являющихся альфа-версиями, они не будут их использовать.
Как бы мне не хотелось это говорить, номера версий - это маркетинговый инструмент. Они говорят что-то пользователю о выпуске, поэтому вы должны учитывать это при выборе номеров версий.
Проблема в том, что номера версий означают разные вещи для разных людей. Есть некоторые вещи, которые вы можете предсказать. Как я упоминал выше, люди будут подозревать релизы x.0. Они ожидают больших изменений с 2.x до 3.x. Если вы хотите попробовать сыграть, что пришло, продолжайте.
Есть два существенных атрибута номеров версий. Во-первых, они всегда должны идти вверх. Во-вторых, они должны легко сортироваться. Первое очевидно, но второе часто нарушается. Рассмотрим версию 2.9 -> 2.10. Численно говоря, 2,9 больше, чем 2,10. Вы должны учитывать их основные / второстепенные номера версий для правильной сортировки. Из этого следует путаница относительно того, следует ли 2.10 или 3.0 за 2.9. Даже если мы знаем правила сортировки, это все равно кажется неправильным. По этой причине я всегда дополняю свои версии. 2.09 сопровождается 2.10. Он сортируется правильно как по числу, так и по точечной паре.
Это все еще оставляет нас с пользователем, пытающимся угадать значение от номера версии, как нумерологи, просеивающие выигрышные номера лотереи. Вы можете попробовать сыграть в эту игру или оставить ее. Зачем вообще использовать пунктирную пару? Используйте целое число. Это однозначно. Это сортирует тривиально. Это не дает ложного смысла пользователю зацепиться за.
Я могу пойти лучше. Существует четкое значение, которое вы можете дать номеру версии, что-то полезное. У нас есть проблема в мире CPAN людей, которые не обновляют свои модули, потому что они используют версию 1.03, а последняя версия - 1.07. Зачем обновлять? То, что это не показывает, - то, что было четыре года между 1.03 и 1.07. Microsoft поняла, что именно поэтому мы покупаем Office 2009 вместо Office 12 (если вы не выпускаете часто, это может привести вас в замешательство, кому нужна Windows 98 в 2001 году?) Это прямо в номере версии. «Виджеты 2007» говорит вам, может быть, вам стоит поискать обновление.
Я использовал даты ISO в качестве версий. Если вы выпустили сегодня, это будет версия 20090309. Если вам нужно было выпустить два за один день, отметьте час и минуту в конце: 20090309.2051. Это легко. Это всегда идет вверх. Он передает какое-то однозначное значение пользователю о выпуске. Вот пример .
Я сейчас использую Семантическое управление версиями . Он использует пунктирную тройку для передачи трех важных частей информации. API был сломан? Были ли добавлены функции? Это просто исправление ошибки? Пользователь должен знать, что ваш проект использует семантические версии, что является недостатком по сравнению с версиями дат ISO. Преимущество заключается в типе информации, которую она передает, и в том, что она четко определена.