Discourse no puede encontrar las gemas especificadas en el plugin

¡Hola! Estoy desarrollando un plugin para habilitar Sign-In with Ethereum en Discourse. El problema es que al instalar el plugin obtengo un error con una de las dependencias (rbsecp256k1).

ERROR:  Error installing rbsecp256k1:
	ERROR: Failed to build gem native extension.

    current directory: /var/www/discourse/plugins/sdp/gems/2.7.5/gems/rbsecp256k1-5.1.0/ext/rbsecp256k1
/usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/2.7.0 -r ./siteconf20220303-1234-gyqjb.rb extconf.rb
extconf.rb:3:in `require': cannot load such file -- mini_portile2 (LoadError)
	from extconf.rb:3:in `<main>'

extconf failed, exit code 1

Me pregunto qué podría estar pasando, ya que funciona en desarrollo si instalo manualmente las dependencias.

Esa gema tiene dependencias a nivel de sistema operativo que necesitas tener instaladas, según su documentación: GitHub - etscrivner/rbsecp256k1: Compiled Ruby wrapper around libsecp256k1 for secp256k1 ECDSA.

Sí, ya tengo instalados esos, el problema ocurre cuando no puede encontrar mini_portile2, que es una de sus dependencias.

¿Cómo declaró la dependencia mini_portile2 en su plugin?

He experimentado el mismo problema al instalar la misma dependencia de gem.

Échale un vistazo

Me encantaría que hubiera una solución más sencilla.

¿No puedes simplemente eliminar eso ya que ya está en el núcleo de Discourse?

Quiero decir, puedo, pero el problema no es con esa gema, el problema es con rbsecp256k1, cuando intenta compilar no encuentra la gema mini_portile2 (Como dice el error: cannot load such file -- mini_portile2 (LoadError) from extconf.rb:3:in \u003cmain\u003e')

Estás repitiendo lo mismo que @fzngagan, mira su enlace de arriba: Having a hard time installing `eth` gem in a plugin in production - #3 by fzngagan, quizás puedas contribuir a su solución.

Su solución funciona, pero no la considero una opción válida, ningún usuario estaría dispuesto a hacer todo eso solo para agregar un complemento. Solo quería saber si alguien podía pensar en un mejor enfoque (lo más cercano a simplemente agregar el repositorio y listo). como dijo el propio @fzngagan:

Me encantaría que hubiera una solución más directa.

Y ahora tenemos dos temas sobre el mismo problema…

Lo he estado reduciendo, no parece estar relacionado con los gems, parece estar relacionado con extconf.rb. Probé con otros pocos gems con una configuración más compleja (ruby-magic y libusb), ambos no funcionan (por diferentes razones), todo lo que tienen en común son dependencias en extconf.rb.

Este problema se ha corregido en las últimas ramas tests-passed y stable de discourse.

Todavía no, la PR no se ha fusionado todavía.

@RGJ Hubo algunas pruebas fallidas que debían abordarse primero. Ya está fusionado.