Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 递归检查不需要的通配符依赖项_Rust_Rust Cargo - Fatal编程技术网

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

Rust 递归检查不需要的通配符依赖项,rust,rust-cargo,Rust,Rust Cargo,我有一个库,希望确保我的依赖关系树中没有任何依赖关系使用通配符依赖关系。通配符依赖关系是邪恶的:( 我可以用命令行中的cargo递归地检查它吗?或者我可以在cargo.lock中手动检查它吗 编辑:而crates.io拒绝自1.6版发行以来具有通配符依赖关系的板条箱(,感谢Steve Klabnik),在板条箱上仍有旧板条箱。io具有通配符依赖关系。我可以上载依赖于此类旧板条箱的我自己的板条箱。因此,我的板条箱也间接依赖于通配符依赖关系。这是我要避免和检查的。几个月前,Cargo不再允许通配符依

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

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


编辑:而
crates.io
拒绝自1.6版发行以来具有通配符依赖关系的板条箱(,感谢Steve Klabnik),在
板条箱上仍有旧板条箱。io
具有通配符依赖关系。我可以上载依赖于此类旧板条箱的我自己的板条箱。因此,我的板条箱也间接依赖于通配符依赖关系。这是我要避免和检查的。几个月前,Cargo不再允许通配符依赖关系。因此你不需要自己做这件事


这是一个crates.io功能,不是Rust或Cargo功能,因此它与这些工具的任何特定版本都没有关联。发生了更新。

我编写了一个小脚本,它接受并读取所有包的当前信息。如果一个包与另一个包有直接通配符依赖关系,则在格式化
板条箱名称->通配符依赖项,另一个

有。该列表是详尽的,只有在更新包时才会减少长度


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

您是否有(稳定的)依赖项首次激活此功能的Cargo/Rust版本?它允许使用旧版本的用户知道它是否“已修复”这正是我的问题:我的库有一个旧的依赖项,它仍然使用通配符依赖项。我仍然可以将我的板条箱发布到
crates.io
,因为它不直接使用通配符依赖项,而只能通过另一个板条箱。因此,通过一个巨大的依赖项树,我想检查此板条箱中的任何内容是否没有ree仍然使用通配符依赖项。所以…这只是检查直接依赖项?所以如果我的板条箱依赖于
crate-a
,它依赖于
crate-b
,它具有通配符依赖项,那么:(1)
crate-b
列在您的列表中(2)查找我的板条箱的依赖项(即
[crate-a]
)这对我没什么帮助。我理解正确吗?如果正确,如果你能做这个递归的东西和/或发布你的脚本,那就太棒了。:)你必须检查“Cargo.lock”中提到的所有依赖项。最初的文本有一个拼写错误,上面写着“Cargo.toml”。但这仅适用于所有依赖项都使用最新依赖项的情况:-(啊,好吧,我想这是有道理的。你还可以发布你的脚本吗?我当然会对它感兴趣。另外:我想我会ping这些家伙,问他们是否想集成这个功能……下面是答案。人们可能可以更好地实现它,因为正确地实现它需要了解semver,以确定正确的版本。)n的所有依赖项。