تتم تعطيل السمات والمكوّنات الموجودة على قناة latest الافتراضية تلقائيًا، ويتعيّن على مُنشئي السمات استخدام حلول بديلة غير بديهية.
واجهت هذه المشكلة هنا: Featured Topics - #76 by cogdog من غير البديهي على الإطلاق أن تحتاج جميع الإصدارات الدنيا إلى استخدام صيغة مثل xxx.x.999 أدنى من الإصدار الحالي الذي يجب أن يتطابق معه فعليًا.
المنصة
Discourse مُضيف ذاتيًا على فرع latest
إصدار Discourse: 2026.8.0-latest.1
يؤثر على: إنشاء السمات/مكوّنات السمة (بيانات about.json) وفحوصات توافق السمة
الوصف
النتيجة الفعلية:
تُعتبر السمة التي تحتوي على "minimum_discourse_version": "2026.8.0" في ملف about.json غير متوافقة وتُعطَّل تلقائيًا عندما يعمل الموقع على الإصدار -latest وهو 2026.8.0-latest.1. الطريقة الوحيدة للحفاظ على تفعيل السمة هي ضبط إصدار أدنى مثل "minimum_discourse_version": "2026.7.999".
تحدث مشكلة مشابهة عند استيراد سمة تُضبط فيها minimum_discourse_version على قيمة بنمط -latest (مثل 2025.12.0-latest)، حيث تُرفض كقيمة غير صالحة — راجع التقرير الموجود مسبقًا: 主题配置文件中minimum_discourse_version不支持日期化版本格式
النتيجة المتوقعة:
بما أن 2026.8.0-latest.1 هو إصدار -latest من خط إصدارات 2026.8.0، فيجب أن يستوفي الحد الأدنى المطلوب وهو 2026.8.0. الإصدارات الأخيرة أحدث من الإصدار المُطلق المقابل، وليس أقدم.
لكن إصدار -latest هو إصدار يسبق إصدار تلك النسخة. هذا هو ما استندت إليه إدخالات التوافق منذ سنوات.
الطريقة التي تعاملت بها مع <2026.7.999 تبدو غير بديهية، لكن لماذا لم تحدد <2026.8.0-latest؟
إذا كنت بحاجة إلى commit محدد أُضيف أثناء تطوير 2026.8، فأنا متأكد من أن كل من يستخدم إصدار 2026.8 لديه ذلك، لكنني لست متأكدًا من أن كل من يستخدم 2026.8-latest لديه ذلك. ربما كان آخر تحديث لهم قبل إضافة الـ commit المحدد. لذا، إذا كان 2026.8 يشمل 2026.8-latest افتراضيًا، فقد تتعطل بعض الأمور. أشعر أنه من الأفضل أن ينتظر المسؤول بضع أسابيع قبل أن يتمكن من استخدام/تحديث السمة، بدلاً من المخاطرة بتعطل الأمور بسبب غياب الـ commit المطلوب.
يجب علينا إصلاح ذلك. يجب أن يكون بإمكان مؤلفي السمات (Themes) القيام بما يلي:
minimumDiscourseVersion: "2026.8.0-latest"
على الرغم من أنه، كما أشار @moin، قد يكون ذلك محفوفًا بالمخاطر لأن -latest يشير إلى عدد كبير من الالتزامات (commits) المختلفة. لذا، في العالم المثالي، يجب أن ننتظر حتى الإصدار التالي قبل الاعتماد على ميزة جديدة في النواة (core) من سمة أو إضافة (plugin).