
版本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