動作します、ありがとうございます!
こんにちは @michaeld @RGJ、ここが質問するのに適切な場所かどうかわかりませんが、リポジトリ https://github.com/communiteq/discourse-siwe-auth および https://github.com/spruceid/discourse-siwe-auth を使用する際に、ffi に関して同様の問題が発生しています。
I, [2025-08-26T12:22:42.475531 #1] INFO -- :
I, [2025-08-26T12:22:42.475839 #1] INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
Gem::LoadError: can't activate ffi-1.17.1-x86_64-linux-gnu, already activated ffi-1.17.2-x86_64-linux-gnu (Gem::LoadError)
/var/www/discourse/lib/plugin_gem.rb:25:in `load'
/var/www/discourse/lib/plugin/instance.rb:861:in `gem'
/var/www/discourse/plugins/discourse-siwe-auth/plugin.rb:23:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:806:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:806:in `activate!'
/var/www/discourse/lib/discourse.rb:344:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:341:in `each'
/var/www/discourse/lib/discourse.rb:341:in `activate_plugins!'
/var/www/discourse/config/application.rb:196:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:196:in `<class:Application>'
/var/www/discourse/config/application.rb:62:in `<module:Discourse>'
/var/www/discourse/config/application.rb:61:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.3.0/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(See full trace by running task with --trace)
私のDiscourseセルフホストアプリのフックセクション:
hooks:
before_code:
- exec:
cmd:
- gem install rubyzip
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/communiteq/discourse-siwe-auth.git
- git clone https://github.com/discourse/discourse-code-review.git
今のところ、このDiscourseインスタンスを移行する締め切りがあるので、リポジトリをフォークしてバージョンを上げることを試してみます。この件についてお知らせしたかっただけです。
また、このプラグインがCommuniteqによって積極的にメンテナンスされているかどうかを知りたいです。
よろしくお願いします!
コードを見ずに…
ffiがコアに入ったので、追加する必要がないことが原因の可能性がありますか?
Rubyにはあまり詳しくないので、プラグインについてコメントすることはできませんが、フォークしたリポジトリでffiを1.17.2に更新するとうまくいくことを確認できます。更新とは、plugin.rbを次のように変更することです。
gem 'ffi', '1.17.2', require: false
これは私にはうまくいきましたが、自分でフォークしたものではなく、公式にメンテナンスされているプラグインを本当に使用したいです。
私の提案は、gemを完全に削除することでした。それが機能したら、その行を削除したPRを提出します。
どちらかというと受動的にメンテナンスしています。公式リポジトリはspruceidにありますが、実際に多くのサイトでプラグインを使用しているため、実質的には私たちが最初に修正しています。今回はあなたが私たちより先でしたが、これはまだ3.5で変更するプラグインのリストに載っています。
公式リポジトリにPRがない場合、今週末か来週初めまでには対応します。
PRのオープンはあなたにお任せしたいと思います。なぜなら、私がこのサービスについてほとんど知らないまま移行を進めているため、あなたはおそらく私が知らないプラグインに関する考慮事項やテストを持っているだろうからです。
この件に関するご協力、情報提供、貢献に感謝いたします。
プラグインを修正しました。ffi gem の明示的なインクルージョンを削除するだけでした。
元のリポジトリにもプルリクエストを作成しました。PR が承認されるまでは、元のリポジトリの代わりに https://github.com/communiteq/discourse-siwe-auth を使用できます。
一時的に OP のリンクもこれに変更します。
このプラグイン .discourse-compatibility ファイルを見ると、3.2.0.beta2-dev より前のバージョンをサポートしていると表示されています。最新の Discourse バージョンで使用した場合、このプラグインに何か問題はありますか?
そのファイルは後方互換性を示しているので、.plugin-compatibility ファイルに最近のバージョンがないのは良いことです。
