
Version 0.3.0
Statut: brouillon expérimental et instable
Les chaînes de version logicielle incluent généralement la sémantique suivante:
L'approche Semver établie et largement utilisée pour le versioning logiciel sémantique utilise le format de numéro de version MAJOR.MINOR.PATCH avec une norme basée sur l'API logicielle pour les valeurs incrémentées pendant le processus de développement logiciel. Des métadonnées supplémentaires sont généralement annexées à cette syntaxe Semver pour indiquer la préparation du logiciel pour une utilisation générale par l'utilisateur final à mesure que le travail progresse vers une étape importante (par exemple v1.2.0-alpha , v1.2.0-beta , v1.2.0-rc.1 , v1.2.0 v1.2.0-rc.2 , v1.2.0 ). Les projets qui créent des artefacts binaires compilés à partir de code source associent fréquemment une étiquette à l'artefact de construction pour établir un enregistrement de l'état du code source au moment de la construction (par exemple, une chaîne de hachage SHA1 GIT Commit COMMISS).
Ces concepts de versioning s'appliquent au développement de logiciels de surface et sont souhaitables pendant le processus de développement; Cependant, ils ne sont pas tous définis dans la spécification du versioning de police OpenType. Les chaînes de versions logicielles de la face de type sont compilées dans l'enregistrement NameID 5 de la table de noms OpenType et l'enregistrement FonTRevision de la table Heads de l'OpenType. Ces enregistrements sont définis dans la spécification du format OpenType comme ci-dessous, et expliqués dans la documentation des meilleures pratiques de développement de la police Sil (source).
Chaîne de version. Devrait commencer par la «version de syntaxe». (en haut, minuscules ou mixtes, avec un espace entre «version» et le nombre).
La chaîne doit contenir un numéro de version du formulaire suivant: Un ou plusieurs chiffres (0-9) de valeur inférieure à 65 535, suivis d'une période, suivi d'un ou plusieurs chiffres de valeur inférieure à 65 535. Tout caractère autre qu'un chiffre mettra fin au numéro mineur. Un personnage tel que «;» est utile pour séparer les différentes informations sur la version.
La première correspondance de ce type dans la chaîne peut être utilisée par le logiciel d'installation pour comparer les versions de police. Notez que certains installateurs peuvent exiger que la chaîne commence par «version», suivie d'un numéro de version comme ci-dessus.
(Source)
Défini par le fabricant de polices
(Source)
La spécification OpenType définit un numéro de version comme MAJOR.MINOR . Il n'y a pas de spécification pour un numéro de version PATCH / BUILD ni des chaînes de métadonnées de numéro de version. Le versioning de police s'écarte davantage du format de numéro de version Semver à la suite de la convention du compilateur de police pour inclure un rembourrage zéro dans les numéros de version MINOR . Bien que ce ne soit pas toujours le cas dans les enregistrements NameID 5, il s'agit d'un format cohérent utilisé dans l'enregistrement de la tête. L'interprétation des numéros de version avec cette approche n'est pas intuitive. Les chaînes de numéro de version Version 1.1 , Version 1.01 et Version 1.001 sont toutes définies comme "différentes", bien que ces chiffres puissent tous représenter la même étape de développement (c'est-à-dire une itération au-delà de la première version majeure). Ces différences dans les numéros de version émergent en raison des conventions établies par les auteurs du projet et par les outils qu'ils utilisent pour compiler les polices à partir de leur code source. Les définitions OpenType ne spécifient pas de format pour indiquer l'état de développement d'un projet de police par rapport à son jalon de version, et ils ne définissent pas une approche pour maintenir des informations sur l'état du code source au moment de la construction dans l'artefact de construction de police. L'absence d'une norme formelle pour résoudre les problèmes ci-dessus a fourni l'impulsion pour cette spécification.
La spécification de la version Open Font (OpenFV) représente une extension conforme de la table de nom OpenType NomId 5 Record et OpenType Head. OpenFV est destiné à servir de norme de version de version logicielle de la face de type pour le développement, les tests, la libération et l'utilisation du code source de la face de type et les artefacts de construction (polices) dérivés de la source. Cette spécification définit une syntaxe de chaîne de numéro de version avec des fondements sémantiques qui maintient des données informatives pour les développeurs et les utilisateurs.
Les mots clés "doivent", "ne doivent pas", "requis", "doivent", "ne doivent pas", "devraient", "ne devraient pas", "recommandés", "May" et "Facultatif" dans ce document doivent être interprétés comme décrit dans RFC 2119.
Les chaînes de version dans l'OpenType Nom Table Table ID 5 L'enregistrement doit être défini comme des sous-chaînes délimitées par semi-colon des éléments de données obligatoires et facultatifs.
La syntaxe de spécification OpenFV pour les éléments de sous-chaîne de la chaîne de version complète est:
[Font Version Number]; [Status/State Metadata]; [Other Metadata]
La chaîne de version de police doit inclure:
La chaîne de version de police peut inclure:
La sous-chaîne de numéro de version de police:
MAJOR (s) de numéro de version, une période (U + 002E), des chiffres du numéro de version MINOR .MINOR et le point-virgule. Le MAJOR numéro de version:
Le numéro de version MINOR :
MINOR . Le numéro de version MINOR doit avoir une valeur minimale de 000 et une valeur maximale de 999. La sous-chaîne des métadonnées de l'État:
a-zA-Z0-9._-[ comme caractère initial et le délimiteur ] comme caractère final de la sous-chaîne. Le contenu des chaînes à l'intérieur de ces délimiteurs doit être défini comme la "marque d'état". L'étiquette d'État doit comporter 50 caractères ou moins.La sous-chaîne de métadonnées de statut:
DEVRELEASE-dev-release Autres sous-chaînes de métadonnées:
Le numéro de version de la police dans l'enregistrement FontreVision de la table d'habitation OpenType:
MAJOR de version de version, une période, une période, des chiffres du numéro de version MINORMINOR qui fait exactement trois chiffres. Pour les numéros de version MINOR inférieurs à 100, un rembourrage zéro doit être utilisé. Le numéro de version MINOR doit avoir une valeur minimale de 000 et une valeur maximale de 999.MAJOR ni après le numéro de version MINORMAJOR.MINOR doit représenter une étape importante qui peut être implémentée incomplètement dans la source définie avec un numéro de version MAJOR.MINOR . Le numéro de version MAJOR.MINOR ne doit pas représenter l'état du code source au moment de la construction dans des artefacts de construction et peut ne pas être unique dans les artefacts de construction au fur et à mesure que les travaux sont effectués pour atteindre un jalon de version MAJOR.MINOR .MAJOR numéro de version doit être défini sur 0 pendant la phase de pré-production de développement avant la version initiale. Le numéro de version MAJOR 0 doit indiquer cette phase de pré-production de développement.MAJOR doit être défini sur 1 au moment de la version initiale aux utilisateurs finaux. La conversion de la version MAJOR numéro 0 en numéro MAJOR numéro 1 indique la reconnaissance des auteurs que le code source et la création d'artefacts répondent à la définition de la version OpenFV.La sémantique pour les modifications du numéro de version doit inclure une augmentation de la valeur de 1 de la:
MAJOR pour l'achèvement des principaux jalons spécifiques au projet et toutes les modifications incompatibles vers l'arrière apportées au logiciel de la police (par exemple, l'élimination de la prise en charge d'une gamme de codes Unicode entière).MINOR pour les fonctionnalités, les hotfix et les changements de dépendance. Les exemples incluent: Lorsque le numéro de version MAJOR est incrémenté, le numéro de version MINOR doit être changé en valeur de 000.
Des exemples de noms de table ID 5 5 chaînes de version enregistrée qui répondent à la spécification OpenFV incluent:
Version 1.001
Version 1.001; DEV
Version 1.001; RELEASE
Version 1.001; [abcd123]
Version 1.001; [abcd123]-dev
Version 1.001; [abcd123]-release
Version 1.001; [abcd123]-dev; here are metadata
Version 1.001; [abcd123]-release; here are metadata
Version 1.001; here are metadata
Version 1.001; here are metadata; here are more metadata
Des exemples de chaînes d'enregistrement de la table de tête FonTRevision qui répondent à la spécification OpenFV incluent:
1.001
10.010
100.100
CC par 4.0