У меня есть проект 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 - но это похоже на действительно уродливый и чрезмерно сложный взлом. (т. е. это ставит вопрос о поддержании разветвленного проекта в актуальном состоянии.)