تضارب إضافة التصويت بعد الاستطلاع مع إضافة السؤال والإجابة السابقة

Hey there !

Big conflict on my Discourse since the change…

  1. Before i had :
- git clone https://github.com/discourse/discourse-question-answer
  1. Today i wanted to add :
- git clone https://github.com/discourse/discourse-question-answer
- git clone https://github.com/discourse/discourse-post-voting

I obtained a conflict between the two :

Summary
I, [2022-12-09T10:13:26.139287 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
/var/www/discourse/plugins/discourse-question-answer/lib/question_answer/engine.rb:4: warning: already initialized constant QuestionAnswer::CREATE_AS_QA_DEFAULT
/var/www/discourse/plugins/discourse-post-voting/lib/question_answer/engine.rb:4: warning: previous definition of CREATE_AS_QA_DEFAULT was here
/var/www/discourse/plugins/discourse-question-answer/app/controllers/question_answer/votes_controller.rb:75: warning: already initialized constant QuestionAnswer::VotesController::VOTERS_LIMIT
/var/www/discourse/plugins/discourse-post-voting/app/controllers/question_answer/votes_controller.rb:75: warning: previous definition of VOTERS_LIMIT was here
/var/www/discourse/plugins/discourse-question-answer/app/models/question_answer_vote.rb:7: warning: already initialized constant QuestionAnswerVote::VOTABLE_TYPES
/var/www/discourse/plugins/discourse-post-voting/app/models/question_answer_vote.rb:7: warning: previous definition of VOTABLE_TYPES was here
/var/www/discourse/plugins/discourse-question-answer/app/models/question_answer_comment.rb:7: warning: already initialized constant QuestionAnswerComment::COOKED_VERSION
/var/www/discourse/plugins/discourse-post-voting/app/models/question_answer_comment.rb:7: warning: previous definition of COOKED_VERSION was here
/var/www/discourse/plugins/discourse-question-answer/app/models/question_answer_comment.rb:26: warning: already initialized constant QuestionAnswerComment::MARKDOWN_FEATURES
/var/www/discourse/plugins/discourse-post-voting/app/models/question_answer_comment.rb:26: warning: previous definition of MARKDOWN_FEATURES was here
/var/www/discourse/plugins/discourse-question-answer/app/models/question_answer_comment.rb:31: warning: already initialized constant QuestionAnswerComment::MARKDOWN_IT_RULES
/var/www/discourse/plugins/discourse-post-voting/app/models/question_answer_comment.rb:31: warning: previous definition of MARKDOWN_IT_RULES was here
/var/www/discourse/plugins/discourse-question-answer/extensions/topic_extension.rb:9: warning: already initialized constant Topic::QA_SUBTYPE
/var/www/discourse/plugins/discourse-post-voting/extensions/topic_extension.rb:9: warning: previous definition of QA_SUBTYPE was here
rake aborted!
ArgumentError: Invalid route name, already in use: 'question_answer' 
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: 
https://guides.rubyonrails.org/routing.html#restricting-the-routes-created
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:587:in `add_route'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1986:in `add_route'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1957:in `decomposed_match'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1921:in `block in map_match'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1915:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1915:in `map_match'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:1663:in `match'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/mapper.rb:642:in `mount'
/var/www/discourse/plugins/discourse-question-answer/config/routes.rb:16:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:427:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:427:in `eval_block'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:434:in `block in finalize!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:434:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-6.1.6.1/lib/action_dispatch/routing/route_set.rb:434:in `finalize!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/routes_reloader.rb:51:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/routes_reloader.rb:51:in `finalize!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/routes_reloader.rb:22:in `reload!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/routes_reloader.rb:35:in `block in updater'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/file_update_checker.rb:83:in `execute'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/routes_reloader.rb:10:in `execute'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/finisher.rb:195:in `block in <module:Finisher>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:391:in `initialize!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `method_missing'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:88:in `register'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:332:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:299:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/dependencies.rb:332:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:367:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:533:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)
I, [2022-12-09T10:13:36.170591 #1]  INFO -- : gem install rrule -v 0.4.4 -i /var/www/discourse/plugins/discourse-calendar/gems/2.7.6 --no-document --ignore-dependencies --no-user-install
Successfully installed rrule-0.4.4
1 gem installed



FAILED
--------------------
  1. Then i removed the first one. Build is ok but the app is no longer running :
    • I got an HTTP 500
    • nginx error logs give me something like :
    root@slazvmeutp01:/opt/discourse# cat /var/opt/discourse/var-log/nginx/error.log
    2022/12/09 10:47:34 [notice] 537#537: signal process started
    2022/12/09 10:47:37 [error] 554#554: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 18.156.156.214, server: _, request: "POST /message-bus/76e1bd78eedf43a5a337b6f44a8b88d0/poll?dlp=t HTTP/2.0", upstream: "http://127.0.0.1:3000/message-bus/76e1bd78eedf43a5a337b6f44a8b88d0/poll?dlp=t", host: "mydiscourse.domain.com", referrer: "https://mydiscourse.domain.com/admin/plugins"
    2022/12/09 10:59:08 [crit] 554#554: *398 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 212.102.40.218, server: 0.0.0.0:443
    2022/12/09 11:25:50 [notice] 530#530: signal process started
    

I noticed that Git repo https://github.com/discourse/discourse-question-answer now redirects to the second https://github.com/discourse/discourse-post-voting.
So it would explain the conflict on first build today.
But what about now ? It mentions TLS error rather than a plugin error…

Any idea ?

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

إن وجود discourse-post-voting فقط هو الخطوة الصحيحة. :+1:
لست متأكدًا من سجلات أخطاء nginx، ولكن لا أفترض أن لديك أيضًا discourse-feature-voting في الإضافات الخاصة بك، أليس كذلك؟

إعجابَين (2)

يا إلهي، كنت على حق!!
كان لدي أيضًا ويمكنني رؤية مستودع Git يعيد التوجيه أيضًا إلى https://github.com/discourse/discourse-post-voting!! :scream_cat:

ولكن انتظر… تم دمج topic-voting و q&a في post-voting؟ هل الميزات مدمجة؟

إذًا إليك أحدث قائمة بالمكونات الإضافية الخاصة بي:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-openid-connect
          - git clone https://github.com/discourse/discourse-solved
          - git clone https://github.com/discourse/discourse-yearly-review
          - git clone https://github.com/discourse/discourse-checklist
          - git clone https://github.com/discourse/discourse-docs
          - git clone https://github.com/discourse/discourse-reactions
            #- git clone https://github.com/discourse/discourse-feature-voting
          - git clone https://github.com/discourse/discourse-calendar
            #- git clone https://github.com/discourse/discourse-gamification
          - git clone https://github.com/discourse/discourse-gamification && cd discourse-gamification && git checkout 6a399b4c220f31de62049504d27ff6e50611fbef
          - git clone https://github.com/discourse/discourse-follow
          - git clone https://github.com/discourse/discourse-spoiler-alert
          - git clone https://github.com/paviliondev/discourse-news
          - git clone https://github.com/cfstras/discourse-konami.git
            #- git clone https://github.com/discourse/discourse-question-answer
          - git clone https://github.com/discourse/discourse-post-voting

تستجيب Discourse أخيرًا.
ولكن الآن مشاكل أخرى:

  1. تعرض إدارة المكونات الإضافية “سؤال وجواب”…
    image
  2. عندما أنشئ موضوعًا، فإن قائمة العناصر ليست جيدة:
  3. الإعدادات في إعدادات الفئة تظهر دائمًا س وج
    image

لذا يبدو أن س وج لا يزال موجودًا دائمًا…

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

لا، لقد كنت مخطئًا!
هذه مشاريع منفصلة، آسف.

إعجابَين (2)

كان discourse-feature-voting هو الاسم القديم لـ https://meta.discourse.org/t/discourse-topic-voting/40121، ووجود الاسم القديم هناك يسبب بعض تعارضات التحميل عندما يكون لديك أيضًا post-voting هناك. إذا أضفت discourse-topic-voting الجديد، فيجب أن تكون قادرًا على الحصول على كليهما مرة أخرى. :+1:

لست متأكدًا من سبب احتفاظك بتنسيق الأسئلة والأجوبة القديم؟ ألاحظ أنك تتحقق من إصدار معين من Gamification - هل هذا بسبب أنك مقيد بتوافق معين؟

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

نعم!
أنا من يتتبع الإصدار “المستقر” من Discourse :sweat_smile:
هذه حيلة ذكرتها هنا: Database migrate fails in "stable" version - #2 by gmoirod

حسنًا، سأقوم بالاختبار الآن.

وأنا أيضًا :sob:

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

تمت إعادة تسمية المكون الإضافي الرسمي post-voting مؤخرًا إلى ‘post-voting’، وكان عبارة عن أسئلة وأجوبة في واجهة المستخدم، وما إلى ذلك لفترة من الوقت. قد يكون من الممكن أن يكون تثبيتك لا يلتقط هذه التغييرات نظرًا لأنك تتبع الإصدار المستقر؟

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

هل هناك طريقة لإلغاء تثبيت إضافة بشكل صحيح؟
يمكنني استخدام ذلك لإلغاء تثبيت الأسئلة والأجوبة وإعادة التصويت، ثم إعادة تثبيت إعادة التصويت…

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

عند التحقق من صفحة /admin/upgrade، ما هو رقم الإصدار الذي تراه بجوار التصويت اللاحق؟

الإصدار الذي اجتاز الاختبار لدي والمُحدّث هو: 5ea4dccf

تعديل: لقد صححت عنوان الصفحة :slight_smile:

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

يبدو أن إضافة التصويت على المواضيع (topic-voting) جيدة الآن.

ليس لدي صفحة /plugins :thinking:
ولكن في صفحة /admin/upgrade لدي:

  1. لا يوجد تصويت على المشاركات
  2. س و ج تظهر بدون علامة خضراء
إعجاب واحد (1)

يبدو أنك عالق عند هذا الالتزام من سبتمبر عندما كان لا يزال سؤال وجواب:

هل أنت محدث بالإصدار المستقر؟ ما هو الإصدار الذي تستخدمه حاليًا؟

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


يبدو جيدًا.



مشكلة جديدة…

  1. قمت بإزالة التصويت على المشاركات والتصويت على المواضيع وأعدت بناء التطبيق لمحاولة البدء بشيء نظيف (سؤال وجواب غير مدرج أيضًا بعد العديد من المحاولات): حسنًا، لا توجد إضافات أخرى
  2. أعدت التصويت على المشاركات والتصويت على المواضيع والآن فشل إعادة البناء…
ملخص
I, [2022-12-09T14:27:32.724323 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake themes:update assets:precompile'
فشل تحديث 'Discourse Loading Slider': Timeout::Error
rake aborted!
Timeout::Error: Timeout::Error
/var/www/discourse/lib/final_destination/resolver.rb:28:in `block in lookup'
/var/www/discourse/lib/final_destination/resolver.rb:7:in `synchronize'
/var/www/discourse/lib/final_destination/resolver.rb:7:in `lookup'
/var/www/discourse/lib/final_destination/ssrf_detector.rb:84:in `lookup_ips'
/var/www/discourse/lib/final_destination/ssrf_detector.rb:64:in `lookup_and_filter_ips'
/var/www/discourse/lib/theme_store/git_importer.rb:139:in `block in clone_http!'
/var/www/discourse/lib/theme_store/git_importer.rb:131:in `each'
/var/www/discourse/lib/theme_store/git_importer.rb:131:in `clone_http!'
/var/www/discourse/lib/theme_store/git_importer.rb:93:in `clone!'
/var/www/discourse/lib/theme_store/git_importer.rb:18:in `import!'
/var/www/discourse/app/models/remote_theme.rb:126:in `update_remote_version'
/var/www/discourse/lib/tasks/themes.rake:62:in `block in update_themes'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:71:in `block (2 levels) in find_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:229:in `loop'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activerecord-6.1.6.1/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/lib/tasks/themes.rake:56:in `update_themes'
/var/www/discourse/lib/tasks/themes.rake:87:in `block (2 levels) in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in `each_connection'
/var/www/discourse/lib/tasks/themes.rake:86:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => themes:update
(See full trace by running task with --trace)
I, [2022-12-09T14:27:49.987988 #1]  INFO -- : Checking 'Modern Category + Group Boxes' for 'default'... up to date
Checking 'Dark-Light Toggle' for 'default'... updating from cd221006 to 3f72c88f
Checking 'Discourse Loading Slider' for 'default'...

فشل
--------------------
إعجاب واحد (1)

أعد البناء مرة أخرى ونجح الأمر.
لذا فإن المشكلة الأخيرة مع ‘منزلق تحميل الخطاب’ كانت مجرد خلل.
انسَ ذلك.

مشكلتي الرئيسية هي أن الأسئلة والأجوبة لا تزال موجودة بدلاً من التصويت على المنشورات…

إعجابَين (2)

أعتقد أن هذا قد يكون نتيجة للإصدار الذي تستخدمه والتوافق. إذا نظرت إلى ما يجب أن يكون discourse-topic-voting، فإنه يظهر في صفحتك على أنه discourse-voting لا يزال أيضًا.

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

هل تقصد أن أستخدم نسخة ‘tests-passed’ من discourse؟

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

إذا كنت تريد أحدث الإصدارات من الأشياء. :slightly_smiling_face:

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

أفضل الإصدارات “العاملة” للأشياء في الواقع :sweat_smile:
أعلم أن هناك موضوعًا حول الإصدار الذي يجب استخدامه مدعيًا أن “الاختبارات-اجتازت” جيدة-للذهاب.
لكنني نوع من “رجل ديبيان” كما تعلم… الاستقرار للإنتاج!

إعجابَين (2)

أعتقد أن هذا اختيار جيد أيضًا. :+1: :slightly_smiling_face: الجانب الآخر هو أنك ستحتاج إلى انتظار الإصدار 3.0 ليتم إطلاقه في العام الجديد قبل أن تتمكن من تشغيل هذه التحديثات الأخيرة مع Stable.

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

حسناً…

هذا مخيب للآمال بعض الشيء لأن إدارة المكونات الإضافية لا تقدم طريقة لمتابعة مرجع git معين.
وأن المكونات الإضافية تتبع دورة حياة Discourse.
بحيث يمكنك متابعة “المستقر” عالميًا لـ Discourse والمكونات الإضافية.

في الواقع، كل إعادة بناء، أو اعتماد مكون إضافي، يبدو وكأنه عجلة حظ.

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

أخشى أن معرفتي بالفرع المستقر محدودة للغاية، لكنني أعتقد أنه موجه أكثر نحو عدم تغيير الأشياء بشكل متكرر. لذا أعتقد أن إضافة مكونات إضافية جديدة وملحقات خارج نافذة الإصدار المستقر سيكون عكس ذلك؟

تجدر الإشارة أيضًا إلى أن معظم مواقع Discourse تستخدم “tests-passed” ولا تواجه عادةً أي مشاكل ملحوظة. حتى اتباع “tests-passed” لا يعني أنك بحاجة إلى التحديث كل يوم وأن تكون على أحدث إصدار على الإطلاق، لذا فهو ليس قابلاً للتغيير كما قد تعتقد. سيتعين عليك الضغط يدويًا على زر التحديث من صفحة /upgrade الخاصة بك، أو إجراء إعادة بناء، لسحب هذه التغييرات إلى موقعك.

كما أن الاستضافة المُدارة تجعل هذه العملية أسهل كبديل، حيث سيتعاملون مع جميع الأمور الفنية ويتركونك تركز على مجتمعك. :+1:

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