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

Вот как это бывает.

Вариант 1. Целые числа: по старинке, по-крупному

Когда новую версию пилят долго, с пафосом, и выпускают раз в год или в пятилетку — ставят просто число.

CorelDRAW 11, Photoshop 7, Windows 3.1 — всё в духе: «Вот вам большая обновка, уважайте».

Никаких мелочей, только хардкор.

Вариант 2. Десятичная дробь: немного апгрейда — немного версии

Тут всё чуть сложнее. Первый релиз — 1.0. Добавили пару кнопок — 1.1. Переделали половину интерфейса — уже 2.0.

Простой способ дать понять: было что-то, стало лучше. Но не так радикально, чтобы менять название. Удобно.

Маркетологи любят — звучит серьёзно.

Вариант 3. Последовательные числа: когда версия — как хроника

Здесь уже настоящее мясо. Формат Major.Minor.Patch, иногда с хвостом — 1.4.2-rc1.

  • Первое число (major) — всё переделали, старые файлы не открываются, интерфейс — как в другой вселенной.
  • Второе (minor) — функционал допилили, багов стало меньше, но ничего критичного.
  • Третье (patch) — пофиксили одну строчку кода, но релиз же — надо показать, что работаем.
  • Четвёртое (build/micro) — когда даже патч перепатчили.

Сюда часто прилетают ещё и стадии разработки: alpha, beta, rc, rtm, ga. Понимать их надо так:

  • alpha — «держится на костылях»
  • beta — «почти готово, но может бахнуть»
  • rc — «если багов не найдёте, пускаем в прод»
  • rtm — «отдали на завод, дальше только багфиксы»
  • ga — «ну вот, держите»

Вариант 4. Нумерация по годам: Microsoft style

Прямо в лоб: Windows 98, Office 2016, AutoCAD 2024. Год — это и версия, и маркетинг.

Удобно: никто не путается. Проблема — если за год ничего не сделали, а релиз нужен. Тогда выпускают новый пакет с тем же функционалом, но с новой обложкой.

Но работает.

Вариант 5. Буквы и магия: чтобы выглядело солидно

Некоторые не парятся с цифрами и просто лепят буквы, как в Delphi XE, Android Pie, macOS Ventura.

Это когда цифры уже ничего не значат, и надо просто продавать ощущение нового. Маркетологи в восторге, программисты — тихо матерятся.

Почему вообще всё это важно?

  • Порядок в хаосе: версионность — это ваша карта в болоте изменений.
  • Для поддержки: если баг в версии 1.3.7, а ты уже на 2.0.1 — вопросы к тебе уже не по адресу.
  • Для доверия: у тебя версия 0.1.2, а у конкурента 5.6 — даже если ваш код лучше, клиенту это не очевидно.
  • Для командной работы: когда у каждого своя сборка — нумерация спасает от войны.

А что используешь ты?

Если твой проект ещё дышит и обновляется — пора решить, как ты будешь метить свои релизы. Сколько бы ты ни писал «fix», если у тебя всё «версия 1.0», никто не узнает, сколько крови и кофе в неё влито. 

Так что не ленись, ставь версию. И пусть даже это будет 0.0.1, но пусть будет честной.