如何使用"cargo yank"?
How to use "cargo yank"?
我发布了我的 crate,然后意识到我忘记在我的 README.md
中包含一些小细节。我已将该细节包含在 README.md
中,并做了 git commit
和 push
。如何在不更改版本的情况下更新我的箱子?
来自 the crates.io
documentation:
cargo yank
Occasions may arise where you publish a version of a crate that
actually ends up being broken for one reason or another (syntax error,
forgot to include a file, etc.). For situations such as this, Cargo
supports a yank
of a version of a crate.
$ cargo yank --vers 1.0.1
$ cargo yank --vers 1.0.1 --undo
我不明白如何使用它。为什么有 2 个命令:一个有另一个没有 --undo
?我应该 运行 他们两个吗?还是只有一个?哪个?
之后我应该运行 crate package && crate publish
吗?或者只有 cargo yank ...
?这会自动更新我的箱子吗?
您不能在不发布新版本的情况下更新您的 crate。 crate 存储库经过明确设计,因此 crate 是不可变的:一旦发布,它们就永远不会改变,period.
Yanking 适用于已发布的 crate 存在一些严重问题,例如严重的安全漏洞,或可能损坏用户数据,或者是的,因为它直接不起作用。这是一个信号,表明没有人 应该出于任何原因使用那个版本的板条箱。不完整的 README.md
并不真正符合该标准。
只发布一个新版本,或者等到您出于其他原因发布新版本时才发布。
至于为什么有两个命令:因为一个是yank一个版本,另一个是un-yank。 Un-yanking 与 publishing 不同,它只是恢复被 yanked 的箱子,就好像它从来没有被 yanked 一样。
我发布了我的 crate,然后意识到我忘记在我的 README.md
中包含一些小细节。我已将该细节包含在 README.md
中,并做了 git commit
和 push
。如何在不更改版本的情况下更新我的箱子?
来自 the crates.io
documentation:
cargo yank
Occasions may arise where you publish a version of a crate that actually ends up being broken for one reason or another (syntax error, forgot to include a file, etc.). For situations such as this, Cargo supports a
yank
of a version of a crate.$ cargo yank --vers 1.0.1 $ cargo yank --vers 1.0.1 --undo
我不明白如何使用它。为什么有 2 个命令:一个有另一个没有 --undo
?我应该 运行 他们两个吗?还是只有一个?哪个?
之后我应该运行 crate package && crate publish
吗?或者只有 cargo yank ...
?这会自动更新我的箱子吗?
您不能在不发布新版本的情况下更新您的 crate。 crate 存储库经过明确设计,因此 crate 是不可变的:一旦发布,它们就永远不会改变,period.
Yanking 适用于已发布的 crate 存在一些严重问题,例如严重的安全漏洞,或可能损坏用户数据,或者是的,因为它直接不起作用。这是一个信号,表明没有人 应该出于任何原因使用那个版本的板条箱。不完整的 README.md
并不真正符合该标准。
只发布一个新版本,或者等到您出于其他原因发布新版本时才发布。
至于为什么有两个命令:因为一个是yank一个版本,另一个是un-yank。 Un-yanking 与 publishing 不同,它只是恢复被 yanked 的箱子,就好像它从来没有被 yanked 一样。