摘要
draft-ietf-netmod-yang-module-filename-15建议为带ysv:version的修订创建语义版本文件名,也允许日期后缀和无后缀别名;同一修订的各份文件必须逐字节相同。- 模块正文仍是权威。目录项、相同哈希、符号链接和注册表条目只能证明发现或身份;选择、加载、有效模式、实例兼容与部署结果必须分别留证。
设想仓库中并排放着无后缀的 edge-policy.yang、带修订日期后缀的别名和带语义版本后缀的别名。三者 SHA-256 相同,语义版本文件名与最新 revision 中的声明吻合,注册表也同时列出日期名和版本名。可见的检查全部通过。
但控制器到底打开了哪条路径,仍无人回答。
这正是《YANG Module File Name Convention》第 15 版最值得治理者注意的边界。该稿于 2026 年 8 月 20 日提交,Datatracker 把它列为 NETMOD 工作组的活跃 Internet-Draft,目标为 Standards Track,目前进入 RFC Editor 队列。它仍是可变的工作稿。草案对发布与发现给出了精确约定,却没有把精确性自动延伸到运行时选择。
正文的权威高于标签
若某一修订带有 ysv:version,草案建议创建以该语义版本命名的文件,也允许存在以 revision-date 命名或没有后缀的文件。语法允许模块或子模块名后接 at 符号分隔符与语义版本或日期,最后使用 .yang 或 .yin。
最强的要求也最容易被误读:文件名里的 ysv:version 必须与最新 revision 声明一致;紧接着,草案明确版本权威来自模块内容,而不是文件名。文件名是快速索引,不是第二个真相源。
有效 YANG Semver 也不只有三段数字。_non_compatible、预发布标签、构建元数据和竞争草案标识都可进入文件名。两个分支可能共享 2.0.1 数字,却具有不同完整版本串。为了迎合简单包浏览器而截掉后缀,正好丢失了约定要保留的信息。
逐字节相同的要求同样只回答一个窄问题:如果三个名称代表同一修订,它们的内容必须完全一致。哈希可以证明被取样字节的身份,却不能证明语义版本分类正确、依赖闭包完整,或某个进程真正读取了这些字节。
能发现,不等于被选择
目录列表只说明某条路径在某时对观察者可见;符号链接说明命名空间关系,解析后或许能指向目标;注册表说明发布者登记了什么;相同摘要说明捕获的字节相同。它们都没有记录具体工具使用的搜索路径、优先级、缓存、嵌入资源、容器层或命令行覆盖。
草案自己承认旧系统和已部署工具可能无法处理新约定,此时可以不使用。工具可能需要升级,符号链接只是迁移方法之一。链接能让新旧名称共存,却不能让旧解析器理解语义版本,也不能证明沙箱、归档导出器或远程加载器跟随了链接。
可靠的选择回执应写明工具及版本、完整配置、有序搜索路径、全部候选、胜出规则、最终规范路径和实际读取摘要。只有成功退出码,最多证明程序结束了。
一份模块不是有效模式
运行时对象比单个文件大。RFC 8525 把 datastore schema 定义为多个 module set 的并集,其中包括实现模块、仅导入模块、子模块、位置、启用 feature 与 deviation。单个 module set 可以不具备引用完整性,而 datastore schema 必须满足全部 import。
所以,两台控制器即使对焦点文件得到相同哈希,仍可能编译出不同模式。一台找到较新的导入模块,另一台启用额外 feature、套用厂商 deviation,或在不同 schema-mount 语境中装载;第三台甚至使用同一仓库中的旧缓存依赖。
YANG Library 能说明服务器一侧。它的 content-id 在库信息变化时必须改变,但该值由实现定义;相同信息在不同服务器上不必产生同一值。它适合检测变化,不是跨系统的通用摘要。双端证明需要展开双方的模块、子模块、feature、deviation、datastore 与会话语境再比较。
BTW 另一篇文章已经讨论 schema-comparison 的 parsed/compiled 差异与分类算法,本篇不复述。分类结论可以成为证据链的一环,却不能替代输入身份与消费者行为。
校验通过仍不是部署通过
解析选中文件,证明的是某个工具下的语法;编译引用完整的模式,证明得更多;验证代表性实例,证明这些样本合规;客户端—服务器集成测试增加行为证据;混合版本演练才触及滚动部署;运行遥测和服务指标最后才回答网络与业务结果。
每一步对象不同。合法文件不等于合法依赖闭包;合法闭包不等于双端同一闭包;模式合法的数据仍可能因默认值、语义或权限变化而出现不同效果;金丝雀成功也不能证明所有批次拿到同一产物,或回滚能同时恢复旧模式与旧数据。
因此应保留完整链条:文件发现、字节身份、正文版本声明、分类依据、依赖解析、工具选择、加载事件、双端有效模式、实例与行为测试、发布顺序、运行态、外部结果。把这些阶段压成一个绿色文件名,只会让标签承担从未接受的责任。
文档验证器能说明什么
Datatracker 当前为草案抽取的示例模块显示两项错误和两项警告;可见输出称该抽取语境中没有定义 ysv 前缀。这是关于第 15 版文稿示例和验证工具的证据,不是厂商实现故障,也不能证明命名约定已经部署。
反方向也一样。进入 RFC Editor 队列不会把草案变成运行事实;注册表更新不证明仓库同步;相符文件名不证明互操作。标准流程状态与部署证据必须分列保存。
一手来源
封闭来源集包括第 15 版草案、Datatracker 文档页与历史、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。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
