gem hashdiff
使用相同命名空间的另一个 gem 出现问题,它会给出弃用警告:
此 gem 使用的 HashDiff 常量与另一个名称相似的 gem 冲突。 从1.0版本开始,HashDiff常量将被完全删除并替换为Hashdiff。 有关详细信息,请参阅 https://github.com/liufengyun/hashdiff/issues/45。
(链接是一个很长的对话,即使阅读它我也不确定如何升级这个特定的宝石(
我的/Gemfile
没有哈希差异,但是有一个宝石依赖于它,/Gemfile.lock
有hashdiff (0.4.0)
.
为了强制 hashdiff 升级到 1.0,我在 /Gemfile
中添加了 gem 'hashdiff', '~> 1.0'
并运行了bundle update hashdiff
但是:
Fetching gem metadata from https://rubygems.org/.
Could not find gem 'hashdiff (~> 1.0)' in any of the gem sources listed in your Gemfile.
唉,红宝石没有 1.0 版。
我们这些人如何处理弃用警告?忽略它直到宝石可用?还是别的什么?
Bundler 在解决依赖关系时不会考虑 gem 的测试版,除非您明确告诉 bundler 使用这样的测试版。
我只是将该宝石与评论一起添加到我的宝石文件中
# FIXME: Force bundler to use the beta version of the hashdiff gem
# `hashdiff` is a dependency of the `webmock` gem. Feel free to remove
# the following line from this Gemfile as soon as hashdiff 1.0.0 is
# officially released.
gem 'hashdiff', '>= 1.0.0.beta1'
gem 'webmock'
然后运行bundle update hashdiff
.
更新
hashdiff
宝石的第 1.0.0
版于 2019-07-15 发布。因此,不再需要此解决方法,并且无需先更新Gemfile
的bundle update hashdiff
应该可以解决问题。