cargo-semver-checks 0.51.0 发布,为 C-ABI 可变参数函数新增了六条 lint。
为什么这条新闻有点特别
按项目说法,C-ABI 可变参数函数是 Rust 1.99 新增的语言特性。这是第一次有语言特性在加入的同一个版本里就配上了 SemVer lint。
通常的路径是:特性稳定 → 有人踩坑 → 社区补工具。这次工具和特性同步落地,说明 Rust 生态在兼容性检查上的成熟度确实提高了。
它检查什么
可变参数函数的签名变化(比如参数类型调整、返回值变化)对下游是破坏性变更,但靠人工 review 很容易漏。这六条 lint 会在发布前自动拦下这类改动。
项目自身也在收紧依赖
它自己的依赖更新现在使用 -Z min-publish-age,设为七天,同时对构建脚本按哈希固定了白名单。
为什么要这么做
crate 发布后立刻被依赖,等于把刚出炉、还没经过任何实际检验的版本直接引入依赖树。设一个最小发布年龄,等别人先踩一遍,是低成本的保险。
建议
如果你的 crate 对外发布、有下游使用者,把 cargo-semver-checks 接进 CI 是性价比很高的一步。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。