Skip to content

Commit 6bc6475

Browse files
committed
Add page about RT version compatibility
1 parent 3c5afb6 commit 6bc6475

2 files changed

Lines changed: 37 additions & 0 deletions

File tree

src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ Robust Toolbox
104104
- [Automatic Client Zip (ACZ)](en/robust-toolbox/acz.md)
105105
- [Asset Packaging](en/robust-toolbox/asset-packaging.md)
106106
- [Publishing a new Robust Toolbox Version](en/robust-toolbox/publishing-robusttoolbox.md)
107+
- [Versioning & Compatibility](en/robust-toolbox/versioning-compatibility.md)
107108

108109
Space Station 14
109110
================
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Versioning & Compatibility
2+
3+
This page describes how RobustToolbox is versioned and what backwards-compatibility guarantees we make.
4+
5+
## Version numbers
6+
7+
Robust follows a [SemVer](https://semver.org/)-ish system. Version numbers are normally in the form `major.minor.patch`, where the following generally holds:
8+
9+
* Major version changes mean some form of breaking change for games using RT.
10+
* Minor version changes mean new features that are not directly a breaking change.
11+
* Patch version changes are bug fixes or other minor stuff.
12+
13+
We also sometimes publish experimental versions of the engine marked with suffix strings like `1.2.3-pvstest`. These versions are intended for the use of testing things on specific live servers and are not held to any particular stability guarantees. As such, you should not be using these unless you're in talks with engine maintainers. Also yes the way we use these probably isn't semver compatible.
14+
15+
## Compatibility guarantees
16+
17+
### Major versions
18+
19+
There are no general guarantees between major versions. We will do our best to document any breaking changes, provide instructions for updating, and not create any more pain than necessary.
20+
21+
### Minor versions
22+
23+
Minor versions should not change existing behavior in any way beyond likely-compatible bug fixes.
24+
25+
We do not guarantee the following:
26+
27+
* ABI-level stability: recompiling games may be required.
28+
* This notably means we may do things like move types between projects, add parameters to overloads, modify behavior of source generators, etc.
29+
* Game network compatibility: client and server must be on the same minor version.
30+
31+
### Patch versions
32+
33+
Patch versions should only contain bugfixes or other minor changes with no observable impact. They are generally network- and ABI-compatible between other patch versions on the same minor.
34+
35+
The launcher may roll client engine versions forward to a later patch version when necessary, for example to ensure compatibility with newer .NET versions.
36+

0 commit comments

Comments
 (0)