Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

メタデータ

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 は依存の取得元を示します。その kindpathpath を持つ)または repositoryurlprojectversionrevisionpath を持つ)のいずれかです。
  • 各エントリの dependencies フィールドは、その依存自身の依存の id を列挙するため、グラフ全体を再構築できます。

[metadata] テーブル

Veryl.toml には、外部ツール用の任意のデータを格納する [metadata] テーブルを記述できます。Veryl はその内容を解釈せず、保持したうえで veryl metadata の出力の metadata フィールドに(ルートプロジェクトと依存の両方について)再公開するだけです。

[metadata.external_tool]
files = ["src/**/*.v"]
attrs = { role = "core" }

これは外部連携データを置くための専用の場所です。Veryl.toml のトップレベルの不明なキーは拒否されるため、ツール固有のデータは [metadata] の下に置く必要があります。