دمج المزيد من الإضافات الشائعة مع نواة Discourse

على مدى الأسابيع القليلة القادمة، سنقوم بنقل عدد من إضافات Discourse الشائعة إلى المستودع الأساسي. هذا يعني أن Discourse سيأتي مع عدد أكبر من الإضافات افتراضيًا، وسيكون من الأسهل علينا الحفاظ على اختبارها وتحديثها جميعًا.

ستظل جميع هذه الإضافات معطلة افتراضيًا، لذا لن يكون لهذا أي تأثير مرئي على المجتمعات الحالية. إذا كنت تستخدم خدمة استضافة مُدارة مثل discourse.org، فلا تحتاج إلى القيام بأي شيء.

المجتمعات المستضافة ذاتيًا

إذا كنت تستضيف Discourse بنفسك، وتستخدم بالفعل إحدى هذه الإضافات، فسيُطلب منك إزالة السطر ذي الصلة من ملف app.yml الخاص بك قبل إعادة البناء التالية.

بيئة التطوير

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

  1. إذا كنت تستخدم روابط رمزية (symlinks) للمكونات الإضافية الخاصة بك، فستتلقى خطأ أثناء git pull. لحل المشكلة، احذف الرابط الرمزي، ثم قم بتشغيل git pull مرة أخرى.

  2. إذا قمت باستنساخ المكونات الإضافية مباشرة، فسينجح سحب git pull الأساسي، ولكن سيكون لديك بعض “التغييرات غير المرحّلة” المفاجئة الناتجة عن مستودعات git المتداخلة. أفضل طريقة للمضي قدمًا هي حذف الدليل المتأثر، ثم استعادته من main. على سبيل المثال:

    rm -rf plugins/discourse-reactions
    git restore plugins/discourse-reactions
    

المكونات الإضافية المتأثرة

65 إعجابًا

شكراً لتوفير سطر HINT الكامل في المنشور الأول هنا، هذا ساعدني في تشخيص فشل إعادة البناء هذا الصباح :blush:

17 إعجابًا

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

3 إعجابات

قد يفعلون ذلك، نعم. على وجه الخصوص، من المحتمل جدًا أن يتم استيعاب مكونات المصادقة الإضافية (مثل apple-auth) في النواة الأساسية، تمامًا مثل طرق المصادقة المضمنة الأخرى لدينا (مثل Google و Facebook، وما إلى ذلك).

3 إعجابات

حركة مثيرة للاهتمام تزيد من النقاش افتراضيًا وتسهل عمليات التثبيت الجديدة.

سؤال واحد بخصوص:

سيُطلب منك إزالة السطر ذي الصلة من ملف app.yml الخاص بك قبل عملية إعادة البناء التالية.

هل سيكون هناك أيضًا طلب أو رسالة تحذير قبل/عند النقر على زر الترقية من صفحة ترقية المسؤول؟

3 إعجابات

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

ثم عند التحديث على سطر الأوامر، سترى التلميح لكل مكون إضافي تحتاج إلى إزالته من app.yml كما هو موضح في المنشور الأول أعلاه.

4 إعجابات

هذا تحديث جيد ولكن هل كان هذا ضروريًا حقًا؟ يبدو أن فشل إعادة البناء قاسٍ بعض الشيء بالنسبة لي.. كان تحذير واجهة المستخدم أو التحديث التلقائي (أو تجاهلها تمامًا) سيكون أفضل من وضع مسدس على رأسي والقول “أزل هذه الآن”

6 إعجابات

لقد تسبب هذا في إرباكي الأسبوع الماضي عندما حاولت التحديث عبر سطر الأوامر وفشل (ملحق التفاعلات).

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

أرحب بشدة برسالة تحذير على سطر الأوامر قبل بدء عملية التحديث، ثم فشلها حتمًا.

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

8 إعجابات

هناك مشكلة أخرى.

تبعيات الجيم.

لا يقتصر الأمر على حذف استنساخات الإضافات غير الضرورية.

