مسرد Salesforce DevOps

package.xml

ملف البيان (manifest) الذي يخبر Metadata API بالضبط أي المكونات يجب استرجاعها أو نشرها في إصدار ما.

التعريف

package.xml هو ملف البيان الذي تقرأه Metadata API لمعرفة أي المكونات، حسب النوع والاسم، يجب تضمينها في عملية استرجاع أو نشر. أي شيء غير مدرج فيه لا يُلمس ببساطة؛ تُترك البيانات الوصفية المنشورة الواقعة خارج البيان كما هي بدلاً من إزالتها، لأن التغييرات المدمّرة تحتاج بيانها المنفصل الخاص بها.

الحفاظ يدويًا على package.xml لإصدار ما سبب شائع لأخطاء من نوع “نجح على جهازي”: يضيف مطور حقلًا مخصصًا جديدًا أو فئة Apex محليًا، وينسى إضافة الإدخال المقابل إلى البيان، فينجح النشر دون خطأ بينما يغيب بصمت مكون كان الإصدار يعتمد عليه.

يمكن للمؤسسات القائمة على source tracking وأدوات CLI توليد package.xml تلقائيًا من فرق (diff)، وهذا سبب تحول معظم خطوط أنابيب Salesforce DevOps بعيدًا عن البيانات المُحرَّرة يدويًا نحو أدوات تبني القائمة مما تغيّر فعليًا. يغطي دليل Salesforce DevOps لدينا توليد البيانات كجزء من عملية البناء.

من واقع الاستخدام

إزاي بيشتغل في Serpent

يبني Serpent بيان النشر الخاص به تلقائيًا من البيانات الوصفية التي لمسها عنصر العمل (Work Item) فعليًا، بأسلوب source-tracked لا يدوي، بحيث لا يمكن أن يُترك مكون بصمت خارج إصدار ما كما قد يحدث مع package.xml مُحرَّر يدويًا. تبقى قائمة مكونات كل عنصر عمل مرئية قبل النشر، بحيث يمكن للمراجعين تأكيد ما هو مضمَّن بالضبط دون مراجعة بيان يدويًا. راجع إدارة الإصدارات في Serpent لمعرفة كيف يُحدَّد نطاق عمليات النشر التفاضلية (delta).

Serpent يولّد ملف بيان package.xml للمكونات المطلوب جلبها أو نشرها
أسئلة شائعة

package.xml، تمت الإجابة

لماذا نجحت عملية النشر لكن مكون ما مفقود في المؤسسة الهدف؟
شبه المؤكد أن المكون لم يكن مدرجًا في package.xml. تمس Metadata API فقط ما هو مدرج في البيان، لذا لا يُطلق الإدخال المُهمَل خطأً، بل يُتجاوز بصمت فحسب.
هل يمكنني استخدام package.xml واحد لنشر البيانات الوصفية وحذفها معًا؟
لا. تستخدم عمليات النشر والحذف بيانات منفصلة: package.xml لما يجب نشره وdestructiveChanges.xml لما يجب إزالته. الجمع بينهما في ملف واحد غير مدعوم.
كيف أُنشئ package.xml تلقائيًا بدلاً من كتابته يدويًا؟
يمكن للمؤسسات القائمة على source tracking وSalesforce CLI توليد بيان من فرق (diff) مقابل ما تغيّر. تبني الأدوات المبنية على source tracking، بما فيها Serpent، البيان تلقائيًا من المكونات التي لمسها التغيير فعليًا.

ابدأ مجانًا. بلا بطاقة ائتمان، بلا تثبيت، بلا التزام.

الإعداد في أقل من 15 دقيقة. لا حاجة لتوظيف DevOps.

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.