递归检查不需要的通配符依赖项

时间:2016-03-21 13:12:46

标签: rust rust-cargo

我有一个库,并希望确保我的依赖树中没有任何依赖项使用通配符依赖项。通配符依赖是邪恶的:(

我可以在命令行中使用cargo递归检查吗?或者我可以在Cargo.lock手动检查吗?

编辑:虽然发布了Rust 1.6(approximately,感谢Steve Klabnik),crates.io拒绝了带有通配符依赖关系的crates,但{{1}上仍然有旧的包装箱那个有通配符依赖项。我可以上传自己的箱子,这取决于这样一个旧的箱子。因此我的箱子也间接依赖于通配符依赖。这就是我想要避免和检查的内容。

2 个答案:

答案 0 :(得分:3)

截至几个月前,Cargo不再允许通配符依赖。所以你自己不需要这样做。

这是crates.io功能,而不是Rust或Cargo功能,因此它与这些工具的任何特定版本无关。更新发生了around the time we released Rust 1.6

答案 1 :(得分:3)

我编写了一个小脚本,它接受crates.io-index并读取所有包的当前信息。如果包对另一个包具有直接通配符依赖性,则会以crate-name -> wildcard-dependency, another-one格式打印一行。

995 current packages with wildcard dependencies。该列表是详尽无遗的,只有在更新软件包时才会减少长度。

您可以手动浏览Cargo.lock中的所有依赖项,并检查列表中是否提及它们。请注意,必须使用最新版本的依赖项,以确保不依赖于具有通配符依赖性的过时包。