プレリリース版です。正式公開までは、公開済みのファイルも含めて内容が変わることがあります。
Skip to content

出典: https://datamodels.jp/guide/versioning · 文章は CC BY 4.0

バージョンと非推奨 ​

公開したファイルの URL は変わりません(変わらない URL)。このページは、その約束を守りながらモデルをどう変えていくかをまとめます。

サブジェクトに 1 つのバージョン ​

バージョンはサブジェクト単位で、@context、語彙、そのサブジェクトのすべての JSON Schema が同じ番号を持ちます(例 transportation の 1.0.0)。番号は Semantic Versioning の考え方で上げます。

変更上げる番号例
意味も検証も変わらない修正パッチ(1.0.1)スキーマの説明文の誤字
互換性のある追加マイナー(1.1.0)任意の属性やモデルを足す、値域に値を足す
互換性のない変更メジャー(2.0.0)属性の名前や型を変える、属性や値を消す、任意の属性を必須にする

値域に値を足すのはマイナーですが、すべての値を扱う利用者は新しい値を知る必要があるので、Pull Request とモデルの注記(notes.yaml)に書きます。属性の意味は変えません。変えたいときは新しい属性(新しい IRI)を作ります。

古いバージョンも残る ​

新しいバージョンを出しても、古いバージョンの v1.0.0.jsonld や v1.0.0.json は同じ URL で公開され続けます。v1.jsonld のようなエイリアスは、同じメジャーの最新版を指します。保存したデータには完全なバージョンの URL を、新しい版に追従したいクライアントにはエイリアスを使います。

属性の非推奨 ​

置き換える属性は、スキーマで x-deprecated を付け、モデルのページに「非推奨」と表示します。非推奨の属性は少なくとも次のマイナーバージョンまで残し、削除は次のメジャーバージョンで行います。

モデルの段階 ​

段階意味
提案Issue。まだカタログにはない
draftカタログにあり、検証されるが、まだ変わる可能性がある
stable別々の組織による 2 つの実装が ADOPTERS.yaml にある(CI とレビュアーが確認)
deprecated使わないでほしいモデル。公開は続け、URL は変わらない。後継があれば catalog.yaml の supersededBy に書き、ページと catalog.json に表示される

新しいサブジェクト、メジャーバージョン、stable への昇格は小さなグループが決めます。詳しくは CONTRIBUTING.md。

いまはプレリリース ​

正式公開までは、各サブジェクトの現行バージョン(1.0.0)を、番号を上げずにその場で修正できます。修正した Pull Request では、CI が変わった公開済みファイルを一覧にします。正式公開で published-manifest.json の prerelease を false にすると、公開済みファイルは一切変えられなくなり、変更は上の表のとおり新しいバージョンになります。