PDA

Просмотр полной версии : [Info] Kalcor: Мой подход к нумерации версий



Daniel_Cortez
11.09.2018, 23:59
Автор перевода: Daniel_Cortez (http://pro-pawn.ru/member.php?100-Daniel_Cortez)
Оригинальный текст: https://kalcor.site/post/my-attempt-at-a-versioning-system/
Примечания переводчика:
Оригинал статьи взят с сайта kalcor.site (https://kalcor.site). Обратите внимание, что этот сайт является "пародийным блогом" и не имеет никакого отношения к настоящему Kalcor'у.
Сначала я хотел поместить тему в раздел "Флейм", но в "Новостях SA-MP" уже есть пара тем (http://pro-pawn.ru/showthread.php?13680) с интервью (http://pro-pawn.ru/showthread.php?13679) с Kalcor'ом, да и эта тема по большей части относится как лично к Kalcor'у, так и ко всему проекту SA-MP в целом, поэтому я оставлю её в разделе "Новости SA-MP".



Введение

Если вы когда-нибудь слышали про SA-MP (San Andreas Mutliplayer), вы наверняка уже знакомы с системой нумерации версий, которую я создал.
Я думаю, что эта система версий куда лучше Semver (https://semver.org/lang/ru/) (Semantic Versioning) и любых других существующих систем версионирования.


Как это работает?

Нумерация начинается с 0.0 и номер должен быть 0.1, как только продукт станет пригодным к использованию и готовым к выходу.


Мажорные (крупные) релизы

Каждый раз, когда вы выпускаете новое крупное обновление, вы увеличиваете второй номер версии на 1. К примеру, 0.1 становится 0.2, 0.2 становится 0.3, и так далее...

Первый номер в версии не используется и присутствует чисто для вида. Не изменяйте его, это будет выглядеть не очень хорошо.


Минорные (небольшие) релизы

Вы написали пару новых функций или исправили один или два бага тут и там и решили сделать минорный релиз? Что ж, это просто замечательно!

Есть два способа нумерации минорных версий:
Способ первый: добавить дефис, после которого идёт символ "R" и номер минорного релиза. (Номера минорных релизов начинаются с 1.) Например, допустим, что текущий номер версии - 0.1. Если вы выпустите минорный релиз, он будет 0.1-R1. Просто, не так ли!?

Способ второй: добавить букву в конце версии, если её ещё нет, а если есть, то заменить её следующей буквой. Т.е. 0.1 после патча станет 0.1a. 0.1a после ещё одного патча станет 0.1b. Тем не менее, в английском алфавите только 26 букв. Что делать, если я дойду до буквы "z"? На самом деле всё просто: добавьте в конец ещё одну букву. Таким образом, 0.1z станет 0.1za, и так далее...

Если же у вас были проблемы с заучиванием алфавита в младшей школе, вы можете просто пропустить почти весь алфавит и перейти от "d" к "x". Это тоже абсолютно правильно.

Так какой же способ выбрать? Ответ прост: используйте такой способ, какой захотите сами, и не бойтесь переходить от одного к другому, когда вам вздумается, это не вызовет никакой путаницы или чего-либо ещё. Если захотите, можете даже использовать оба способа сразу (0.1zb-R28), всё это абсолютно правильно. Лично я предпочитаю использовать оба способа, поскольку так можно быть уверенным, что люди, не знающие наизусть алфавит, смогут запомнить номер текущего релиза и наоборот.


Релиз-кандидаты

Вы добавили кучу новых возможностей и исправили кучу багов, но боитесь, что ваши одержимые фанаты, которым никогда не хватит вас, не смогут этим всем насладиться? Что ж, пришло время для релиз-кандидата!

Релиз-кандидаты помечаются с помощью дефиса, после которого идёт "RC" и номер релиз-кандидата.

Релиз-кандидаты выходят после минорных релизов.


Отдельные ветки

Ваши одержимые фанаты абсолютно ненавидят релиз-кандидаты, но вы всё ещё хотите их выпускать? Вы можете переместить все RC в новую ветку!

Отдельные ветки помечаются с помощью дефиса, после которого идёт любое название, которое вы хотите дать ветке, заглавными буквами. Имя ветки идёт после мажорного номера релиза.

Допустим, текущая версия - 0.3zb-R28-RC6, и вы хотите переместить все релиз-кандидаты в отдельную ветку. 0.3zb-R28-RC6 станет 0.3BNzb-R28-RC6, где "BN" - это название ветки ("branch name"). Лучше всего сокращать название ветки до 2-3 символов, но на самом деле ограничений нет.

Любому типу релиза разрешается ломать обратную совместимость, в отличие от SemVer, где вы можете ломать совместимость только в мажорных релизах. Это одно из множества преимуществ KalVer (Kalcor Versioning) над SemVer.


Очень важное НЕ

Ни в коем случае НЕ увеличивайте номер версии больше 0.3. Переход к 4-му мажорному релизу приносит невезение вашему проекту и неотвратимую смерть всем его разработчикам. Если вы хотите продолжить выпускать обновления после 0.3, выпускайте минорные обновления.


Заключение

В заключение хотелось бы подытожить, что KalVer - возможно самая лучшая система нумерации версий, которую вы когда-либо встретите. Я прав. И если вы думаете, что я не прав - это вы не правы.

VVWVV
12.09.2018, 01:14
Все, теперь будут только это использовать)