إنشاء مواضيع أحداث فردية للأحداث المتكررة

لم يظهر أي تقدم إضافي واضح على طلب الدمج (PR) حتى الآن:

ما زلت أأمل أن تبقى هذه الميزة ضمن إضافة الأحداث المدمجة (bundled Events plugin) بدلاً من الحاجة إلى صيانتها بشكل منفصل.

تلك التجربة السابقة هي أيضًا سبب حذري الشديد من الحفاظ على هذا التغيير محليًا لفترة طويلة.

في مثيلي المستضاف ذاتيًا، أستخدم بالفعل خطاف after_code لترحيل (backport) صغير لطلب دمج من المنبع. يتحقق الخطاف أولًا من علامات تُظهر أن الميزة قد وصلت إلى المنبع. إذا لم تصل، فإنه يقوم بتنزيل التصحيح (patch) لالتزام (commit) معروف، ثم يشغّل git apply --check، وبعد ذلك فقط يطبقه باستخدام git apply.

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

بالنسبة لهذا التغيير بالتحديد، إذا احتجت إلى حل مؤقت، فربما سأوفر ترحيلًا عبر after_code بنفس الطريقة بدلاً من تغليفه كإضافة منفصلة.

السبب هو أن #43187 يعدّل بالفعل مسار التمرير (rollover) الخادمي المجدول الخاص بإضافة الأحداث المدمجة نفسها. يمكن لخطاف after_code تطبيق نفس تصحيح المنبع تقريبًا مباشرةً أثناء إعادة البناء. أما الإضافة المنفصلة فستحتاج إلى إعادة إنشاء ذلك التكامل عبر نقطة توسيع (extension point)، أو بطريقة أخرى إضافة/تجاوز سلوك MonitorEventDates الداخلي، مما يضيف طبقة أخرى وقد يكون هشًا بنفس القدر.

السلبي في نهج after_code هو أنه لا يزال مرتبطًا بالشكل الدقيق لرمز المنبع. لأن سلوك موضوع الخلف (successor-topic) يمس MonitorEventDates، يمكن الاستمرار في استخدام تصحيح الالتزام الثابت نفسه طالما نجح git apply --check. إذا قام المنبع بتغيير ذلك الرمز بما يكفي لإيقاف مطابقة سياق التصحيح، فسيحتاج إلى إعادة الأساس (rebase) أو تكييف التغيير على الفرع الرئيسي الحالي (main)، وإنشاء التزام جديد، وتحديث الخطاف لاستخدام معرف (SHA) ذلك الالتزام الجديد.

لذا تبقى تفضيلي:

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

حتى ذلك الحين، سيكون تصحيح after_code حلًا عمليًا مؤقتًا للمضيفين ذاتيًا، لكنني لن أعتبره آلية التوزيع المثالية على المدى الطويل.

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