Version du schéma
Ce que signifie schema_version, quelles versions sont acceptées, et ce qui se passe quand on ouvre un ancien fichier.
Un profil déclare la version du format dans lequel il est écrit. C’est ce qui permet à un fichier produit il y a un an de rester lisible aujourd’hui.
Cette version n’a rien à voir avec la version de l’application, ni avec celle de votre jeu de règles.
Cinq versions, une seule sémantique
L’application accepte cinq versions du format, et l’éditeur les accepte toutes — avec exactement la même interprétation.
| Version | Forme du fichier | Identité du profil | Nom retenu |
|---|---|---|---|
| 1 | plat, sans identité visuelle | aucune → identifiant neuf | nom du fichier |
| 2 | plat, avec identité visuelle | aucune → identifiant neuf | nom d’affichage, sinon nom du fichier |
| 3 | enveloppe profile |
l’identifiant du fichier, s’il est fourni | nom du profil |
| 4 | enveloppe profile, contextes déclarés |
l’identifiant du fichier, s’il est fourni | nom du profil |
| 5 | enveloppe profile, paramètres déclarés |
l’identifiant du fichier, s’il est fourni | nom du profil |
Ce que la version 4 change
Avant elle, le contexte d’une règle était l’une des quatre valeurs d’une liste figée dans l’application. Depuis, c’est le profil qui déclare ses contextes, et une règle peut n’en porter aucun.
Un fichier antérieur reste importable sans rien perdre : les identifiants de contexte que citent ses règles sont adoptés tels quels, l’initiale en capitale tenant lieu de libellé. Vous pouvez ensuite leur donner le libellé de votre choix dans l’éditeur.
Si rien ne nomme le profil, il s’appellera « Profil importé ».
Ce que la version 5 change
Avant elle, une règle demandait au plus une saisie, textuelle ou numérique, toujours ajoutée à la fin d’un préfixe. Cette forme n’était pas neutre : c’était la structure d’un besoin particulier, imposée à tous les autres.
Depuis, c’est le profil qui déclare les informations qu’il demande — autant
qu’il veut, de type texte, nombre, choix ou oui/non — et une règle compose son
SSID par gabarit : CORP-{site}-{etage}. Voir
Paramètres d’un profil.
Un fichier antérieur reste importable sans rien perdre d’essentiel : sa saisie devient un paramètre du profil, portant le même libellé, et son préfixe devient un gabarit qui produit exactement le même SSID.
Une seule chose n’est pas reprise : le champ location_mode. Ses deux valeurs
ne décrivaient rien du fichier — elles désignaient des intitulés et des exemples
écrits dans l’application. Les règles migrées obtiennent donc l’invite
neutre « Emplacement », et un profil qui veut la sienne l’écrit désormais
lui-même.
Ouvrir un ancien fichier
Il s’ouvre normalement. L’éditeur affiche la version détectée et explique ce qu’il en a déduit. Le fichier d’origine n’est jamais modifié.
Écrire
L’export est toujours écrit dans la version courante, quelle que soit celle du fichier ouvert. C’est le seul moment où une conversion a lieu, et elle est annoncée.
Un fichier en version 1 ou 2 qui n’a pas d’identifiant produira donc, à l’export, un profil avec un identifiant neuf : à l’import, l’application créera un profil au lieu d’en mettre un à jour. C’est la conséquence normale d’un format qui ne portait pas encore d’identité logique.
Une version inconnue est refusée
Un fichier déclarant une version que l’application ne connaît pas est rejeté, et
non deviné. Le code d’erreur est unsupported_schema_version.
C’est délibéré : accepter au jugé un format futur reviendrait à en importer n’importe quelle moitié.