0.1 1.0
Никогда не понимал зачем какой-либо разработке ставить версию меньше единицы.
Версия 0.1 Что-то вроде pre-alpha версии (полуночные релизы). Т.е. когда ещё не реализована вся функциональность продукта, или разработчик ещё только определяет какие возможность должна иметь программа. И кажется логичным не выпускать программу под первой версией. А выпустить версию номер ноль. Чтобы в будущем, наконец дойти до версии с полной фунциональностью – 1.0
Чтобы:
- публично выкладывать, вместо того, чтобы сразу завершить начатое (желание одобения)
- избежать негативных отзвов (бету будут ругать, хотя и понимают) (избежать боли)
- всё превращается в нескончаемую гонку за идеалом, появляются версии 0.99 , 0.21a , 0.21b+4 (ноль 21 b плюс 4).
Например, Wireshark, отличный сниффер. Но я не заметил особых отличий версий 0.8, 0.99 и 1.4.4 (потому что не использовал полную функциональность, неверно). При этом, например, версия 1.4.2 была жутко тормознутая, а уже 1.4.4 - просто воплощение скорости, учитывая java.
Есть и совсем позорные примеры: deskdo.yandex-nano.ru (не пользуюсь, просто для примера) – ну что это такое: β1.4 - бета 1.4, ужос (я бы понял 1.4beta).
Тем не менее.
Я всегда стараюсь ставить на новых разработках версию 1.0.0, даже без приставки beta.
Но я допускаю, что, если необходимая и достаточная функциональность не закончена, а данный модуль/класс уже надо использовать в другом коде, можно поставить версию <1 (в зависимости от стадии готовности 0.1-0.9). А, как только минимальная, базовая, необходимая и достаточная функциональность будет достигнута, пусть это даже был этап версии 0.7.0) – сразу поставить версию 1.0.0, и продолжать добавлять уже новые, дополнительные возможности в разработку.
И немного о major.minor[.maintenance] (1.0.0)
Я не собираюсь читать (сам) статью из википедии.
Скажу, что последняя цифра в версии (maintenance) определяет любые мелкие изменения, как правило соответствует одной строке в ChangeLog.txt. Средняя определяет более-менее значительные изменения функциональности (допустимо 1.9.0, 1.10.0, 1.11.0, т.к. это не стадия готовности major). Ну и первая (major) – кардинальные изменения (имеются в виду, конечно, не изменения совместимости, а новые возможности).