مكون إضافة تسجيل الدخول باستخدام Ethereum

عمل، شكراً لك!

إعجاب واحد (1)

مرحباً @michaeld @RGJ، لست متأكداً مما إذا كان هذا هو المكان المناسب لطرح سؤالي، ولكني أواجه مشكلة مماثلة مع ffi عند استخدام المستودع في https://github.com/communiteq/discourse-siwe-auth وكذلك 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)

قسم الخطافات في تطبيق 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 أصبح الآن جزءًا أساسيًا ولا تحتاج إلى إضافته؟

لست مهتمًا جدًا بلغة روبي لذلك لا يمكنني تقديم بيان حول المكون الإضافي ولكني أستطيع تأكيد أن ترقية ffi إلى 1.17.2 في المستودع المتفرع يعمل بشكل رائع، وبترقية أعني تغيير plugin.rb بـ:

gem 'ffi', '1.17.2', require: false

لقد نجح هذا بالنسبة لي ولكني أود حقًا استخدام المكون الإضافي الرسمي الذي تتم صيانته بدلاً من المستودع المتفرع الخاص بي.

كان اقتراحي هو إزالة الجوهرة تمامًا. وعندما ينجح ذلك، قم بتقديم طلب سحب (PR) مع إزالة هذا السطر.

نحن أقرب إلى الصيانة السلبية. المستودع الرسمي موجود في spruceid، ولكن نظرًا لأننا ندير عددًا من المواقع التي تستخدم المكون الإضافي، فمن الناحية العملية نحن من نقوم بإصلاحه أولاً. هذه المرة سبقتنا، ولا يزال ضمن قائمتنا للمكونات الإضافية التي سيتم تغييرها للإصدار 3.5.

إذا لم يقم أحد بتقديم طلب سحب (PR) إلى المستودع الرسمي، فسأقوم بالتعامل مع هذا الأمر بحلول نهاية هذا الأسبوع أو بداية الأسبوع المقبل.

إعجاب واحد (1)

أفضل أن أترك لك مهمة فتح طلب السحب (PR)، حيث ربما لديك اعتبارات أو اختبارات بخصوص الإضافة لا أعرفها، بما أنني لا أعرف الكثير عن هذه الخدمة حيث أنني في طور ترحيلها.

شكراً لك على مساعدتك ومعلوماتك ومساهماتك في هذا الموضوع.

لقد قمت بإصلاح المكون الإضافي - لقد كان بالفعل مجرد مسألة إزالة تضمين ffi gem الصريح.

لقد قمت أيضًا بتقديم طلب سحب إلى المستودع الأصلي. طالما لم يتم قبول طلب السحب، يمكنك استخدام https://github.com/communiteq/discourse-siwe-auth بدلاً من المستودع الأصلي.

سأقوم بتغيير الرابط في المنشور الأصلي إلى هذا في الوقت الحالي أيضًا.

إعجابَين (2)

أود أن أسأل، لماذا لا أرى زر الإعدادات؟

أرى أن ملف المكون الإضافي discourse-compatibility يوضح أنه يدعم الإصدارات الأقدم من 3.2.0.beta2-dev. هل ستكون هناك أي مشاكل عند استخدام هذا المكون الإضافي مع أحدث إصدار من Discourse؟

إعجاب واحد (1)

بما أن هذا الملف يشير إلى التوافق الرجعي، فإن غياب الإصدارات الحديثة في ملف .plugin-compatibility هو شيء جيد.

3 إعجابات