メタデータ
veryl metadata は、現在のプロジェクトの解決済みメタデータを、依存グラフを含めて出力します。外部ツールが Veryl の依存解決結果と依存キャッシュを、独自に再実装することなく再利用できるようにするためのものです。
$ veryl metadata
オプション
| オプション | 説明 |
|---|---|
--format <format> | 出力形式。pretty(デフォルト、人間向け)または json。 |
--format-version <n> | JSON 出力スキーマのバージョン。--format json と一緒のときのみ有効です。 |
出力フォーマットのバージョン
--format-version は JSON 出力のスキーマを選択します。
1(またはバージョン未指定)— 内部のMetadata表現。この形式は安定しておらず、Veryl のリリース間で変更される可能性があります。2— 外部ツール向けの安定したバージョン付きスキーマ。
出力をプログラムで処理するツールでは、バージョン 2 を使用してください。
$ veryl metadata --format json --format-version 2
バージョン 2 の出力は次のような形になります。
{
"format_version": 2,
"root": {
"name": "my_project",
"version": "0.1.0",
"local_path": "/abs/path/to/my_project",
"metadata": {}
},
"dependencies": [
{
"id": "dep:foo",
"name": "foo",
"project": "foo",
"source": {
"kind": "repository",
"url": "https://github.com/example/foo",
"project": "foo",
"version": "1.2.0",
"revision": "0123456789abcdef",
"path": "."
},
"local_path": "/abs/path/to/dependency/cache/foo",
"metadata": {},
"dependencies": ["dep:bar"]
}
]
}
rootは現在のプロジェクトを表し、dependenciesはグラフ内の解決済みのすべての依存を列挙します。local_pathはディスク上の場所(プロジェクトディレクトリ、または依存キャッシュディレクトリ)であり、ツールが実際のソースファイルを読み取れます。sourceは依存の取得元を示します。そのkindはpath(pathを持つ)またはrepository(url・project・version・revision・pathを持つ)のいずれかです。- 各エントリの
dependenciesフィールドは、その依存自身の依存のidを列挙するため、グラフ全体を再構築できます。
[metadata] テーブル
Veryl.toml には、外部ツール用の任意のデータを格納する [metadata] テーブルを記述できます。Veryl はその内容を解釈せず、保持したうえで veryl metadata の出力の metadata フィールドに(ルートプロジェクトと依存の両方について)再公開するだけです。
[metadata.external_tool]
files = ["src/**/*.v"]
attrs = { role = "core" }
これは外部連携データを置くための専用の場所です。Veryl.toml のトップレベルの不明なキーは拒否されるため、ツール固有のデータは [metadata] の下に置く必要があります。