Версионирование и совместимость

На этой странице описано, как версионируется RobustToolbox и какие гарантии обратной совместимости мы даём.

Номера версий

Robust следует SemVer-подобной системе. Номера версий обычно имеют форму major.minor.patch, где в целом выполняется следующее:

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

Мы также иногда публикуем экспериментальные версии движка, помеченные суффиксными строками вроде 1.2.3-pvstest. Эти версии предназначены для тестирования чего-либо на конкретных боевых серверах и не подпадают под какие-либо особые гарантии стабильности. Поэтому вам не следует их использовать, если только вы не ведёте переговоры с сопровождающими движка. А ещё да, то, как мы их используем, вероятно, несовместимо с semver.

Гарантии совместимости

Мажорные версии

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

Минорные версии

Минорные версии не должны каким-либо образом менять существующее поведение сверх вероятно совместимых исправлений багов.

Мы не гарантируем следующее:

  • Стабильность на уровне ABI: может потребоваться перекомпиляция игр.
    • В частности, это означает, что мы можем делать такие вещи, как перемещение типов между проектами, добавление параметров к перегрузкам, изменение поведения генераторов исходного кода и т. д.
  • Сетевая совместимость игры: клиент и сервер должны быть на одной минорной версии.

Патч-версии

Патч-версии должны содержать только исправления багов или другие незначительные изменения без наблюдаемого воздействия. Они, как правило, сетевые и ABI-совместимые между другими патч-версиями на одной минорной версии.

Лаунчер может продвигать версии движка клиента вперёд до более поздней патч-версии, когда это необходимо, например чтобы обеспечить совместимость с более новыми версиями .NET.

Subpages