我有一个依赖链,最终依赖于可选地在已弃用的库上。具体来说,我想使用间接依赖于 rustc-serialize 的 nalgebra,如下所示:
nalgebra -> alga -> num-complex -> (可选默认值)rustc-serialize
我可以在 Cargo.toml 文件中列出 num-complex 依赖项,并关闭可选的 rustc-serialize 依赖项(num-complex = { version = "0.1.42", default-features = false }
),但是有没有办法在 Cargo.toml 中一直关闭此选项?
我尝试了另一种方法,即克隆每个文件并操作本地副本的 Cargo.toml 文件来引用所有本地依赖项,这种方法可行,但如果可能的话,我希望有一种更可维护的方法来做到这一点。
As H2O状态 https://stackoverflow.com/a/48686214/155423,这是不可能的,但请检查他们的答案以获得良好的临时解决方法以使事情再次正常运行。我想讨论一下为什么不应该是否可能以及长期解决方案是什么。
一般来说,您无法判断包使用依赖项做什么。完全有可能alga利用 rustc-serialize 功能复数内部。
正确的做法是向上跟踪依赖链。转到每个项目并添加一个选择加入其直接依赖项的 rustc-serialize 功能的功能。您还可以添加rustc-serialize
功能更改为默认功能以保持向后兼容性。
要么你最终能够向项目提交 PR 来改进每个人的情况,或者你会明白为什么你认为是可选的实际上不是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)