تحديث مكون الثيم يثبت دائمًا الإصدار القديم (عبر rake أو يدويًا)

يبدو أن شيئًا مشابهًا جدًا لهذا قد عاد:

مع Discourse 3.5.2، كلما حاولت تثبيت مكون معين (من المصدر)، فإنه دائمًا ما يثبت إصدارًا قديمًا منه. يمكنني التأكيد على ذلك من خلال التصدير: يحتوي على JavaScript القديم. كما أن أدوات مطور المتصفح، إذا بحثت عن ملف ما، فإنها دائمًا ما تعرض الإصدار القديم من الملف. كما أنها تعرض الاسم القديم، إذا قمت بالبناء بعد تغييره في about.json.

يحدث هذا سواء قمت بتثبيته يدويًا من GitHub على صفحة المكونات، أو إذا قمت بتثبيته من app.yml.

وفقًا لـ https://meta.discourse.org/t/install-a-theme-programatically/191843، فإن نهاية ملف app.yml الخاص بي هي:

## أي أوامر مخصصة لتشغيلها بعد البناء
run:
  - exec: echo "بدء الأوامر المخصصة"
  ## إذا كنت ترغب في تعيين عنوان البريد الإلكتروني 'From' لتسجيلك الأول، فقم بإزالة التعليق وتغييره:
  ## بعد الحصول على أول بريد إلكتروني تسجيل، أعد إضافة التعليق على السطر. يحتاج إلى التشغيل مرة واحدة فقط.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"

  - file:
      path: /tmp/mythemes.yml
      contents: |
        discourse-new-topic-button:
          url: https://github.com/toad/discourse-new-topic-button-theme-component.git
          add_to_all_themes: true
  
  # مستودعات قديمة - يبدو أننا سنحتاج إلى إنشاء واحد جديد لكل ارتباط بسبب بعض التخزين المؤقت الغريب؟

  #url: https://github.com/toad/discourse-new-topic-button.git
  #url: https://github.com/toad/discourse-new-topic-button-theme-component.git
  #url: https://github.com/toad/discourse-new-topic-button-mod.git

  - exec:
      cd: $home
      cmd: su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'

  - exec: echo "نهاية الأوامر المخصصة"

وناتج هذا هو:

I, [2025-11-12T01:43:24.323446 #1]  INFO -- : > echo "بدء الأوامر المخصصة"
I, [2025-11-12T01:43:24.325106 #1]  INFO -- : بدء الأوامر المخصصة

I, [2025-11-12T01:43:24.327203 #1]  INFO -- : File > /tmp/mythemes.yml  chmod:   chown: 
I, [2025-11-12T01:43:24.327361 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'
I, [2025-11-12T01:43:32.778093 #1]  INFO -- : discourse-new-topic-button: تم تثبيته من https://github.com/toad/discourse-new-topic-button.git

النتائج:
 تم تثبيته: 1
 تم تحديثه:   0
 الأخطاء:    0
 تم تخطيه:   0

I, [2025-11-12T01:43:32.778262 #1]  INFO -- : > echo "نهاية الأوامر المخصصة"
I, [2025-11-12T01:43:32.779694 #1]  INFO -- : نهاية الأوامر المخصصة

إذا لم أحذف المكون قبل تشغيل rebuild، فإنه يعرض “Updated” بدلاً من “Installed”. بأي حال من الأحوال، ننتهي مع الإصدار القديم من المكون.

التنقل بعيدًا عن الصفحة، shift+reload إلخ، لا يحدث أي فرق. نقله إلى مستودع مختلف لا يحدث أي فرق أيضًا، لذا ليس التخزين المؤقت حسب URL (مستودعان من هؤلاء المستودعات متطابقان).

كما جربت بناءه مباشرة باستخدام rake داخل الحاوية.

أي أفكار حول كيفية تصحيح هذا؟ سيكون من المفيد أن أتمكن من رؤية سجل البناء، لكن rake مع --verbose لا يعطيني أي معلومات إضافية.

إعدادي غير تقليدي قليلاً (هذا يستخدم Docker بدون جذور في الإنتاج، على الرغم من أن هذا خادم التدريج).

مساعدة؟!

يبدو أنه دائمًا يبني شيئًا قبل الارتباط 990dec4f3e8411215122c74b2684782244eeffa2، والذي نقل New Topic Button إلى دعم Glimmer، وسيكون مطلوبًا لـ 3.6. لذا سيتعطل عندما أقوم بالترقية إلى 3.6؛ كنت أحاول إصلاح فرعنا من مكون New Topic Button، لكن يبدو أن حتى الإصدار الأصلي سيتعطل.

مرة أخرى، ماذا يمكنني أن أفعل لتصحيح هذا؟ :neutral_face:

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

يقوم ملف التوافق بتثبيت إصدار محدد لتثبيتات Discourse الأقل من 3.6

3 إعجابات

عفوًا! شكرًا لك. :grinning_face:

مثير للاهتمام مع ذلك؛ يجب أن تكون أشياء Glimmer متوافقة مع الإصدار 3.5. لذا قد يكون التحويل إلى Glimmer من المصدر غير ناضج. أعتقد أنني سأجربه، وربما أنظر إليه على الإصدار 3.6. شكرًا لك.

تحديث: إنها إنذار كاذب، تم إضافة تغييرات أكثر تتعلق بالإصدار 3.6، لكن النسخة 3.5 تصلح التحذيرات المتعلقة بإزالة العناصر. لذا أنا سعيد.

ملاحظة: نقل الأزرار (تغييري) يصلح خللًا في المصدر (لا يتم اكتشاف الفئة تلقائيًا). انظر هنا: