我已经发布了我的箱子,然后意识到我已经忘记在我的README.md
中加入一些细节。我已将该详细信息纳入README.md
并完成git commit
和push
。如何更新我的箱子而不必更改其版本?
来自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 ...
?这会自动更新我的箱子吗?
答案 0 :(得分:5)
您无法更新您的包,而不会发布新版本。 crate存储库是明确设计的,因此crate是不可变的:一旦发布,它们永远不会改变, period。
Yanking适用于已发布包装箱存在严重问题的情况,例如严重的安全漏洞,或可能损坏用户的数据,或是,因为它只是直接无法正常工作。这是一个信号,没有人应该出于任何原因使用该版本的箱子。不完整的README.md
并不真正符合该标准。
只需发布新版本,或等到您出于其他原因发布新版本。
至于为什么有两个命令:因为一个人猛击一个版本,而另一个人猛拉它。 un-yanking与发布不同,它只是恢复被猛拉的箱子,好像它从来没有被猛拉过一样。