У драгоценного камня hashdiff
есть проблемы с другим драгоценным камнем, использующим то же пространство имен, он выдает предупреждение об устаревании:
Константа HashDiff, используемая этим гемом, конфликтует с другим гемом с таким же названием. Начиная с версии 1.0 константа HashDiff будет полностью удалена и заменена на Hashdiff. Для получения дополнительной информации см. https://github.com/liufengyun/hashdiff/issues/45.
(Ссылка на длинный разговор, даже читая его, я не уверен, как обновить этот конкретный драгоценный камень)
В моем /Gemfile
нет хешдиффа, однако есть гем, который зависит от него, в /Gemfile.lock
есть hashdiff (0.4.0)
.
Чтобы принудительно обновить hashdiff до 1.0, я добавил gem 'hashdiff', '~> 1.0'
к /Gemfile
и запустил 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.
Увы, у rubygems нет версии 1.0.
Как мы, люди, справляемся с предупреждением об устаревании? Игнорировать его, пока драгоценный камень не станет доступным? Или что-то другое?
🤔 А знаете ли вы, что...
Синтаксис Ruby известен своей простотой и выразительностью.
Bundler не рассматривает бета-версии драгоценного камня при решении зависимостей, если вы явно не укажете сборщику использовать такую бета-версию.
Я бы просто добавил этот драгоценный камень вместе с комментарием в свой 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
.
Обновлять
Версия 1.0.0
драгоценного камня hashdiff
была выпущена 15 июля 2019 г. Поэтому этот обходной путь больше не нужен, и bundle update hashdiff
— без необходимости сначала обновлять Gemfile
— должен решить проблему.