Versioning de Mod

OvGME prend en charge le versioning pour les Mod-Archives (pas pour les Directory-Mod). La version de mod est identifié localement par une chaîne contenu dans un fichier text spécifique à la racine du fichier zip du Mod-Archives, ou par les données fournies par le dépôt. Cette version est utilisée par le mécanisme des dépôts pour vérifier quelle version d'un même mod est supérieur à l'autre.

Le fichier version.txt

OvGME vérifie automatiquement si un fichier correctement nommé "version.txt" existe à la racine du fichier zip d'un Mod-Archive. Si ce fichier existe, il est considéré comme la chaîne de version pour ce mod. Ce fichier doit être un fichier text ASCII standard et la chaîne de version doit suivre le format décrit ci-dessous.

Le format de chaîne de version

La chaîne de version doit être composés uniquement de nombres optionnellement séparés par un point. Aucune lettre ou autre caractère spécial n'est autorisé.

Il y'a jusqu'à trois composants de version autorisé, tous séparés par un (et seulement un) point, pour correspondre au standard de numération de version GNU comme suit:
majeure.mineure.révision

Une chaîne de version valide n'a pas à inclure les trois composants de version, elle peut par exemple inclure uniquement les composants version majeure et version mineure, ou même seulement un seul nombre qui sera considéré comme le composant version majeure.
Voici des exemples de chaîne de version valides:
1.5.0
1.2
2
0.9.5
0.9
Les règles d'analyse de chaîne sont les suivantes:

Comparaison de version

OvGME détermine automatiquement quelle version est supérieur en analysant dans l'ordre les composants majeure, mineure et révision. Si deux chaînes de version n'ont pas le même format, il utilise la règle suivante pour les comparer: Le composant manquant à droite du composant version majeure a une valeur de 0.

Par exemple, une chaîne de version "1.2" est en fait numériquement traduite comme 1.2.0 et une chaîne "2" est numériquement traduite en translated as 2.0.0. De ce fait:
Si la chaîne "1.2" (1.2.0) doit être comparée à la chaîne "1.2.1", la chaîne "1.2.1" sera considéré comme étant la supérieur à l'autre.

Si la chaîne "1.2.2" doit être comparée à la chaîne "1.3", la chaîne "1.3" string (1.3.0) sera considéré comme étant la supérieur à l'autre.

Si la chaîne "1" doit être comparée à la chaîne "0.5.5", la chaîne "1" string (1.0.0) sera considéré comme étant la supérieur à l'autre.