New Versioning Scheme - cortex-command-community/Cortex-Command-Community-Project GitHub Wiki
Announcement
Howdy!
As part of Pre6
, we're making changes to the way we version the game.
We're doing this primarily to make it easier to publish new versions of the game without breaking mods, and so we can release those versions more easily so you can play them faster!
Semantic Versioning
New releases of the game will adhere toSemantic Versioning uses version numbers in the form
X.Y.z
Where:
-
X
is the major version of the game.The major version changes when we make changes to the game that require mods to be updated to keep working. If a "breaking change" (one that breaks mod compatibility) is made, then the major version is bumped.
-
Y
is the minor version of the game.The minor version represents new features or content added to the game that don't break any mods. These are changes that preserve mod compatibility.
-
z
is the patch number.The patch version represents non-breaking bug fixes and improvements, that don't break mods or add any new content.
This means that instead of this release being labelled as
Pre6
we'll use the version number
v6.0.0
All future versions will follow this format.
SupportedGameVersion
property of mods is changing to use this format too.
The This means the game can be more flexible when checking if it supports running each mod. For old mods, this change will be handled by the converter, but if you want to manually update your mods or create new ones, you have to match this new format.
The SupportedGameVersion
version number must be (a valid Semantic Version Number) of the form X.Y.z
, where:
-
X
matches the major version of the game,If the major version doesn't match, it means that there have been changes to the game that break mods, and anything with a lower version won't be guaranteed to run.
-
Y
is the minimum minor version of the game the mod requires,If a mod specifies a minor version, then it requires features of the game that are only available on at least that minor version. The game can have more features than a mod needs to run, but it can't be missing any.
-
and
z
is the patch number, which is currently not enforced.As long as the other two rules are met, the patch versions can be any value and the game will still support that mod
This table gives some simple examples of when a mod might or might not be compatible.
Game Version | Supported Game Version | Compatible? |
---|---|---|
6.0.0 | 6.0.0 | ✅ |
6.0.0 | 5.0.0 | ❌ |
6.1.0 | 6.0.0 | ✅ |
6.0.0 | 6.1.0 | ❌ |
6.0.x | 6.0.x | ✅ |
When a mod is updated (by the author or by the converter) then the SupportedGameVersion
should be set to the current version of the game.
Development Builds are coming! (Soon™️)
Eventually, we'll make the newest content from the development branches available as a Prerelease.
This is different to what we call "PreReleases" at the moment and more similar to the testing builds some of you have played.
These Prelease builds are incomplete, and come with no guarantee to work with mods (so we won't troubleshoot general modding issues with them).
These builds also use a new versioning scheme that marks them as development versions.
Their version is of the form:
vX.Y.z-preW
where
-
W
is a prerelease number that changes every time a new build is released.As the name suggests, you can think of these as a "preview" for the next major/minor version. You'll often see the major prerelease version one ahead of the currently available version of the game
SupportedGameVersion
must match the Prerelease Version exactly!
Mods must explicitly support these Prerelease versions, so their [OPTIONAL] What does this mean for the game?
-
As mentioned, these changes are designed to make things easier with regular content and mod compatibility
-
This isn't a "
1.0
" release, the project isn't done, we've just changed the tags, not the content. -
Other than speeding up how releases get to you, this shouldn't change anything else about the games development.