Проблема при установке некоторых gems в плагине

@sam

Я не могу установить некоторые gem-пакеты в плагине, например google-protobuf. Этот gem является зависимостью для gem-пакета google-cloud-vision.

Вот пример плагина, пытающегося его установить: GitHub - fzngagan/gem-issue · GitHub

Логи
gem install google-protobuf -v 3.13.0 -i /Users/faiz/discenv/discourse/plugins/gem-issue/gems/2.6.3 --no-document --ignore-dependencies --no-user-install
Успешно установлен google-protobuf-3.13.0-universal-darwin
Установлен 1 gem
Вы указываете gem google-protobuf в файле /Users/faiz/discenv/discourse/plugins/gem-issue/plugin.rb, однако он не найден!
Искать: /Users/faiz/discenv/discourse/plugins/gem-issue/gems/2.6.3/specifications/google-protobuf-3.13.0.gemspec

Причина этого в том, что имя файла .gemspec не совпадает с именем spec_file, предполагаемым в коде здесь:

По моему мнению, это может происходить только при использовании платформо-специфичных gem-пакетов, так как имя платформы добавляется к имени gem, если он зависит от платформы. Это описано здесь: Specification Reference - RubyGems Guides

Не совсем понятно, зачем вы упомянули меня в этой теме? Я не очень хорошо разбираюсь в нашей системе разрешения пользовательских гемов, извините.

Я посмотрел историю изменений, и, кажется, у вас больше всего коммитов в этом файле? Буду рад, если вы укажете правильное направление :slight_smile:

Думаю, @sam сможет помочь. Он написал импорт gem-пакетов для плагинов.

Конечно, спасибо за подсказку.

@sam, у тебя была возможность посмотреть?

@sam, не мог бы ты помочь @fzngagan с этим? Я спонсирую этот плагин:

Он будет доступен для всех. Крайне важно, чтобы форум был свободен от изображений, которые могут нанести вред, и это обязательно поможет избежать блокировок от Google AdSense за недопустимый контент.

Кажется, здесь есть ошибка. Может, стоит создать PR, чтобы попытаться исправить эту особенность?

Вот очень простой PR, исправляющий эту проблему.

Я пытался найти изящное решение, чтобы разработчикам не приходилось беспокоиться о платформе, но ничего не нашёл. Буду рад улучшить это, если найду лучшее решение.

Также совет для разработчиков: во время разработки вы можете просто добавить gem в Gemfile проекта Discourse и не сходить с ума. Обо всём этом стоит беспокоиться только при развёртывании.

Спасибо за мерж, @sam.