Версионирование и совместимость
На этой странице описано, как версионируется RobustToolbox и какие гарантии обратной совместимости мы даём.
Номера версий
Robust следует SemVer-подобной системе. Номера версий обычно имеют форму major.minor.patch, где в целом выполняется следующее:
- Изменения мажорной версии означают некоторого рода нарушающее изменение для игр, использующих RT.
- Изменения минорной версии означают новые функции, которые не являются непосредственно нарушающим изменением.
- Изменения патч-версии — это исправления багов или другие мелкие вещи.
Мы также иногда публикуем экспериментальные версии движка, помеченные суффиксными строками вроде 1.2.3-pvstest. Эти версии предназначены для тестирования чего-либо на конкретных боевых серверах и не подпадают под какие-либо особые гарантии стабильности. Поэтому вам не следует их использовать, если только вы не ведёте переговоры с сопровождающими движка. А ещё да, то, как мы их используем, вероятно, несовместимо с semver.
Гарантии совместимости
Мажорные версии
Между мажорными версиями нет общих гарантий. Мы сделаем всё возможное, чтобы задокументировать любые нарушающие изменения, предоставить инструкции по обновлению и не создавать больше проблем, чем необходимо.
Минорные версии
Минорные версии не должны каким-либо образом менять существующее поведение сверх вероятно совместимых исправлений багов.
Мы не гарантируем следующее:
- Стабильность на уровне ABI: может потребоваться перекомпиляция игр.
- В частности, это означает, что мы можем делать такие вещи, как перемещение типов между проектами, добавление параметров к перегрузкам, изменение поведения генераторов исходного кода и т. д.
- Сетевая совместимость игры: клиент и сервер должны быть на одной минорной версии.
Патч-версии
Патч-версии должны содержать только исправления багов или другие незначительные изменения без наблюдаемого воздействия. Они, как правило, сетевые и ABI-совместимые между другими патч-версиями на одной минорной версии.
Лаунчер может продвигать версии движка клиента вперёд до более поздней патч-версии, когда это необходимо, например чтобы обеспечить совместимость с более новыми версиями .NET.