OvGME supports versioning for Mod-Archives (not for Directory-Mod). The mod version is
identified localy by a string contained in a specific text file at root of the
Mod-Archive zip file, or by the repository provided data. This version is used by the
repositories mechanism to check which version of a same mod is greater than another.
The version.txt file
OvGME automatically checks if a properly named "version.txt" file exists at root of
the zip file of a Mod-Archive. If this file exists, it will be considered as the version
string for this mod. This file must be a standard ASCII .txt file and the version string
should follow the format as described below.
Version string format
The version string must be only numbers optionally separated by dot, no letter nor any
other special character are allowed.
There are up to three version components allowed, all separated by one (and only one)
dot, to fit the standard GNU version numbering scheme as follow:
major.minor.revision
A valid version string does not have to include the three version components, it can
for example include only version major and version minor components,
or even only one number which will be considered as the version major component.
Here are examples of valid version string:
1.5.0
1.2
2
0.9.5
0.9
The string parsing rules are the following:
-
If there are three numbers, each number is sequentially interpreted as:
version major . version minor . version revsion
-
If there are two numbers, each number is sequentially interpreted as:
version major . version minor
-
If there is only one number, the number is interpreted as:
version major
Version comparison
OvGME automatically determines which version is greater by analyzing the major, minor
and revision components in order. If two version strings does not have the same format,
it uses the following rule to compare them: The missing components at the right of
the version major component has a 0 value.
For example, a version string "1.2" is in fact numerically translated as
1.2.0 and a "2" string is numerically
translated as 2.0.0. So:
if the "1.2" string (1.2.0) must be compared to the "1.2.1" string, the "1.2.1" string will be considered as the greater one.
If the "1.2.2" string must be compared to the "1.3" string, the "1.3" string (1.3.0) will be considered as the greater one.
If the "1" string must be compared to the "0.5.5" string, the "1" string (1.0.0) will be considered as the greater one.