أولاً، تهانينا لفريق Discourse على إصدار ESR الجديد، وشكراً على العمل الذي بذلتموه فيه. إن إصدار ستة أشهر من التحديثات في نقطة دعم واحدة هو عمل هندسي ضخم، ووجود موقع إصدارات وسجل تغييرات مناسب للتصفح جعل هذه الأبحاث أسهل بكثير من السنوات الأربع السابقة.
أنا على إصدار 2026.1.5 من ESR. لقد مررت بإصدار تلو الآخر قبل محاولة العثور على إعداد حيث تكون الترقية سلسة قدر الإمكان.
تصفحت كل شيء بين 2026.1.5 و 2026.7.0 قبل لمس أي شيء، وقررت أن هذه الملاحظات ستكون مفيدة لأي شخص آخر يستخدم 2026.1 الآن ويحاول أن يقرر: هل أضع التصحيحات الآن، أم أقفز إلى الإصدار الجديد الآن؟
قمت بتطبيق التصحيحات إلى 2026.1.6 اليوم للحصول على تصحيحات الأمان، وسأنتقل إلى 2026.7.0 في الأسبوع الأول من الشهر القادم عندما أجد الوقت لاختبار مكونات السمات وأشياء أخرى بشكل صحيح.
فخ version: stable!
إذا كان ملف app.yml الخاص بك، مثل ملفي، يحتوي على:
version: stable
…فإن إعادة البناء القادمة ستضعك على 2026.7.0، سواء كنت تنوي ذلك أم لا. stable هو اسم مستعار للتوافق مع الإصدارات السابقة لـ esr، و esr يشير دائمًا إلى أحدث إصدار ESR، والذي تغير اليوم.
لا يوجد مسار هبوط إلى إصدار أقدم أعرفه، لذا إذا قمت بإعادة البناء فقط للحصول على تصحيح الأمان، فستحصل على القفزة الكاملة لمدة ستة أشهر معه!
للبقاء على 2026.1 والحصول على تصحيحات الأمان فقط، قم بتثبيت الإصدار صراحةً:
version: release/2026.1
للانتقال إلى إصدار ESR الجديد ولا يتم نقلك تلقائيًا مرة أخرى بعد ستة أشهر:
version: release/2026.7
يتم دعم 2026.1 حتى سبتمبر 2026. يعمل 2026.7 حتى مارس 2027. لذا فإن القفزة قادمة بغض النظر عن الأمر، والأمر يتعلق فقط بما إذا كان يحدث وفقًا لجدولك الزمني.
المتطلبات الأساسية
PostgreSQL 15 هو الحد الأدنى الآن. تحقق من نسختك من داخل الحاوية:
cat /shared/postgres_data/PG_VERSION
كانت نتيجتي 15، لذا أنا بخير. إذا كنت تستخدم الإصدار 13 أو 14، فأعتقد أن هذا ترقية منفصلة يجب القيام بها قبل القفزة بين الإصدارات.
جدير بالذكر: صورة الحاوية الآن تتضمن PG 18 جنبًا إلى جنب مع 15، لكنني أرفضها مؤقتًا، متغيرًا واحدًا في كل مرة.
وقت التوقف عن العمل؟
قم بإنشاء نسخة احتياطية أولاً، وقفل المنتديات باستخدام وضع الصيانة.
لا يوجد وقت توقف عن العمل، لكنها ليست فورية على المنتديات الناضجة:
استغرق إعادة البناء أقل من 5 دقائق على خادم VPS الخاص بي، خطط لـ ~ 10 دقائق على معظم مضيفي الويب، لكنه يعتمد أيضًا بشكل كبير على عدد منشورات منتداك، لذا خطط لفترة زمنية من 30 إلى 45 دقيقة.
الأمان: ما أنت عرضة له على 2026.1.5
17 تنبيهًا ينطبق إذا كنت تستخدم 2026.1.5. كل شيء نُشر قبل 30 يونيو كان قد تم إصلاحه بالفعل في بنائك. تم تصحيح جميع الـ 17 في كلا الإصدارين 2026.1.6 و 2026.7.0، وهو ما يجعل خيار التصحيح أولاً خيارًا شرعيًا.
- 1 حرج - تسميم ذاكرة التخزين المؤقت / XSS عبر ملفات تعريف الارتباط لمخطط الألوان
- 2 عالي - تنفيذ عن بعد (RCE) عبر ملف HEIF مشوه؛ XSS مخزن عبر اسم مستخدم نص المحادثة غير الهروب منه في محرر النصوص الغني
- 13 متوسط، 1 منخفض - XSS مخزن في قائمة المراجعة، سجلات إجراءات الموظفين، إجراءات المنشورات، والتواريخ المحلية؛ تسريب أسماء ووصف الوسوم المخفية؛ عناوين المواضيع المقيدة مكشوفة عبر عناوين URL الموحدة؛ تسريب عنوان/ملخص المسودة المشتركة؛ تجاوز قائمة حظر نطاقات onebox عبر مقارنة حساسة لحالة الأحرف؛ تنصت محادثات بوت الذكاء الاصطناعي؛ محتوى الرسائل الخاصة يمكن الوصول إليه عبر مواد مراجعة الذكاء الاصطناعي؛ عدم تطابق معرف القناة/الموضوع في onebox المحادثة؛ ملخص المنشور الأول المخفي مُصدر في JSON-LD للأسئلة والأجوبة
إذا كنت تطبق التصحيحات فقط، فإن release/2026.1 + إعادة البناء يغلق جميعها.
ما يزعجني: الأشياء التي ستتغير دون أن تطلب
هذا هو القسم الذي أردته أكثر من أي شيء في السنوات القليلة الماضية. عند القفز إلى 2026.7، هذه هي بعض التغييرات السلوكية التي تصل من تلقاء نفسها:
-
تمكين تفاعلات Discourse بشكل افتراضي لجميع المواقع. وصلت عملية النشر إلى
stableفي 21 يوليو. إذا لم تكن تستخدم التفاعلات اليوم، فهي قادمة. -
يتم إزالة الفئة “غير مصنف”. يتم إخفاء ثلاثة إعدادات من لوحة المسؤول (
allow_uncategorized_topics،suppress_uncategorized_badge،uncategorized_category_id) وسيتم إزالتها تمامًا بمجرد أن يصبح التغيير دائمًا. يتم إدارته كخيار للإلغاء مؤقتًا. -
إعداد الموقع
rich_editorاختفى. محرر النصوص الغني أصبح الآن غير مشروط. تفضيلcomposition_modeلكل مستخدم هو الطريقة الوحيدة المتبقية للاختيار بين Markdown والنص الغني. تم أيضًا إزالة تبديل معاينة Markdown - يستبدل تبديل وضع MD/RTE ذلك. -
عناوين بريد إلكتروني أبسط. حاليًا في مرحلة بيتا. تنبيه: تمكين هذا الإعداد يستبدل إعداد
email_subjectالخاص بك، وإلغاء تمكينه يعيد إلى الإعداد الافتراضي. لذا يمكن أن تضيع أي تخصيصات لديك هناك. تحقق من هذا الإعداد قبل تبديل أي شيء. -
بطاقات المواضيع عالية السياق Horizon وصلت إلى
stableفي يونيو. ذات صلة فقط إذا كنت تستخدم Horizon، وهناك إعداد سمة للرجوع إلى البطاقات البسيطة.
الخبر الجيد: جميع هذه التغييرات تصل الآن عبر نظام التغييرات القادمة مما يعني أنها ليست موجودة في 2026.1.5. تحصل على صفحة تكوين، إشعار مسبق، خيار إلغاء لكل تغيير، وإصلاح (#39279) يمنع نشر الإعدادات التي قمت بتخصيصها بنفسك.
إذا كنت، مثلي، قد أصبت بالإحباط من تحرك الإعدادات بين الإصدارات، فإن هذا النظام هو الحل، والبقاء على 2026.1 يبقيك على الإصدار الذي سبق هذا النظام. أول شيء سأفعله بعد القفز هو المرور عبر “التغييرات القادمة” وتعيين كل عنصر معلق بعناية، قبل أن يترقى أي شيء بنفسه.
إذا كنت تستخدم سمات أو مكونات مخصصة
هذا هو المكان الذي أتوقع أن أقضي فيه وقت الاختبار، وجزء من سبب عدم قفزي اليوم:
-
تم تمكين تحذيرات المسؤول الآن لجميع الإصدارات المجدولة للإلغاء. توقع أن تبدأ مكوناتك المخصصة في إظهار إشعارات المسؤول إذا كانت تستخدم أي شيء قديم. من الأفضل أن تعرف، لكنه يتطلب مراجعة.
-
إصدارات جديدة للإلغاء لامتدادات الملفات
.hbsو.js.es6. تحقق من تسمية ملفات مكونك. -
تم إسقاط حشوات الأدوات القديمة، جنبًا إلى جنب مع مسارات الإلغاء لـ
discourse.breadcrumbs.*،add-flag-property،add-header-panel، وbootbox. -
يمكن الآن إعطاء أسماء مستعارة وإلغاء مداخل الإضافات بدلاً من كسرها بصمت. تغيير جيد حقًا. المداخل المعاد تسميتها تحذر بدلاً من الاختفاء فقط.
-
تم نقل إعدادات السمات من حزمة JavaScript إلى بيانات التحميل المسبق، مما يغير وقت توفرها عند الإقلاع. يستحق التحقق إذا كان مكونك يقرأ الإعدادات مبكرًا.
-
تم إسقاط إعدادات الموقع لنظام الهاتف المحمول القديم، وإزالة أوراق أنماط الهاتف المحمول/سطح المكتب الأساسية الفارغة. إذا كان CSS الخاص بك يستهدف الهاتف المحمول وسطح المكتب بشكل منفصل، اختبر على هاتف حقيقي بعد الترقية.
-
تحت الغطاء: Ember 6.6 → 6.10، ember-cli 6.9 → 7.0.1، اكتملت هجرة Rolldown، تمت إضافة دعم TypeScript للسمات والإضافات، وتمت إزالة الكثير من jQuery في جميع الأنحاء.
مستخدمو House Ads: تم حظر JavaScript المضمن الآن في إعلانات المنزل، وتم إعادة بناء واجهة المستخدم الإدارية في FormKit. house_ads_after_nth_root محترم الآن أيضًا في عرض الردود المتداخلة.
ميزات جديدة جديرة بالذكر
تم تسليط الضوء على 37 ميزة خلال هذه الأشهر الستة. تلك التي أعتقد أنها الأكثر أهمية لمجتمع المنتدى العام:
- التغييرات القادمة - صفحة التكوين ونظام النشر الموصوف أعلاه.
- الردود المتداخلة - عرض موضوع تجريبي متشعب/شجري، قابل للتكوين لكل موضوع وكل فئة، مع تمكين جماعي من قائمة المواضيع وتجربة محسنة للهاتف المحمول.
- تسجيل الدخول والتسجيل عبر رمز البريد الإلكتروني لمرة واحدة (
enable_local_logins_via_code) - بدون كلمة مرور، حاليًا في مرحلة ألفا. يتطلب التسجيل فقط بريدًا إلكترونيًا ورمزًا. - صفحة إدارة الفئات الإدارية الجديدة بالإضافة إلى تبسيط إنشاء الفئات. دليل كامل للفئات وأنواعها.
- إجراءات جماعية في جميع الأنحاء - إدارة الوسوم الجماعية (إضافة/إزالة/استبدال)، تثبيت/إلغاء تثبيت جماعي، وتعليق جماعي للمستخدمين غير المنفعين، جنبًا إلى جانب فلتر حالة التنشيط الجديد على Admin → Users. هذا الجمع الأخير ممتاز لتنظيف موجات تسجيل البريد العشوائي.
جدير بالذكر أيضًا: إعداد صفحة رئيسية افتراضي صريح، مجموعات رموز تعبيرية مثبتة مع استيراد/تصدير رموز تعبيرية مخصصة جماعي، السماح بالنقاط الآن في أسماء الوسوم، صفحة مخصصة لتحرير الوسوم، وضع التطبيق الكامل للتضمين، مزامنة المجموعات لكل من OAuth2 و OpenID Connect، وأيقونات حالة طلبات الدمج المباشرة على oneboxes GitHub المضمنة.
لماذا قمت بالتصحيح أولاً
لا يوجد شيء أعلاه هو سبب عدم الانتقال إلى 2026.7. نظام التغييرات القادمة وحده يستحق القيام بذلك، وسأدخل في الأسبوع الأول أو الثاني من الشهر القادم.
لكن تصحيحات الأمان متاحة على كلا الفرعين، مما يعني أنني كان بإمكاني فصل الجزء العاجل عن الجزء الذي يحتاج إلى اختبار. مثل أن محرر النصوص الغني أصبح الآن غير مشروط. أنا متأكد من أن القراءة حول المنتديات ستجد لي مسارًا سريعًا، آمل ذلك.
غلق التصحيح اليوم كل تنبيه. القفزة الآن تحصل على نافذة مناسبة حيث يمكنني المرور عبر التغييرات القادمة بعناية وفحص مكونات سماتي على سطح المكتب والهاتف المحمول دون سباق مع ثغرة أمنية حرجة.
إذا كنت على 2026.1 وقصير الوقت هذا الأسبوع، أقترح نفس الشيء. إذا كان لديك الوقت، انتقل مباشرة إلى release/2026.7، فقط ثبته صراحةً، وتحقق من إصدار Postgres الخاص بك.
شكرًا مجددًا للفريق. جعل موقع سجل التغييرات هذه الاستكشافات أقل ألمًا بكثير مما كان سيكون عليه قبل عام.
إفصاح: استخدمت الذكاء الاصطناعي في مساعدتي على تنسيق هذا المنشور؛ وإلا، لما كان لدي الوقت لنشر هذا. يرجى الإشارة إلى أي شيء أحتاج إلى إضافته أو إزالته أو تغييره.

