Это действительно зависит от проекта; некоторые проекты даже не выпускают версию 1.0.
Разработчики MAME не намерены выпускать версию 1.0 своей программы-эмулятора. Аргумент в том, что он никогда не будет действительно «закончен», потому что всегда будет больше аркадных игр. За версией 0.99 последовала версия 0.100 (минорная версия 100> 99). Аналогичным образом за Xfire 1.99 последовало 1.100. После 6 лет разработки eMule еще даже не достиг версии 0.50. Управление версиями программного обеспечения в Википедии
Один из популярных методов нумерации версий (который я начал использовать) - это семантическое управление версиями .
В соответствии с этой схемой номера версий и то, как они изменяются, передают значение о базовом коде и о том, что было изменено из одной версии в другую.
Некоторые цитаты, чтобы дать вам больше идей о том, как это работает и / или ответить на некоторые ваши вопросы:
Как я знаю, когда выпустить 1.0.0?
Если ваше программное обеспечение используется в производстве, оно должно быть уже 1.0.0. Если у вас есть стабильный API, от которого стали зависеть пользователи, вы должны быть 1.0.0. Если вы сильно беспокоитесь об обратной совместимости, вы, вероятно, уже должны быть 1.0.0.
Разве это не мешает быстрой разработке и быстрой итерации?
Основная версия ноль - все о быстрой разработке. Если вы меняете API каждый день, вы все равно должны быть в версии 0.xx или в отдельной ветке разработки, работающей над следующей основной версией.
Если даже самые незначительные назад несовместимые изменения в общедоступном API требуют значительного увеличения версии, разве я не получу очень быстро версию 42.0.0?
Это вопрос ответственного развития и предвидения. Несовместимые изменения не следует вводить слегка в программное обеспечение, которое имеет много зависимого кода. Стоимость обновления может быть значительной. Необходимость поднять основные версии для выпуска несовместимых изменений означает, что вы продумаете влияние своих изменений и оцените соотношение затрат и выгод.
Существуют также правила определения версий «альфа», «бета» и т. Д. Проверьте детали на http://semver.org/ .
[Edit] Еще одна интересная схема нумерации версий, которую использует MongoDB :
MongoDB использует нечетные версии для выпусков разработки.
В версии MongoDB 3 числа: ABC
- А является основной версией. Это будет редко меняться и означать очень большие изменения
- B номер выпуска. Это будет включать в себя множество изменений, включая функции и вещи, которые могут нарушить обратную совместимость. Четные B будут стабильными ветвями, а нечетные B будут развитием.
- C - это номер редакции, который будет использоваться для ошибок и проблем безопасности.
Например:
- 1.0.0: первый выпуск GA
- 1.0.x: исправление ошибок до 1.0.x - настоятельно рекомендуется обновить, очень небольшой риск
- 1.1.x: выпуск для разработки. это будет включать в себя новые функции, которые еще не полностью завершены и находятся в стадии разработки. Некоторые вещи могут отличаться от 1.0
- 1.2.x: второй выпуск GA. это будет кульминацией релиза 1.1.x.