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:
-
Si il y'a trois nombres, chaque nombre est séquentiellement interprété comme:
version majeure . version mineure . version révision
-
Si il y'a deux nombres, chaque nombre est séquentiellement interprété comme:
version majeure . version mineure
-
Si il n'y a qu'un seul nombre, le nombre est interprété comme:
version majeure
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.