Versionnage sémantique
Quand tu publies un mod, les joueurs te font confiance pour ne pas corrompre leur sauvegarde ni bloquer leur jeu. Si tu modifies le format d'un fichier de sauvegarde ou renommes une touche dans un fichier INI et que tu appelles cela « Mise à jour v1.1 », des utilisateurs vont mettre à jour sans méfiance et voir leur jeu planter au démarrage.
Le versionnage sémantique (SemVer) est le langage universel des développeurs pour communiquer l'impact d'une mise à jour avant même le moindre téléchargement.
Les trois nombres : MAJEUR.MINEUR.CORRECTIF
Un numéro de version s'écrit sous la forme de trois entiers séparés par des points : 1.4.2
- MAJEUR (1.x.x) : Incrémenté lors de changements cassants. Le format de sauvegarde a changé sans rétrocompatibilité, des réglages ont été renommés, ou les prérequis ont évolué (ex. besoin d'une version plus récente de ScriptHookVDotNet).
- MINEUR (x.4.x) : Incrémenté lors de l'ajout de nouvelles fonctionnalités rétrocompatibles. Un nouveau raccourci de véhicule est ajouté, de nouveaux dialogues sont inclus, ou une option facultative est ajoutée avec une valeur saine par défaut.
- CORRECTIF (x.x.2) : Incrémenté lors de la correction de bugs sans ajout de fonctionnalité. Ajout d'une clause de garde évitant un crash ou correction d'une faute dans un sous-titre.
Un exemple d'évolution réelle
Considère l'historique d'un mod de garde du corps :
1.0.0: Première version publique avec un garde du corps individuel qui suit le joueur.1.0.1: Correctif : Résolution d'un crash si le joueur recharge la partie pendant que le garde tire.1.1.0: Mineur : Ajout d'une touche pour lui ordonner de tenir sa position (les sauvegardes existantes restent valides).1.1.1: Correctif : Le garde ne quitte plus sa position de garde quand la pluie commence.2.0.0: Majeur : Refonte du système pour gérer plusieurs gardes en escouade. L'ancienprofil.jsonde la v1 doit être supprimé ou converti.
Intégrer le numéro dans ta DLL
Renseigne le numéro de version directement dans les propriétés de ton projet ou ton fichier .csproj :
<PropertyGroup>
<Version>1.0.0</Version>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion>
</PropertyGroup>
Quand un joueur fera un clic droit sur ton fichier .dll sous Windows dans Propriétés -> Détails, il verra immédiatement le numéro exact correspondant à ton journal des modifications.
Dans la leçon suivante, nous étudions le packaging : préparer une archive zip propre et prête à l'emploi.