我想接管已经部署在 crates.io 中的不再维护的开源 Rust 包。
虽然在 Cargo.toml 中要求为我的分叉使用不同的名称显然是适当且适当的,但我不希望要求更改其余代码,以使潜在用户更容易切换。当我简单地重命名Cargo.toml中的条目时,很多代码到处都被破坏了。需要的是旧名称。
提供相同功能的可插入实现,用户可以轻松切换,比较性能和自己的测试结果,这看起来更合乎逻辑。
作为解决方法,我目前在 Cargo.toml:
中指定 git URLold_name = { git = "https://github.com/new_repository", branch = "1.0.0" }
这在测试我自己的部署时对我有用。但我可能更喜欢 crates.io 作为公共开源项目。
是否可以使用与代码中引用的包名称不同的名称在 crates.io 上部署项目,以及如何部署?我查看了cargopublish的文档,但似乎没有涵盖这种情况。
您可以通过指定
package
(文档)来重命名依赖项。看起来是这样的:
old_name = { package = "new_name", version = "..." }
这意味着它可以在您的代码中以
old_name
的形式进行访问,但货物在解析时会以 new_name
的形式查找它。