Rencontre un problème lors de l'installation de certains gems dans le plugin

@sam

Je ne parviens pas à installer certaines gems dans le plugin, par exemple google-protobuf. Cette gem est une dépendance de la gem google-cloud-vision.

Voici un plugin qui tente de l’installer : GitHub - fzngagan/gem-issue · GitHub

Journaux
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
Installation réussie de google-protobuf-3.13.0-universal-darwin
1 gem installée
Vous spécifiez la gem google-protobuf dans /Users/faiz/discenv/discourse/plugins/gem-issue/plugin.rb, mais elle n'existe pas !
Recherche effectuée dans : /Users/faiz/discenv/discourse/plugins/gem-issue/gems/2.6.3/specifications/google-protobuf-3.13.0.gemspec

La raison en est que le nom du fichier .gemspec ne correspond pas au nom du spec_file supposé dans le code ici.

À mon avis, cela ne se produirait probablement que lors de l’utilisation de gems spécifiques à une plateforme, car le nom de la plateforme est ajouté au nom de la gem si celle-ci dépend de la plateforme. Cela est décrit ici : Specification Reference - RubyGems Guides

Il n’est pas clair pourquoi vous m’avez mentionné sur ce sujet. Je ne connais pas grand-chose à notre résolution de gems personnalisée, désolé.

J’ai vérifié l’historique et vous semblez être celui qui a le plus de commits sur ce fichier, non ? Je serais ravi d’être orienté dans la bonne direction ici :slight_smile:

Je pense que @sam pourrait peut-être vous aider. C’est lui qui a écrit l’importation des gems pour les plugins.

Bien sûr, merci pour l’indice.

@sam as-tu eu l’occasion de jeter un coup d’œil ?

@sam, pourrais-tu aider @fzngagan à ce sujet ? Je sponsorise ce plugin :

Il sera mis à la disposition de tout le monde. Il est essentiel de maintenir un forum exempt d’images susceptibles de nuire, et cela aidera certainement à éviter les sanctions de Google AdSense pour contenu non autorisé.

Je suppose qu’il y a un bug ici. Pourquoi ne pas proposer une PR pour tenter de corriger cette bizarrerie ?

Voici un PR très simple qui corrige le problème.

J’ai essayé de trouver une méthode élégante pour résoudre cela afin que les développeurs n’aient pas à se soucier de la plateforme, mais je n’ai rien trouvé de mieux. Je suis prêt à améliorer cela si je trouve une meilleure solution.

En outre, un conseil pour les développeurs : vous pouvez simplement ajouter le gem dans le fichier gemfile de Discourse pendant le développement sans devenir fou. Ne vous inquiétez de tout cela que pour le déploiement.

Merci d’avoir fusionné, @sam.