¡Funciona, gracias!
Hola @michaeld @RGJ, no estoy seguro si este es el lugar adecuado para preguntar, pero estoy experimentando un problema similar con ffi al usar el repositorio en https://github.com/communiteq/discourse-siwe-auth así como https://github.com/spruceid/discourse-siwe-auth.
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)
Sección de hooks de mi aplicación autoalojada de 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
Por ahora, voy a intentar hacer un fork de tu repositorio y aumentar la versión, ya que tengo una fecha límite para migrar esta instancia de Discourse. Solo quería informarte sobre esto.
También, me gustaría saber si el plugin es mantenido activamente por Communiteq.
¡Gracias de antemano!
Sin mirar el código…
¿Podría ser que ffi ahora esté en el núcleo y no necesites agregarlo?
No estoy muy familiarizado con Ruby, así que no puedo hacer una declaración sobre el plugin, pero puedo confirmar que aumentar el ffi a 1.17.2 en el repositorio bifurcado funciona de maravilla, y con aumentar me refiero a cambiar el plugin.rb con:
gem 'ffi', '1.17.2', require: false
Eso funcionó para mí, pero realmente me gustaría usar el plugin mantenido oficialmente en lugar de mi propia bifurcación.
Mi sugerencia fue eliminar la gema por completo. Y cuando eso funcione, envía una PR con esa línea eliminada.
Lo mantenemos más bien pasivamente. El repositorio oficial está en spruceid, pero como ejecutamos varios sitios que usan el plugin, en la práctica somos nosotros quienes lo arreglamos primero. Esta vez nos ganaste, todavía está en nuestra lista de plugins para cambiar para la 3.5.
Si nadie hace una PR al repositorio oficial, me ocuparé de esto al final de esta semana o al principio de la próxima.
Preferiría dejarle a usted la tarea de abrir el PR, ya que probablemente tenga consideraciones o pruebas sobre el plugin que desconozco, dado que sé muy poco sobre este servicio, ya que estoy en proceso de migrarlo.
Gracias por su ayuda, información y contribuciones sobre este tema.
He arreglado el plugin; de hecho, solo era cuestión de eliminar la inclusión explícita de la gema ffi.
También he enviado una pull request al repositorio original. Mientras la PR no haya sido aceptada, puedes usar https://github.com/communiteq/discourse-siwe-auth en lugar del repositorio original.
Cambiaré el enlace en el OP a este por el momento también.
Reviso el archivo discourse-compatibility de este plugin y muestra que admite versiones anteriores a 3.2.0.beta2-dev. ¿Habrá algún problema al usar este plugin con la última versión de Discourse?
Dado que ese archivo indica compatibilidad hacia atrás, la ausencia de versiones recientes en el archivo .plugin-compatibility es algo bueno.
