دعوة مقترحات جديدة للمساهمين لوقف دمج واجهات برمجة التطبيقات التجريبية من Gutenberg إلى WordPress Core

نشرت: 2022-08-11

قد تنتهي قريبًا ممارسة دمج واجهات برمجة التطبيقات التجريبية من Gutenberg في نواة WordPress. يدعو الاقتراح الجديد ، الذي نشره المساهم برعاية Automattic Adam Zielinski ، المساهمين إلى تثبيت واجهات برمجة التطبيقات قبل دمجها في النواة.

على مر السنين ، تم دمج ما يقرب من 280 واجهة برمجة تطبيقات تجريبية من مكون Gutenberg الإضافي ، والتي قام Zielinski بتدقيقها في تذكرة فتحها للإصدار في أبريل. في موازنة الدافع للتحرك السريع مع التكرار على المحرر (المحررون) مقابل التزام WordPress بالتوافق مع الإصدارات السابقة ، أصبح عدد واجهات برمجة التطبيقات التجريبية غير مقبول ويتم الآن إعادة النظر بنشاط في ممارسة دمجها في النواة.

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

قال زيلينسكي: "يضطر مؤلفو الإضافات والقوالب إلى الاعتماد على __experimental التي يمكن إزالتها أو تغييرها بطريقة عكسية غير متوافقة في أي وقت" ، مرددًا الإحباط والمخاوف التي كانت لدى العديد من المطورين بشأن المشروع في السنوات القليلة الماضية. "إنه عبء صيانة خطير. كل إصدار جديد من Gutenberg / WordPress يعني حدوث تغييرات محتملة ".

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

  • لا يرغب الملتزمون الأساسيون في استخدام ميزات مكتبة معينة لتسهيل المهام الأساسية لأنهم لا يثقون في الموثوقية
  • لم يعد المطورون يقومون بترقية مواقع عملاء WP. بصفتي ملتزمًا أساسيًا سعى جاهدًا للحفاظ على التوافق مع الإصدارات السابقة لسنوات ، فإن هذا يخيب أملي. بصفتك عضوًا في فريق الأمن ، فإن الأمر مقلق للغاية
  • قرر المطورون تضمين نسخ من الحزم في السمات والإضافات بدلاً من الاعتماد على wp.* globals. مرة أخرى ، هذا يثير قلقي من منظور الأمان ولكنه يزيد أيضًا من حمولة JavaScript بشكل كبير أكثر من الحفاظ على التوافق مع الإصدارات السابقة
  • تقارير التوافق مع الإصدارات السابقة تتكسر في الإصدارات الثانوية: "لا تتوقع أن يؤدي إصدار 5.9.1 إلى كسر استجابة مجموعة من الصور في مواقعنا خارج محرر الكتلة"
  • المطورين الذين يفكرون في عدم استخدام الكتل الأساسية أبدًا لأنها غير مستقرة للغاية: "لقد توقفت عن استخدام / توسيع الكتل الأساسية لأنها كانت تتغير كثيرًا وكنت أستخدم كتل ACF حتى أعلم على الأقل أنه يمكنني إنشاء كتل لا فترة راحة. منحت أن واجهة المستخدم ليست جيدة مثل الكتل الأساسية ، لكنني سأتحمل الاستقرار على الكتل التي تكسر في أي وقت ".

كان من المفترض أن يعمل المكون الإضافي Gutenberg كمكوِّن إضافي للميزات حيث من المتوقع حدوث فواصل في التوافق مع الإصدارات السابقة بينما يقوم المساهمون بصقل الميزات قبل دمجها في النواة. العودة إلى جذور هذا النهج ، وجعل المحرر أقل تجريبية ، هو محور هذا الاقتراح.

قال ويلسون: "بدأ عدم الاستقرار بين الإصدارات في تنفير بعض أكبر المدافعين الخارجيين لمحرري الكتل".

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

قال نيك دييجو ، المساهمون برعاية WP Engine ، "بصفتي مؤلف مكون إضافي يستخدم حاليًا العديد من واجهات برمجة التطبيقات __experimental ، أود أن أرى هذه الاستقرار". "يوفر معظمها وظائف مهمة ، لكن بناء منتج يعتمد على __experimental برمجة تطبيقات تجريبية أمر مربك بعض الشيء دائمًا. طالما أن العملية شفافة للغاية ، ومُعلن عنها جيدًا ، ونزود مؤلفي المكونات الإضافية / السمات بدليل حول كيفية الانتقال إلى الإصدارات المستقرة ، فأنا أحب هذه المبادرة ".

بعد أشهر من النقاش حول البطاقة ، قام Zielinski بتقطير مخاوف المساهمين في خطة العمل المقترحة على مدونة Make WordPress Core.

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

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

"أرى أيضًا شيئين يلعبان هنا: استخدام وإساءة استخدام واجهات برمجة التطبيقات التجريبية أثناء تصميم واجهة برمجة التطبيقات (بشكل عام يتم استخدامها واختبارها في مكون Gutenberg الإضافي) والافتقار إلى عملية جادة لتحقيق الاستقرار فيها عند استيفاء معايير التصميم ،" علق المهندس المعماري الرئيسي في جوتنبرج ماتياس فينتورا على التذكرة الأصلية. "تلك التي يجب اعتبارها عامة بحكم الواقع هي تلك التي كانت موجودة للعديد من الإصدارات في شكل مستقر على الرغم من تسميتها."

من أجل الحفاظ على قدرة WordPress على الوفاء بوعود التوافق العكسي ، يوصي الاقتراح بأن تقتصر واجهات برمجة التطبيقات التجريبية على مكون Gutenberg الإضافي ولا يتم دمجها أبدًا في النواة. في الحالات التي تعتمد فيها الميزة المستقرة على واجهة برمجة تطبيقات تجريبية ، حدد Zielinski إجابة بسيطة:

"إذن فهو ليس مستقرًا في الواقع. دعونا نحقق الاستقرار في التبعيات أولاً ".

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

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

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

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

علق دوفيد ليفين ، أحد المساهمين في WordPress ، على الاقتراح قائلاً: "إن العودة إلى هذا النوع من الاستقرار في الجوهر ستقطع شوطًا طويلاً لاستعادة بعض حسن نية المطورين".

الموعد النهائي للتعليق على الاقتراح هو 7 سبتمبر ، والذي سيغلق المناقشة قبل ثلاثة أسابيع فقط من توقع WordPress 6.1 Beta 1. يمنح هذا المساهمين بعض الوقت لإجراء تدقيق أعمق لواجهات برمجة التطبيقات التجريبية قبل الإصدار الرئيسي التالي ، إذا توصلوا إلى توافق في الآراء بشأن تقييدها على المكون الإضافي Gutenberg.