
版本0.3.0
状态:实验,不稳定的草稿
软件版本字符串通常包括以下语义:
在软件开发过程中,建立且广泛使用的SEMVER方法用于语义软件版本使用使用版本编号MAJOR.MINOR.PATCH 。随着工作的发展,通常将其他元数据附加到该SEMVER语法上,以指示最终用户一般使用软件的准备就绪(例如v1.2.0-alpha , v1.2.0-beta , v1.2.0-rc.1 , v1.2.0-rc.2 , v1.2.0 )。从源代码中创建编译的二进制文物的项目经常将标签与构建工件相关联,以在构建时间建立源代码状态的记录(例如,git commit sha1 hash字符串)。
这些版本控制概念适用于字体软件的开发,并且在开发过程中是可取的。但是,在Opentype字体版本规范中,它们并非全部定义。字体软件版本字符串被编译到Opentype名称表的NameID 5记录中,以及Opentype Head表的Fontrevision记录。这些记录以下面的方式定义在Opentype格式规范中,并在SIL FONT开发最佳实践文档(源)中进行了解释。
版本字符串。应该从语法的“版本”开始。 (上情况,下情况或混合,在“版本”和数字之间具有空间)。
该字符串必须包含以下形式的版本编号:一个或多个值的数字(0-9)小于65,535,其次是一个期间,然后是一个或多个值的数字小于65,535。除了数字以外的任何字符都将终止次要数字。诸如“;”之类的角色有助于分开不同的版本信息。
字符串中的第一个匹配可以通过安装软件使用来比较字体版本。请注意,某些安装程序可能要求字符串以“版本”开头,然后是上述版本号。
(来源)
由字体制造商设置
(来源)
Opentype规范将版本编号定义为MAJOR.MINOR 。没有针对PATCH / BUILD版本编号或版本号元数据字符串的规范。由于字体编译器约定,字体版本控制与SEMVER版本编号格式更加偏离,其中包括MINOR编号中的零填充。虽然在nameID 5记录中并不总是如此,但这是head.fontrevision记录中使用的一致格式。使用这种方法对版本编号的解释不是直观的。版本编号字符串Version 1.1 , Version 1.01和Version 1.001都定义为“不同”,尽管这些数字都可能代表相同的开发阶段(即,超出了第一个主要版本的一个迭代)。由于项目作者建立的约定以及用来从源代码编译字体的工具,因此在版本号上出现了这些差异。 Opentype定义没有指定格式来指示类型项目相对于其版本里程碑的开发状态,也没有定义一种方法来维护字体构建构建伪像的构建时间的信息。缺乏解决上述问题的正式标准为该规范提供了动力。
开放字体版本(OpenFV)规范代表Opentype名称表名称5记录和Opentype Head.Fontrevision记录规格的符合符合的扩展名。 OpenFV旨在用作字体源代码的开发,测试,发布和使用的字体软件版本管理标准,以及源自源的构建工件(FONTS)。该规范定义了具有语义基础的版本编号字符串语法,该语义基础为开发人员和用户提供了信息性数据。
关键词“必须”,“必须”,“必需”,“应”,“不得”,“应该”,“不应该”,“不建议”,“推荐”,“可能”,“可能”和“可选”,如RFC 2119中所述,应解释。
Opentype名称表ID 5记录中的版本字符串必须定义为强制性和可选数据元素的半符号划界子字符串。
完整版字符串的子字符串元素的OpenFV规范语法是:
[Font Version Number]; [Status/State Metadata]; [Other Metadata]
字体版本字符串必须包括:
字体版本字符串可能包括:
字体版本号substring:
MAJOR版本号码,一个周期(u+002E), MINOR版本编号数字。MINOR版本编号和半隆之间包含。 MAJOR版本编号:
MINOR版本号:
MINOR版本编号中使用零填充物。 MINOR版本号必须的最小值为000,最大值为999。 州元数据基因:
a-zA-Z0-9._-[作为初始字符和定界符]作为基因的最终字符。这些定系数中的字符串内容应定义为“状态标签”。状态标签应为50个字符或更少。状态元数据基因:
DEVRELEASE-dev-release 其他元数据基因:
Opentype头表的Fontrevision记录中的字体版本号:
MAJOR版本编号数字,一个时期, MINOR版本编号数字MINOR版本编号,其长度恰好是三位数。对于小于100的MINOR版本编号,必须使用零填充。 MINOR版本号必须的最小值为000,最大值为999。MAJOR版本编号之前或MINOR版本编号之前包含任何字符MAJOR.MINOR版本编号应旨在代表一个释放里程碑,该里程碑可能在用MAJOR.MINOR版本编号定义的来源中无法完全实现。 MAJOR.MINOR版本编号不应在构建工件中的构建时间表示源代码状态,并且在构建工件中可能并不是唯一的,因为进行了工作以实现MAJOR.MINOR版本。MAJOR版本编号设置为0。 MAJOR版本编号0应指示此预生产阶段的开发阶段。MAJOR版本编号设置为1。从MAJOR版本0到MAJOR版本1的转换应表明作者的确认,即源代码和构建工件符合OpenFV版本的定义。更改版本编号的语义应包括以下1个值的增量:
MAJOR版本编号。MINOR版本编号,用于功能,hotfix和依赖关系更改。示例包括:当MAJOR版本编号增加时, MINOR版本编号应更改为000的值。
符合OpenFV规范的名称表ID 5记录版本的示例包括:
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
符合OpenFV规范的Head Table Fontrevision记录版本的示例包括:
1.001
10.010
100.100
CC由4.0