Версионирование YDB
Релизы YDB именуются версией, представляющей собой строку, состоящую из нескольких компонентов. В зависимости от контекста часть находящихся справа компонентов может быть опущена.
Упорядоченный список компонентов:
- Две последние цифры года выпуска;
- Порядковый номер мажорной версии внутри года;
- Порядковый номер минорной версии внутри мажорной;
- Номер патча внутри минорной версии;
- Тип релиза, например
testing,stableилиlts.
Первые три компонента образуют базовую версию релиза, например 25.2.1. Четвёртый компонент и тип уточняют конкретную сборку, например 25.1.4.7 или 25.1.4.7-stable. Номер патча и тип не влияют на правила совместимости версий.
Таким образом, мажорные релизы обычно идентифицируются двумя компонентами, например 25.1. Минорные релизы — тремя компонентами, например 25.1.4. Полная версия включает номер патча и при необходимости тип релиза.
Список доступных версий можно получить на странице загрузки. Релизная политика YDB описана более детально в статье Управление релизами в разделе документации для разработчиков YDB. Схема релизных веток — в разделе Общая схема работы с ветками.
Совместимость версий
Совместимыми для обновления являются все минорные версии в рамках одной мажорной версии. Мажорные версии совместимы последовательно. Для обновления на следующую мажорную версию предварительно следует обновиться до последнего доступного минорного релиза текущей мажорной версии. Например:
X.Y.*.* → X.Y.*.*— обновление возможно, все минорные версии в рамках одной мажорной совместимы.X.Y.Z.*(последняя доступнаяX.Y.*.*) →X.Y+1.*.*- обновление возможно, мажорные версии последовательны.X.Y.*.*→X.Y+2.*.*— обновление невозможно, мажорные версии непоследовательны.X.Y.*.* → X.Y-2.*.*— обновление невозможно, мажорные версии непоследовательны.
Важно
Также в любом случае нельзя откатываться более чем на 2 мажорные версии назад относительно хотя бы раз установленной версии, так как настолько старая версия может не знать, как работать с данными на дисках, записанными текущей.
Примеры совместимости версий
v.25.1.3.2->v.25.1.5.5- обновление возможноv.25.1.5.5->v.25.2.3.1- обновление возможно (гдеv25.1.5.*последняя доступная минорная версия вv.25.1)v.25.1.4.1->v.25.2.3.1- обновление невозможно, необходимо сначала обновиться до последней минорной версии (v.25.1.5.*)v.25.1.5.5->v.25.3.5.3- обновление невозможно, необходимо сначала обновиться до следующей мажорной версии (v.25.2.*.*).
Формальное описание возможных версий
<valid-version> ::= <version-core> "-" <version-type>
<version-core> ::= <year> "." <major> "." <minor> "." <patch>
<version-type> ::= "testing" | "stable" | "lts"
<year> ::= <positive digit> <digit>
<major> ::= <positive digit>
<minor> ::= <digits>
<patch> ::= <digits>
<digit> ::= "0" | <positive digit>
<positive digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<digits> ::= <digit> | <digit> <digits>
Примеры полных версий
- Тестовая версия:
25.1.4.7-testing - Стабильная версия:
25.1.4.7-stable - LTS версия:
25.1.4.7-lts