如何在cargo.toml文件中将特定版本的依赖项列入黑名单?

问题描述

我对Cargo.toml文件中的外部库有依赖性:

[dependencies]
foo = "0.5.6"

不幸的是,foo板条箱发布了一个新版本0.5.7,该版本引入了实质性的回归。很快将有一个新版本™0.5.8,该版本不再包含此错误。有什么办法可以防止货物拉坏版本?我知道可以指定“ 0.5.6或更早的名称”,例如:

[dependencies]
foo = "0.5.0,<0.5.7"

但是有没有一种方法可以在发布0.5.8时将其包含在内?

解决方法

否,Cargo不允许这样做,使用foo = "0.5.0,<0.5.7"是目前最好的选择。我个人不相信尚未发布的版本肯定会解决您的问题。新版本发布并经过测试后,您可以切换到foo = "0.5.8"

您还可以要求板条箱作者取消0.5.7版; Cargo不会选择拉动版本,因此它将使用0.5.6作为最新版本,直到发布0.5.8。 Yanking是处理损坏的发行版的正确解决方案。