Управление конфликтами версий Gem в плагинах Discourse

Привет! Я создаю плагин для Discourse с использованием внешних gem-пакетов. Я уже учёл некоторые рекомендации из других тем, касающиеся работы с внешними gem-пакетами, например, из этих обсуждений: Requiring external gems и Plugin using own gem - #3 by kgish. Эти рекомендации включают добавление необходимых пакетов для внешних зависимостей. В процессе разработки плагина для Discourse всё работает отлично. Однако иногда после каждого обновления Discourse при пересборке с плагином и последней версией я сталкиваюсь с ошибками, связанными с конфликтами версий gem-пакетов.

Вот пример такой ошибки:

rake aborted!
Gem::LoadError: can't activate addressable-2.8.4, already activated addressable-2.8.5

Я заметил похожую ситуацию в других плагинах, что отражено в следующих темах форума: Install discourse failed due to Custom Wizard plugin и Failed to Bootstrap after upgrade.

В настоящее время я пытаюсь решить эту проблему путём обновления пакета до последней версии, чтобы он соответствовал версии, используемой в ядре Discourse.

Однако я хотел бы узнать, существует ли решение этой проблемы, которое не требует обновления пакета до последней версии ядра Discourse каждый раз при обновлении.

Вам необходимо обновить (или отправить запрос на слияние) каждый зависимый плагин, чтобы синхронизировать версии на основе Core. Смешивать версии нельзя.

В данном случае, если какой-либо используемый вами плагин использует addressable-x.x.x, убедитесь, что он обновлен до версии addressable-2.8.5.

Спасибо за ответ, @merefield. Да, я делаю так каждый раз, когда сталкиваюсь с конфликтами версий пакетов. Возможно, мне стоит подумать о более продуманном версионировании плагина, чтобы пользователи, которые всё ещё хотят использовать более старую версию Discourse, могли продолжать использовать плагин.