Есть ли способ заставить сборщик принять конкретную версию драгоценного камня? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть проект rails, где определенные сторонние зависимости настаивают на определенной версии другой сторонней библиотеки (используя ~>). Когда я пытаюсь выполнить установку пакета, я получаю следующее:

Bundler could not find compatible versions for gem "faraday":
  In snapshot (Gemfile.lock):
    faraday (= 0.9.2)

  In Gemfile:
    linkedin-v2 (>= 0.1.7) was resolved to 0.1.7, which depends on
      faraday (~> 0.11)

    twitter (~> 5.0) was resolved to 5.17.0, which depends on
      faraday (~> 0.9.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

Применимые сегменты из Gemfile:

...
gem 'linkedin-v2', '>= 0.1.7'
...
gem 'twitter', '~> 5.0'
...

В этом случае я почти уверен, что в сторонней библиотеке нет несовместимости, и после тестирования я могу без проблем использовать Фарадей 0.11. Есть ли какая-либо директива, которую я могу использовать в способе Gemfile, чтобы указать компоновщику просто принять определенную версию гема, возможно, при выводе предупреждения?

Я могу разветвить сторонний проект на github (в данном случае это проект 'twitter'), а затем изменить номер версии faraday в его Gemfile, а затем сослаться на этот разветвленный проект в моем Gemfile - но это похоже на действительно уродливый и чрезмерно сложный взлом. (т. е. это ставит вопрос о поддержании разветвленного проекта в актуальном состоянии.)

...