首页 > 解决方案 > ruby gem hashdiff - 如何升级到 1.0 以停止弃用警告

问题描述

gemhashdiff与使用相同命名空间的另一个 gem 有问题,它给出了弃用警告:

此 gem 使用的 HashDiff 常量与另一个名称相似的 gem 冲突。从 1.0 版开始,HashDiff 常量将被完全删除并被 Hashdiff 取代。更多信息参见https://github.com/liufengyun/hashdiff/issues/45

(链接是一个很长的对话,即使阅读它我也不知道如何升级这个特定的宝石)

/Gemfile的里面没有 hashdiff,但是有一个依赖于它的 gem,/Gemfile.lock里面有hashdiff (0.4.0).

为了强制 hashdiff 升级到 1.0,我添加并运行了,gem 'hashdiff', '~> 1.0'但是 :/Gemfilebundle 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.

唉 ruby​​gems 没有 1.0 版。

我们如何处理弃用警告?在宝石可用之前忽略它?或者是其他东西?

标签: rubyrubygems

解决方案


Bundler 在解决依赖关系时不会考虑 gem 的 beta 版本,除非您明确告诉 bundler 使用这样的 beta 版本。

我只是将那个 gem 和一个评论一起添加到我的 Gemfile

# 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

更新

gem版本1.0.0hashdiff2019-07-15 发布。因此,不再需要此解决方法,并且bundle update hashdiff无需更新第一个解决方法即可Gemfile解决该问题。


推荐阅读