Конфликты драгоценных камней Ruby

Я пытаюсь обновить определенный гем Slack-Client с версии 1 до версии 2.

Проблема в том, что версия 2 использует другой гем под названием Faraday с версией 2, и у меня есть в Gemfile другой гем под названием Kit, который использует Faraday версии 1.

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

  In Gemfile:
    oktakit was resolved to 0.3.3, which depends on
      faraday (>= 0.17.3, < 2)

    slack-ruby-client (= 2.0.0) was resolved to 2.0.0, which depends on
      faraday (>= 2.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
  1. Я хотел бы знать, есть ли способ обновить Slack-Client до версии 2 без создания нового конфликта
  2. Я пробовал разные подходы, но все они создают одну и ту же ошибку

🤔 А знаете ли вы, что...
Rails обеспечивает интеграцию с различными системами управления версиями, такими как Git и SVN.


77
1

Ответ:

Решено

Вы не можете требовать один и тот же гем несколько раз в разных версиях вашего приложения одновременно. В вашем случае это означает, что вы не можете обновить slack-ruby-client до версии, для которой требуется faraday >= 2.0, сохраняя драгоценный камень oktakit в версии, для которой требуется faraday < 2.

Поскольку нет доступной версии oktakit, вы застряли и должны ждать обновления oktakit.

Что вы можете попробовать, так это разветвить эти драгоценные камни и попробовать, будет ли один из них работать с версией faraday, требуемой другим. Или вы исследуете, можете ли вы заменить oktakit на любой другой камень , связанный с Okta, который поддерживает ваш вариант использования.