أدعوكم لمشاركة الأفكار حول سير عمل CI المحتمل، والذي سيقوم بتشغيل الاختبارات على الإضافات غير الرسمية التي يوفرها المجتمع.
تعتمد بعض المجتمعات بشكل كبير على الإضافات، دون صيانة راسخة:
نظرًا لأن اختبار الإضافات يعتمد على تثبيت Discourse كبيئة اختبار، أتساءل كيف يمكن أن يبدو سير عمل CI مدعومًا من المجتمع.
تتضمن بعض الإضافات مواصفات، مثل تطبيق @angus لـ activitypub، والذي، على حد فهمي، يتيح الاختبارات لـ CI.
حاليًا، أفكر في طريقتين لتحسين اختبار الإضافات غير الرسمية، اعتمادًا على المواصفات / الاختبارات، المضمنة في مصدر المكون الإضافي:
أ) بناء بعض الآليات التي تساعد مسؤولي الموقع على تشغيل الاختبارات في بيئة مرحلية
ب) الحصول على خدمة تقوم بعمل نسخة متفرعة من صورة اختبار محددة مسبقًا للإبلاغ عن الاختبارات التي تم تشغيلها على آخر رمز منشور للمكون الإضافي.
بالإضافة إلى التكامل المستمر (CI) مع اختبارات الواجهة الخلفية والواجهة الأمامية، والتي تمتلكها معظم إضافات Pavilion الآن، لدينا نظام لإدارة الإضافات يُعد التكامل المستمر (CI) جزءًا منه. إليك كيفية عمله
والتي تعرض حالة الفحوصات لتوافق إضافات Pavilion (وأحيانًا أخرى) مقابل tests-passed و stable. يتم تحديث هذا كل يوم، تلقائيًا.
يعتمد هذا بالطبع على الاختبارات، بما في ذلك اختبارات الدخان، والمواصفات (الواجهة الخلفية) واختبارات qunit (الواجهة الأمامية).
تتمتع إضافة الاشتراك الخاصة بنا (Custom Wizard) بأكبر قدر من تغطية الاختبارات، كما قد تتخيل، ولكن بعض إضافاتنا المجانية تتضمن مجموعة جيدة من اختبارات الواجهة الخلفية والواجهة الأمامية (مثل Locations).
يعد كتابة الاختبارات ممارسة جيدة وبالتأكيد أصبح Pavilion أكثر انضباطًا في هذا المجال مع نضجنا كشركة.
والأهم من ذلك، توثق الاختبارات أيضًا وظائفك المقصودة، وهو أمر مهم للغاية خاصة أثناء تحديثات التوافق أو إعادة الهيكلة.
جميع الإضافات الرسمية لها مواصفات يمكنك استخدامها كأمثلة. تتضمن إضافة discourse-plugin-Skelton إجراءات GitHub لتشغيل الاختبارات عند كل التزام، وأعتقد، يوميًا.
أ) هذا متاح عبر إجراءات GitHub: الإضافات ذات المواصفات / الاختبارات المناسبة باستخدام إجراءات GitHub سيكون لها شارة على GitHub، إذا نجحت جميع الاختبارات وتمكنت واجهة برمجة التطبيقات (API) من قراءة حالة إجراءات CI (API).
ب) باستثناء الإضافات الرسمية لـ discourse والإضافات الخاصة بـ pavilion، لا يوجد نظرة عامة تلقائية للمسؤولين، إذا كانت الإضافات المستخدمة ستعمل في الإصدار المخصص للتحديث؟
لقد وضعنا في الأصل هدفًا وقدمنا إصدارًا غير مُسجل بعلامة تجارية من لوحة تحكم الإضافات الخاصة بنا حيث يمكن لمؤلفي الطرف الثالث تقديم إضافاتهم ليتم تضمينها. لم يحظ هذا بأي زخم، ويرجع ذلك جزئيًا إلى أن عدد مطوري إضافات الطرف الثالث صغير جدًا بالفعل.
إن إنشاء إضافات Discourse من طرف ثالث هو مجال متخصص للغاية، وتوفير الإضافات من طرف ثالث مع تغطية اختبار جيدة هو مجال متخصص للغاية!
انضم العديد من المستقلين في هذا المجال إما إلى Pavilion أو CDCK (أو، بمرور الوقت، كليهما!).
لذلك، في النهاية، قررنا دمج لوحة تحكم الإضافات الخاصة بنا في موقع المجتمع المُسجل بعلامتنا التجارية.