要約

  • IESG は 2026 年 8 月 18 日、draft-ietf-netmod-yang-semver-28 を Proposed Standard として発行することを承認したと発表した。YANG モジュールにセマンティック版を付け、YANG Library から任意に公開できるようにする仕様である。
  • この版は、保守者がモジュール成果物間の互換関係をどう分類したかを表す。対象サーバーのモジュール集合が整合していること、必要な機能が有効であること、偏差がないこと、期待どおり動くことは証明しない。変更承認には対象固有の証拠が要る。

推奨下限が判定しないもの

冒頭は仮想例であり、実在する障害やベンダー不具合ではない。recommended-min-version は、利用側が望む最古の互換版を伝えるための手掛かりだ。

比較対象は三つの数値だけで、互換性修飾子やプレリリース、ビルド情報は見ない。したがって、上位のメジャー版も、_non_compatible を伴う版も数値上は下限を満たし得る。候補が見つからない場合も、コンパイラーは警告したうえで通常の YANG import 解決を続けるべきだとされる。

これは緩い依存関係を守る設計である。「数値条件を満たした」を「装置への変更を許可した」に変換すると、推奨情報に存在しない権限を追加してしまう。

承認されたのは系譜を読める仕組みだ

承認対象は “YANG Semantic Versioning” 第 28 版で、RFC Editor の処理中は Internet-Draft のままである。NETMOD ワーキンググループの成果で、公告は全体的な合意と一部の異論、開発中のツールを記録している。

ysv:versionX.Y.Z_COMPAT を基本とし、任意のプレリリース情報とビルド情報を持つ。原則としてメジャー増分は後方非互換、マイナー増分は互換追加、パッチ増分は互換な編集変更を示す。

モジュール名と版を合わせれば、特定の改訂内容を識別できる。日付だけより依存関係と祖先を説明しやすく、サーバーは YANG Library で実装を主張する版を示せる。

ただし、これは成果物の身元と来歴である。対象で実際に構成される木や、実行時の挙動の証明ではない。

互換性は成果物間の主張である

版を付けるのはモジュールの作者または保守者だ。規則はあるが、必要以上に大きい増分や番号の省略も許される。対象装置が独立に測定した値ではない。

仕様自身も、番号が記述された変更の発生を保証せず、特定の利用者への影響も保証しないと明記する。差分はスキーマ比較で、影響はインスタンス検証と実装試験で確かめる必要がある。

単体では互換なモジュールでも、別モジュールの augmentation、無効化された feature、対象固有の deviation によって実効スキーマは変わる。元の版表示が正しくても、制御処理が必要とするノードが消えることはある。

ゆえに「互換」は常に範囲付きだ。この成果物系譜に関する保守者の分類であって、あらゆる装置と設定への保証ではない。

非互換の履歴は枝に残る

_compatible_non_compatible は限定的な開発枝を表す。同じメジャー・マイナー枝で一度 _non_compatible が現れると、後続版はそれを消したり互換へ戻したりできない。

後の編集で過去の断絶を洗い流さないための規則だ。監査記録は三数値だけでなく、完全な識別子を保持しなければならない。

一方、推奨下限は数値だけを比べる。枝を拒否したい組織は、解決した成果物に対して別の方針を明示し、理由を記録する必要がある。下限欄が代行したことにしてはならない。

対象が持つのはモジュール集合だ

YANG Library は、モジュールと改訂、import-only モジュール、サブモジュール、有効な機能、偏差、所在を含む集合を記述する。セマンティック版は有用な一列を追加するが、一覧全体を置き換えない。

草案も、整合したモジュール集合の構築は拡張の範囲外だとし、YANG packages などの隣接作業を挙げる。同じ主要モジュール版を示す二台でも、周辺要素により実効スキーマは異なり得る。

RFC 7950 は import、augmentation、feature、deviation の合成を定め、RFC 8525 は対象の発見を助け、RFC 9907 は改訂ラベルを扱う。それでも装置上のコードや既存データを試験したことにはならない。

承認は証拠の連鎖で行う

自動化は、要求制約、解決した成果物とハッシュ、完全な版、YANG Library スナップショット、実効スキーマのハッシュ、前後差分、データ検証、実装試験、対象ソフトウェアと設定分類、残余リスクを引き受ける責任者を保存すべきだ。

下限未達は依存選択、非互換修飾子は系譜方針、機能欠落や偏差衝突は対象スキーマ、挙動回帰は実装、承認欠如は統治の問題である。全部を「版違い」にまとめれば、強制実行だけが簡単になる。

番号は候補を早く絞るために使う。最後の扉は、コンパイルされた対象、動くコードの証拠、結果を負う所有者が管理する。

出典