في Gnome 45 لن تتمكن من استخدام المكونات الإضافية القديمة بسبب مشكلات التوافق

عفريت

جنوم هي بيئة سطح مكتب وبنية تحتية للتطوير لأنظمة تشغيل جنو/لينكس.

قبل أيام قليلة تم الإعلان عن ذلك معلومات عن التغيير وهو ما قد لا يعجب جميع مستخدمي جنوم وهو موجود في الإصدار الجديد من جنوم 45 تم إجراء بعض التغييرات التي تؤثر على المكونات الإضافية للبيئة.

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

يذكر أن:

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

أصبحت هذه مشكلة عندما بدأ الأشخاص في كتابة برامج أكبر بلغة JavaScript، لذلك أضافت بيئات مثل Node.js وGJS أنظمة الاستيراد الخاصة بها لتنظيم التعليمات البرمجية في ملفات متعددة. ونتيجة لذلك، واجه المطورون والأدوات صعوبة في الانتقال من بيئة إلى أخرى.

كما، المشكلة التي سوف تواجهها الإضافات تم تطويره للإصدارات السابقة من جنوم وذلك لن يتمكنوا من العمل في الإصدار التالي من جنوم 45، بسبب انقطاع التوافق في التبديل من نظام استيراد الوحدة الخاص به، الخاص بوقت تشغيل GJS JavaScript (GNOME JavaScript استنادًا إلى محرك SpiderMonkey لمشروع Mozilla)، إلى آلية استيراد وحدة JavaScript القياسية (ESM) الموضحة في ECMAScript.

لا تزال عمليات الاستيراد القديمة مدعومة في الامتدادات.gnome.org، لكنك ستحتاج إلى تحميل دعم ما قبل GNOME 45 وما بعده لدعم كل من LTS والتوزيعات العادية.

بالإضافة إلى ذلك يذكر أن الاختلافات تأتي إلى الحقيقة أنه في السابق، بالإضافة إلى GNOME Shell، تم استخدام كائن "الواردات".» لتوصيل وحدات JavaScript وروابط GObject، ولكن الآن يجب استخدام عامل التشغيل "الواردات".

من ناحية أخرى، يُذكر أيضًا أن المكونات الإضافية التي تم تكييفها للتشغيل على جنوم 45 لن تكون قادرة على التثبيت على الإصدارات الأقدم من جنوم وأنه للحفاظ على التوافق مع إصدارات مختلفة من جنوم، يجب على مطوري المكونات الإضافية تحميل متغيرين من المكونات الإضافية في الامتدادات. gnome .org – واحد لـ GNOME 45 والإصدارات الأحدث، وواحد للإصدارات الأقدم من GNOME.

حسنًا، هناك مشكلة صغيرة: الوحدات النمطية والواردات القديمة غير متوافقة في الممارسة العملية.

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

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

أخيرا يُذكر أن المطورين يعملون على جنوم 45 والإصدارات الأحدث، يجب على الإضافات تغيير الكود المرتبط بتحميل المكتبات، تأكد من أن الملف Extension.js يحتوي على أساليب تمكين ()/تعطيل () في الفئة الافتراضية، وعند استخدام prefs.js، حدد ExtensionPreferences. فئة فرعية باستخدام طريقة fillPreferencesWindow.

يجب ربط النسخة المعدلة من البرنامج المساعد بإصدارات GNOME Shell الجديدة عبر المعلمة '»Shell-version»: [ «45» ]' في metadata.json. بالنسبة إلى GNOME الأقدم من الإصدار 45، يمكنك إنشاء إصدارات منفصلة من المكونات الإضافية، مع التأكد أيضًا من ارتباطها بالإصدارات الأقدم عبر معلمة إصدار Shell في metadata.json. يمكنك اختبار الإضافات المعدلة باستخدام إصدارات نظام التشغيل GNOME OS.

وبالمثل، تتم مشاركة دليل قابلية النقل، والذي يمكن الرجوع إليه من الرابط التالي. وأخيرًا وليس آخرًا، تجدر الإشارة إلى أنه تم إطلاق النسخة الجديدة من من المقرر أن يتم عرض جنوم 45 في 20 سبتمبر (للغد).

إذا كنت مهتم بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.