要約

  • 第15版は ysv:version を持つ改訂に Semver ファイル名を推奨し、日付名と無接尾辞名も認め、同一改訂の内容をバイト単位で同一にするよう求める。
  • 権威はモジュール本文にある。発見、バイト同一性、依存解決、選択、ロード、両端の有効スキーマ、インスタンス検証、展開結果は別々の証拠である。

接尾辞のない service.yang、リビジョン日を接尾辞に持つ別名、セマンティック・バージョンを接尾辞に持つ別名が並び、三つの SHA-256 が一致している。本文の最新 revision も 1.0.0 を示す。それでも、コントローラが開いたパスは分からない。内蔵リソース、古いキャッシュ、優先順位の高い別ディレクトリを使った可能性が残る。

2026年8月20日付の draft-ietf-netmod-yang-module-filename-15 は、NETMOD の現行 Internet-Draft で RFC Editor のキューにある。まだ変更され得る作業文書だ。ysv:version がある改訂には Semver 名を作ることを推奨し、revision-date 名と接尾辞なしの形式も併存できるとする。

重要なのは、ファイル名の値を最新 revision と一致させる一方、版の権威は本文だと明記した点である。完全な識別子には _non_compatible、プレリリース、ビルド情報、競合 draft のラベルも入る。同じ X.Y.Z を持つ二つの系統が同じ版とは限らない。

ハッシュが答える範囲

同一改訂の別名が同じバイトであることは、各オブジェクトを取得してハッシュすれば証明できる。しかし、その版分類が正しいこと、imports が閉じること、実際のプロセスがそのバイトを読んだことは証明しない。

レジストリは登録内容を、ディレクトリ一覧は可視パスを、シンボリックリンクは名前の関係を示す。検索順序、キャッシュ、コンテナ層、起動時の上書きまでは示さない。草案自身もレガシーツールが新命名を扱えない場合を認め、リンクを移行策として挙げる。リンクは古いパーサーを更新せず、ロード記録にもならない。

選択証拠には、ツールと版、設定、順序付き検索パス、全候補、優先規則、最終パス、読み取った digest が必要だ。

有効スキーマは一ファイルより大きい

RFC 8525 では datastore schema は module set の和である。実装モジュール、import-only モジュール、submodule、feature、deviation、location を含む。単独の set は参照完全でなくてもよいが、schema は全 import を満たさなければならない。

主ファイルのハッシュが同じでも、一方が別の依存改訂を見つけ、他方が異なる feature や vendor deviation を適用すれば、結果は違う。YANG Library の content-id はサーバー内の変更検出には使えるが実装固有であり、異なるサーバー間の共通 digest ではない。

したがって、対象 session と datastore に結び付いた両端の展開済み集合を比較する。互換性分類はその一項目にすぎない。schema-comparison のアルゴリズムは既存記事の領域であり、ここでは繰り返さない。

構文から事業結果まで

parse は構文、compile は特定の依存閉包、instance validation は選んだデータ、統合試験は観測した挙動、混在版試験は展開順序、telemetry は運用結果を扱う。一段の成功が次段の結論を継承することはない。

有効なデータでも意味が変わり得る。canary が未試験の利用者を含むとは限らない。ファイルを戻しても変換済み状態は戻らない。発見、バイト、本文宣言、分類根拠、解決、選択、ロード、両端スキーマ、instance、順序、runtime、外部効果を分けて保存する必要がある。

Datatracker は現在、抽出例に二つの error と二つの warning を示し、その文脈では ysv prefix が未定義だとしている。これは文書と検証ツールの状態であり、製品障害ではない。RFC Editor キューも導入実績を意味しない。

一次資料

資料集合は第15版と履歴、Updated YANG Module Revision Handling 17、YANG Semantic Versioning 28、RFC 7950、RFC 8525、RFC 9907、IANA YANG guidance 03 で構成する:https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-module-filename-15; https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-module-filename/; https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-module-filename/history/; https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-module-versioning-17; https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-semver-28; https://www.rfc-editor.org/rfc/rfc7950.html; https://www.rfc-editor.org/rfc/rfc8525.html; https://www.rfc-editor.org/rfc/rfc9907.html; https://datatracker.ietf.org/doc/html/draft-ietf-netmod-iana-yang-guidance-03。