لدينا أيضًا مشكلة تعارض إصدارات الجيم.

أنا فقط أمر بعملية تخفيض تبعيات معينة في عدد قليل من الإضافات الخاصة بي لأن الإضافة الأساسية متأخرة جدًا.

لذا فإن هذه الخطوة تقدم بعض التبعيات الإضافية غير الضرورية في رأيي وتجعل إعادة البناء أكثر هشاشة.

3 إعجابات

تم تقسيم منشورين إلى موضوع جديد: تحسينات مقترحة لصفحة المكونات الإضافية، الآن بعد أن تم تجميع المزيد من المكونات الإضافية مع النواة،

سنقوم قريبًا بمتابعة خطوة التخلص من خطوط gem في المكونات الإضافية الأساسية والانتقال إلى ملف gem المتجانس

3 إعجابات

أنا فضولي، هل حصلت على هذه القائمة من الإضافات من تثبيتات Discourse في البرية؟ إنها تطابق ما يقرب من 50٪ من تثبيتي الرئيسي!

إعجابَين (2)

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

إعجابَين (2)

على جانب العميل، لا يقدم Discourse أي أصول JavaScript للمكونات الإضافية المعطلة، لذلك لن يكون هناك أي تأثير هناك.

على جانب الخادم، بالنسبة للمكونات الإضافية المنفذة بشكل صحيح (وهي كلها كذلك)، يتم تجاوز التخصيصات من المكونات الإضافية عند تعطيلها. لذا نعم، من الناحية الفنية قد يكون هناك حمل طفيف للتحقق من حالة التمكين/التعطيل، ولكنه يجب أن يكون ضئيلًا.

المكونات الإضافية التي ندمجها هنا هي تلك التي نقوم بتشغيلها على كل نسخة من Discourse على استضافة discourse.org الخاصة بنا. لذلك تم اختبارها جميعًا جيدًا على نطاق واسع.

15 إعجابًا

حسناً. شكراً للتوضيح!

إعجابَين (2)

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

6 إعجابات

بالنسبة للمجتمعات المستضافة ذاتيًا التي تقوم بالفعل بتشغيل واحد أو أكثر من هذه المكونات الإضافية، هل ستفقد المكونات الإضافية بيانات التكوين عند إزالتها من app.yml ودمجها في النواة؟

لقد قمت بإعداد المكون الإضافي للذكاء الاصطناعي بالطريقة التي أريدها بالضبط؛ إذا احتجت إلى إعادة تكوينه (أو على الأقل تدوين خيارات التكوين حتى أتمكن من إضافتها مرة أخرى)، فسيكون من الجيد معرفة ذلك الآن. :+1:

6 إعجابات

لقد كنا نحاول جعل هذا الأمر سلسًا قدر الإمكان للمترجمين من خلال الاستفادة من ذاكرة الترجمة في crowdin، بحيث لا تضطر الترجمات إلى إعادة إنشائها من الصفر. ولكن لا يزال، أتفق معك، هناك الكثير مما يجب مراجعته.

أتساءل عما إذا كان هناك المزيد مما يمكننا أتمتته هنا، على سبيل المثال، ربما يمكننا “الموافقة تلقائيًا” على أي سلاسل نصية من هذه الإضافات، بدلاً من طلب المراجعة :eyes:

سيتم الاحتفاظ بجميع الإعدادات/البيانات

10 إعجابات

بدا شعور رسالة في واجهة المستخدم تطالب بإعادة بناء مصيرها الفشل غير أنيق حقًا.

هل لم تكن هناك طريقة على الأقل لوضع علامة على هذا الموضوع للمواقع التي تعمل بحد أدنى من إصدار مدير Docker؟

إعجابَين (2)

هذا الموضوع الوصفي ليس ما ترغب في رؤيته حقًا.
تكمن الصعوبة في معرفة الإضافات التي يجب عليك إزالتها من app.yml وأيها لا يجب عليك إزالتها.