Версии проектов - QualitySolution/QSProjects GitHub Wiki

Принятая нумерация версий в проектах QS.

Максимальная длинна версии X.Y.B.R

X.Y обязательные для отображения, остальные при отличии от 0.

X - Главная версия программы, при явной и продолжительной бете устанавливаем в 0. Далее увеличиваем на 1 в основном по маркетинговым и эстетическим соображениям, когда нужно показать значительные изменения в программе.

Y - Основная изменяемая часть версии. Для большинства проектов это достаточно крупное изменение функционала, затрагивающее не совместимые с предыдущей версией изменения в базе. Переход к следующий цифре, требует обновление базы. Клиенты с предыдущей цифрой не смогут работать с базой новой версии. В продуктовых проектах мы для каждого варианта X.Y создаем ветку в release/X.Y, что позволяет нам осуществлять долгосрочную поддержку выпущенных версий параллельно работе над новыми.

B - Номер релиза или билда, цифра увеличивается при выпуске любых релизов обратно совместимых с версией базы указанной в X.Y, при изменении версии база может обновляться, путем добавления полей или информации, но с обновленной базой должны работать все версии программы X.Y.

R - Чисто вспомогательный номер, для выпуска небольших или внутренних релизов, например когда внесены незначительные изменений и релиз выпускается без публикации новости или когда выпускаются Hot Fix релизы, возможно для определенных клиентов. В публичных выпусках цифры в позиции R почти всегда пропускаются.

Примеры нумерации

0.1, 0.2 и т.д. - Бета версии нового продукта когда еще не реализована полностью основная функциональность. Но программу пользователям уже отдаем.

1.0 - Первый публичный релиз

1.0.1 - Следующая версия не затрагивающая изменения в базе

1.0.2 - Следующая версия возможно с выпуском микро-обновление базы, не ломая обратную совместимость, с обновленной базой должны уметь работать все 1.0

1.0.2.1 - Хот фикс какой то критичной ошибки в недавно выложенной версии 1.0.2, не пишем отдельную новость, просто быстрый фикс который нужно исправить.

1.0.2.2 - Выпустили исправление для одного из клиентов, всем пользователям его выкладывать смысла нет. Они получат его в следующей версии например в 1.0.3.

1.1 - Следующей значительный релиз с обратно несовместимыми изменениями в базе.

2.0 - Кардинальные изменения в программе, например переход на WPF.