
Andrew Hanna

Andrew Hanna

الإجابة المختصرة: إصدار التطبيق على AppExchange يمر بخمس مراحل: تجهيز نسخة beta من الحزمة، ثم التحقق منها، ثم ترقيتها إلى released، ثم ربطها بصفحة التطبيق، وأخيرا نقل العملاء المشتركين إليها. كل نسخة من الحزم المُدارة من الجيل الثاني تولد كنسخة beta، والترقية إلى released قرار لا رجعة فيه، والحزم التي اجتازت المراجعة الأمنية وحدها هي التي يمكن دفعها إلى مؤسسات المشتركين.
sf package version promote يحوّل نسخة
beta إلى نسخة released.
معظم فرق الـ ISV تنفذ الخطوات الخمس بشكل أو بآخر. الناقص عادة هو الترتيب، والبوابة الفاصلة بين كل مرحلة والتي تليها، وسجل موثوق يوضح أي مؤسسة مشتركة تعمل على أي نسخة.
قابلية الترقية تحددها سلسلة الأصل (ancestry)، لا رقم النسخة الذي
كتبته. كل نسخة 2GP جديدة تعلن عن نسخة أصل في sfdx-project.json، وسيلزفورس
توصي باستخدام ancestorVersion: HIGHEST حتى يتتبع الأصل أعلى نسخة تمت
ترقيتها تلقائيا. العملاء الحاليون لا يستطيعون الترقية إلى نسخة أُنشئت بدون أصل محدد،
لذلك بناء واحد ناقص الأصل ينتج نسخة لا يصل إليها أحد.
الترقية هي أهم بوابة في المسار كله، لأنها لا تُلغى.
الأفضل أن تتم الترقية من داخل خط التسليم خلف موافقة بشرية واحدة صريحة، لا من الجهاز الذي تصادف أنه مسجل الدخول إلى Dev Hub. صلاحية الترقية نفسها وسيلة تحكم: امنحها عبر permission set بدلا من منحها لكل من لديه وصول إلى الـ CLI.
في أول إدراج للتطبيق، تقع المراجعة الأمنية بين مرحلة التحقق ومرحلة النشر، وهي أطول بند في الجدول الزمني. أما مع التحديثات فالصورة مختلفة. لست مضطرا لمراجعة أمنية كاملة مع كل patch أو ترقية، والذي يحكم النشر هو حالة صفحة التطبيق. إذا ظهرت الحالة Ready to List، يمكنك نشر الصفحة المحدثة بدون تقديم النسخة الجديدة للمراجعة. أما إذا ظهرت Security Review Required، فلن تستطيع النشر حتى تجتاز تلك النسخة المراجعة.
كذلك تجري سيلزفورس مراجعات دورية متكررة، والنسخة التي تحمل تغييرا كبيرا أقرب إلى إثارة مراجعة جديدة. لذلك خصص وقت المراجعة للإصدارات التي تمس البنية أو المصادقة أو الاتصالات الخارجية، وتوقف عن حجزه لإصلاحات الأخطاء الروتينية. راجع القواعد الحالية في دليل ISVforce الخاص بتحديث صفحة التطبيق قبل أن تبني خطة ربع سنة عليها.
ثلاث أدوات، من الأقل تدخلا إلى الأكثر:
طرح تدريجي يصمد عمليا: مؤسساتك أنت أولا، ثم مؤسسات الشركاء وبيئات الـ sandbox، ثم مجموعة صغيرة من العملاء الموافقين، ثم البقية على دفعات مجدولة خارج ساعات الذروة. اترك بين كل دفعة وأخرى وقتا يكفي لوصول تذكرة دعم حقيقية، وهذا عادة يوم عمل كامل لا ساعة واحدة.
البند الرابع هو ما تؤجله الفرق ثم تندم عليه، لأن جودة الدعم تعتمد عليه أكثر من أي بند آخر في القائمة. Serpent يغطي مسارات 1GP و2GP والحزم المُدارة، وحل الاعتماديات بين الحزم، وإدارة النسخ عبر مؤسسات المشتركين في كل الخطط بما فيها الخطة المجانية. تجد أدلة تعبئة أخرى في مكتبة SF Guides عندنا.
هل أستطيع التراجع عن ترقية نسخة إلى released؟
لا. رقم النسخة يُرقّى ويُصدر مرة واحدة فقط والتغيير لا يُلغى، فتعامل مع الترقية كقرار إصدار لا كخطوة بناء.
هل أحتاج مراجعة أمنية جديدة مع كل إصدار؟
لا. المراجعة الكاملة ليست مطلوبة مع كل patch أو ترقية. النشر يتوقف على حالة صفحة التطبيق، ومع ذلك قد تطلب سيلزفورس مراجعة دورية إذا تغيرت النسخة تغييرا كبيرا.
لماذا لا يستطيع عميلي الترقية إلى أحدث نسخة عندي؟
السبب غالبا سلسلة الأصل. العملاء الحاليون لا يستطيعون الترقية إلى نسخة أُنشئت بدون أصل محدد، فافحص الأصل قبل أي شيء آخر.
ما الفرق بين النسخة الموصى بها والـ push upgrade؟
النسخة الموصى بها تعرض للمشترك خيار Upgrade to Recommended Version وتترك له التوقيت. أما الـ push upgrade فينقل مؤسسته بدلا عنه وفق جدولك أنت.
هل تُحسب نسخ beta إصدارات؟
لا. كل نسخة 2GP تبدأ beta وتُثبّت للاختبار فقط. وتصبح إصدارا في اللحظة التي تُرقّى فيها.
بدون التزام.