如何使用货物"?

时间:2017-05-16 04:19:55

标签: rust rust-cargo rust-crates

我已经发布了我的箱子,然后意识到我已经忘记在我的README.md中加入一些细节。我已将该详细信息纳入README.md并完成git commitpush。如何更新我的箱子而不必更改其版本?

来自the crates.io documentation

  

cargo yank

     

在您发布版本的箱子时,可能会出现这种情况   实际上最终因某种原因而被打破(语法错误,   忘了包含文件等)。对于像这样的情况,货物   支持yank版本的箱子。

$ cargo yank --vers 1.0.1 

$ cargo yank --vers 1.0.1 --undo

我不明白如何使用它。为什么有两个命令:一个没有--undo?我应该同时运行它们吗?还是只有一个?哪个?

之后我应该运行crate package && crate publish吗?或者只有cargo yank ...?这会自动更新我的箱子吗?

1 个答案:

答案 0 :(得分:5)

无法更新您的包,而不会发布新版本。 crate存储库是明确设计的,因此crate是不可变的:一旦发布,它们永远不会改变, period。

Yanking适用于已发布包装箱存在严重问题的情况,例如严重的安全漏洞,或可能损坏用户的数据,或是,因为它只是直接无法正常工作。这是一个信号,没有人应该出于任何原因使用该版本的箱子。不完整的README.md并不真正符合该标准。

只需发布新版本,或等到您出于其他原因发布新版本。

至于为什么有两个命令:因为一个人猛击一个版本,而另一个人猛拉它。 un-yanking与发布不同,它只是恢复被猛拉的箱子,好像它从来没有被猛拉过一样。