Discourse non trova le gemme specificata nel plugin

Ciao! Sto sviluppando un plugin per abilitare Sign-In with Ethereum su Discourse. Il problema è che quando installo il plugin ricevo un errore con una delle dipendenze (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

Mi chiedo cosa possa succedere dato che funziona in sviluppo se installo manualmente le dipendenze.

Quella gemma ha dipendenze a livello di sistema operativo che devi avere installate, secondo la loro documentazione: GitHub - etscrivner/rbsecp256k1: Compiled Ruby wrapper around libsecp256k1 for secp256k1 ECDSA.

Sì, li ho già installati il problema si verifica quando non riesce a trovare mini_portile2, che è una delle sue dipendenze.

Come hai dichiarato la dipendenza mini_portile2 sul tuo plugin?

Ho riscontrato lo stesso problema durante l’installazione della stessa dipendenza gem.

Dai un’occhiata

Mi piacerebbe molto se ci fosse una soluzione più diretta.

Non puoi semplicemente eliminarlo dato che è già nel core di Discourse?

Voglio dire, posso ma il problema non è con quella gemma, il problema è con rbsecp256k1, quando prova a compilarlo non trova la gemma mini_portile2 (come dice l’errore: cannot load such file -- mini_portile2 (LoadError) from extconf.rb:3:in \u003cmain\u003e')

Stai ripercorrendo lo stesso terreno di @fzngagan, vedi il suo link sopra: Having a hard time installing `eth` gem in a plugin in production - #3 by fzngagan, forse puoi contribuire alla sua soluzione.

La sua soluzione funziona, ma non la considero un’opzione valida, nessun utente sarebbe disposto a fare tutto ciò solo per aggiungere un plugin. Volevo solo sapere se qualcuno poteva pensare a un approccio migliore (il più vicino possibile a semplicemente aggiungere il repository e il gioco è fatto). come ha detto lui stesso @fzngagan:

Mi piacerebbe molto se ci fosse una soluzione più diretta.

E ora abbiamo due argomenti sullo stesso identico problema…

Sto restringendo il campo, non sembra essere correlato alle gemme, sembra essere correlato a extconf.rb. Ho provato con altre poche gemme con una configurazione più complessa (ruby-magic e libusb), entrambe non funzionano (per motivi diversi) hanno tutte in comune dipendenze in extconf.rb.

Questo problema è stato risolto negli ultimi branch tests-passed e stable di discourse.

Non ancora, la PR non è stata ancora unita.

@RGJ Ci sono stati alcuni test falliti che dovevano essere affrontati prima. Ora è unito.