
Versi 0.3.0
Status: draft eksperimental dan tidak stabil
String versi perangkat lunak biasanya mencakup semantik berikut:
Pendekatan SEMVER yang mapan dan banyak digunakan untuk versi perangkat lunak semantik menggunakan format nomor versi MAJOR.MINOR.PATCH dengan standar berbasis API perangkat lunak untuk nilai bertambah selama proses pengembangan perangkat lunak. Metadata tambahan biasanya ditambahkan ke sintaks SEMVER ini untuk menunjukkan kesiapan perangkat lunak untuk penggunaan umum oleh pengguna akhir ketika pekerjaan berkembang menuju tonggak rilis (misalnya v1.2.0-alpha , v1.2.0-beta , v1.2.0-rc.1 , v1.2.0-rc.2 , v1.2.0 ). Proyek -proyek yang membuat artefak biner yang dikompilasi dari kode sumber sering mengaitkan label dengan artefak build untuk membuat catatan status kode sumber pada waktu pembuatan (misalnya, string hash git komit sha1).
Konsep -konsep versi ini berlaku untuk pengembangan perangkat lunak jenis huruf dan diinginkan selama proses pengembangan; Namun, mereka tidak semuanya didefinisikan di bawah spesifikasi versi font openType. String versi perangkat lunak jenis huruf dikompilasi ke dalam catatan 5Id 5 dari tabel nama OpenType dan catatan fontrevision dari tabel head OpenType. Catatan -catatan ini didefinisikan dalam spesifikasi format OpenType seperti di bawah ini, dan dijelaskan dalam Dokumentasi Praktik Terbaik Pengembangan Font SIL (Sumber).
String Versi. Harus mulai dengan 'versi' sintaks. (Kasus atas, huruf kecil, atau dicampur, dengan ruang antara "versi" dan angka).
String harus berisi nomor versi dari formulir berikut: satu atau lebih digit (0-9) nilai kurang dari 65.535, diikuti oleh suatu periode, diikuti oleh satu atau lebih angka nilai kurang dari 65.535. Karakter apa pun selain digit akan mengakhiri bilangan kecil. Karakter seperti ";" bermanfaat untuk memisahkan berbagai informasi versi.
Kecocokan pertama dalam string dapat digunakan oleh perangkat lunak instalasi untuk membandingkan versi font. Perhatikan bahwa beberapa penginstal mungkin memerlukan string untuk memulai dengan "Versi", diikuti dengan nomor versi seperti di atas.
(Sumber)
Diatur oleh produsen font
(Sumber)
Spesifikasi OpenType mendefinisikan nomor versi sebagai MAJOR.MINOR . Tidak ada spesifikasi untuk nomor versi PATCH / BUILD atau nomor versi metadata string. Versi font menyimpang lebih lanjut dari format nomor versi semver sebagai hasil dari konvensi kompiler font untuk memasukkan nol padding dalam nomor versi MINOR . Meskipun ini tidak selalu terjadi dalam catatan 5Id 5, ini adalah format yang konsisten yang digunakan dalam catatan head.fontrevision. Interpretasi nomor versi dengan pendekatan ini tidak intuitif. Versi nomor string Version 1.1 , Version 1.01 , dan Version 1.001 semuanya didefinisikan sebagai "berbeda" meskipun angka -angka ini semuanya dapat mewakili tahap pengembangan yang sama (yaitu, satu iterasi di luar rilis besar pertama). Perbedaan -perbedaan dalam nomor versi ini muncul karena konvensi yang ditetapkan oleh penulis proyek dan oleh alat yang mereka gunakan untuk menyusun font dari kode sumbernya. Definisi OpenType tidak menentukan format untuk menunjukkan status pengembangan proyek jenis huruf relatif terhadap tonggak versinya, mereka juga tidak mendefinisikan pendekatan untuk mempertahankan informasi tentang status kode sumber pada waktu pembangunan dalam artefak build font. Kurangnya standar formal untuk mengatasi masalah di atas asalkan dorongan untuk spesifikasi ini.
Spesifikasi Open Font Version (OpenFV) mewakili ekstensi yang sesuai dari Tabel Nama OpenType NameID 5 Record dan OpenType head.fontrevision Record Spesifikasi. OpenFV dimaksudkan untuk berfungsi sebagai standar versi perangkat lunak typeface untuk pengembangan, pengujian, rilis, dan penggunaan kode sumber jenis huruf dan artefak build (font) yang berasal dari sumber. Spesifikasi ini mendefinisikan sintaks string nomor versi dengan dasar semantik yang memelihara data informatif untuk pengembang dan pengguna.
Kata -kata kunci "harus", "tidak boleh", "diperlukan", "akan", "tidak boleh", "harus", "tidak boleh", "direkomendasikan", "mungkin", dan "opsional" dalam dokumen ini harus ditafsirkan seperti yang dijelaskan dalam RFC 2119.
Versi string dalam catatan nama OpenType ID 5 harus didefinisikan sebagai substring yang dibatasi titik koma dari elemen data wajib dan opsional.
Sintaks spesifikasi OpenFV untuk elemen substring dari string versi lengkap adalah:
[Font Version Number]; [Status/State Metadata]; [Other Metadata]
String versi font harus termasuk:
String versi font mungkin termasuk:
Substring nomor versi font:
MAJOR digit, periode (U+002E), digit nomor versi MINOR .MINOR dan titik koma. Nomor versi MAJOR :
Nomor versi MINOR :
MINOR . Nomor versi MINOR harus memiliki nilai minimum 000 dan nilai maksimum 999. Substring metadata negara:
a-zA-Z0-9._-[ sebagai karakter awal dan pembatas ] sebagai karakter akhir dari substring. Isi string di dalam pembatas ini harus didefinisikan sebagai "label negara". Label negara harus 50 karakter atau kurang.Status metadata substring:
DEVRELEASE-dev-release Substring metadata lainnya:
Nomor versi font dalam catatan fontrevision dari tabel kepala openType:
MAJOR , periode, angka nomor versi MINORMINOR yang panjangnya tiga digit. Untuk nomor versi MINOR kurang dari 100, nol padding harus digunakan. Nomor versi MINOR harus memiliki nilai minimum 000 dan nilai maksimum 999.MAJOR atau setelah nomor versi MINORMAJOR.MINOR MAJOR.MINOR . MAJOR.MINOR Versi MAJOR.MINOR .MAJOR harus diatur ke 0 selama fase pengembangan pra-produksi sebelum rilis awal. Nomor versi MAJOR 0 harus menunjukkan fase perkembangan pra-produksi ini.MAJOR harus ditetapkan ke 1 pada saat rilis awal untuk pengguna akhir. Konversi dari nomor versi MAJOR 0 ke versi MAJOR nomor 1 harus menunjukkan pengakuan penulis bahwa kode sumber dan membangun artefak memenuhi definisi rilis OpenFV.Semantik untuk perubahan nomor versi harus mencakup kenaikan berdasarkan nilai 1 dari:
MAJOR untuk menyelesaikan tonggak utama proyek utama dan semua perubahan yang tidak kompatibel ke dalam perangkat lunak jenis huruf (misalnya, penghapusan dukungan untuk seluruh rentang kode unicode).MINOR untuk Fungsionalitas, Persimpangan Hot, dan Perubahan Ketergantungan. Contohnya termasuk: Ketika nomor versi MAJOR bertambah, nomor versi MINOR harus diubah menjadi nilai 000.
Contoh Name Table ID 5 String Versi Rekam Yang Memenuhi Spesifikasi OpenFV Termasuk:
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
Contoh string versi rekaman fontrevision tabel head yang memenuhi spesifikasi OpenFV meliputi:
1.001
10.010
100.100
CC oleh 4.0