如何从crates.io中删除已发布的板条箱?

时间:2018-10-04 04:43:52

标签: rust

我不小心将我的私人箱子发布到了crates.io。如何删除?我检查了documentation,但似乎无法删除已发布的板条箱。

3 个答案:

答案 0 :(得分:15)

预防

为避免将来出现这种情况,请确保您包括以下内容:

[package]
# ...
publish = false

在箱子的Cargo.toml中。参见documentation

缓解措施

立即yank使用以下工具包装箱:

cargo yank --vers <your-version>

这将防止其他任何依赖它的箱子意外启动。

如果意外泄露了任何秘密(密码,密钥等),请认为它们不再是秘密,并采取适当措施将其替换为新的秘密。

删除

通过crates.io与帮助人员联系,并说明情况,要求将其撤职。

如果您的解释是有充分根据的,并且尚未下载并依赖此板条箱,则他们没有理由拒绝提供帮助。

请耐心等待;一旦拉出板条箱,任何人都无法开始依赖它,因此应该没有太多时间压力。给团队几天时间以实际执行删除。

如果此事由于某种原因对时间敏感,您可以跳到IRC或Discourse上,并抓住有权执行清除的人的注意。询问,您将被定向到这样的人。

答案 1 :(得分:1)

发布后,您将无法删除它。但是,您可以yank it将您的板条箱标记为不可用:基本上,没有人会使用它,并且没有人或很少人会看到该内容。这项政策允许禁止将您的软件包作为依赖项的其他包装箱任意破坏。

如果此板条箱中有您不想公开的代码或信息,请参阅the other answer

答案 2 :(得分:0)

Crates.io policies删除下说:

  

我们将按照法律要求的方式去做,并解决公然违反Rust行为准则的行为。 […] Crates.io将尊重Mozilla Legal在托管内容方面的决定。

我建议首先将邮件发送到help@crates.io,如果发现不合作,请升级为Mozilla Legal。只是作为最后的手段,添加蓄意违反行为准则以触发删除。

编辑,我同意这不是理想的情况,因此我提交了pull request with a proposed policy change