Автор перевода: Daniel_Cortez
Оригинальный текст: https://kalcor.site/post/my-attempt-...ioning-system/
Примечания переводчика:- Оригинал статьи взят с сайта kalcor.site. Обратите внимание, что этот сайт является "пародийным блогом" и не имеет никакого отношения к настоящему Kalcor'у.
- Сначала я хотел поместить тему в раздел "Флейм", но в "Новостях SA-MP" уже есть пара тем с интервью с Kalcor'ом, да и эта тема по большей части относится как лично к Kalcor'у, так и ко всему проекту SA-MP в целом, поэтому я оставлю её в разделе "Новости SA-MP".
Введение
Если вы когда-нибудь слышали про SA-MP (San Andreas Mutliplayer), вы наверняка уже знакомы с системой нумерации версий, которую я создал.
Я думаю, что эта система версий куда лучше
Semver (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 - возможно самая лучшая система нумерации версий, которую вы когда-либо встретите. Я прав. И если вы думаете, что я не прав - это вы не правы.