
Andrew Hanna

Andrew Hanna

باختصار: إصدار Summer '26 يأتي بنسخة API رقم 67.0، وبالنسبة لفرق
DevOps هناك ثلاثة بنود تزن أكثر من كل ما عداها مجتمعًا. عمليات قاعدة البيانات في Apex
صارت تعمل افتراضيًا في وضع المستخدم، والفئات التي لا تحمل كلمة مشاركة صارت افتراضيًا
with sharing، وWITH SECURITY_ENFORCED لم يعد يُترجَم أصلًا.
وهذه الثلاثة كلها مرتبطة بنسخة API التي حُفظت عندها الفئة، ما يحوّل إعداد نسخة API في
خط إصدارك إلى قرار سلوكي لا إلى عملية ترتيب.
Summer '26 هو نسخة API رقم 67.0. فُتحت المعاينة في بيئات الاختبار يوم 8 مايو 2026، وجرى الطرح في الإنتاج أيام 15 مايو و5 يونيو و12 إلى 13 يونيو 2026، أي أنك على الأرجح تعمل عليه بالفعل. والقائمة الكاملة في ملاحظات الإصدار، وما يلي هو الجزء الذي يمس النشر والبيانات الوصفية وسلوك الواجهات البرمجية.
ثلاثة أمور، مرتبة بحسب سرعة أثرها.
WITH SECURITY_ENFORCED أُلغي ولم يعد يُترجَم. هذا صريح
وفوري: أي نشر ما زال يحمل هذه العبارة يُفشل البناء. استبدلها بـ
WITH USER_MODE كما ورد في
دليل المطورين للإصدار.
with sharing.
والافتراضي القديم كان العكس. فالشيفرة التي كانت تعتمد بصمت على وصول وضع النظام صارت
تُرجع بصمت بيانات أقل.
أما المشغّلات (triggers) فما زالت تعمل في وضع النظام عبر كل النسخ. مخرج مفيد للتذكر، وخطر للاتكاء عليه.
هذا هو الجزء الذي تغفله معظم ملخصات الإصدار. فالافتراضات الجديدة تنطبق على الفئات المحفوظة عند نسخة API 67.0 أو أحدث. أي أن سلوك بيئتك لا يتغير يوم وصول الإصدار، بل يوم ترفع فيه خطوط إصدارك نسخة API.
وهذا يرفع ثلاثة أسطر في مستودعك إلى مرتبة التغييرات الوظيفية:
sourceApiVersion في sfdx-project.jsonpackage.xml.cls-meta.xmlوتتبعه ثلاث نتائج، ولا واحدة منها نظرية.
الترتيب الآمن أن تعلن المشاركة صراحة على كل فئة أولًا، ثم ترفع نسخة API. فالتصريح يتفوق على الافتراضي في الاتجاهين.
login() في واجهة SOAP للنسخ من 31.0 إلى 64.0،
وتُوقَف في Summer '27.
لا شيء من هذا عاجل في هذه الدورة، لكنها جميعًا من النوع الذي يُكتشف بعد ثمانية عشر شهرًا في الثانية فجرًا عبر تكامل يسقط. أجرِ جرد نسخ API ما دام رخيصًا.
aiAgentScorerDefinitions، ما يضع بوابات جودة
الوكلاء تحت إدارة الإصدارات.
ApexIntegrationTests ضمن مصفوفة features في تعريف بيئة الـ scratch.
أضِفه قبل أن يفشل تشغيلك التالي بلا سبب ظاهر.
WITH SECURITY_ENFORCED واستبدله. هذا كسر بناء لا
تحذير.
ApexIntegrationTests إلى تعريف بيئة الـ scratch لديك.هل يغيّر Summer '26 سلوك شيفرة Apex القائمة؟
ليس من تلقاء نفسه. فالافتراضات الجديدة لوضع المستخدم والمشاركة تنطبق على الفئات المحفوظة عند نسخة API 67.0 أو أحدث، فتحتفظ الفئات القائمة بسلوكها حتى ترفع نسخة API الخاصة بها.
ما البديل عن WITH SECURITY_ENFORCED؟
استخدم WITH USER_MODE. فالعبارة القديمة أُلغيت ولم تعد تُترجَم، وأي نشر
ما زال يحملها سيفشل.
متى تتوقف نسخ API القديمة عن العمل فعلًا؟
النسخ من 31.0 إلى 40.0 مهملة مع إيقاف كامل في Summer '28، ودالة
login() في SOAP للنسخ من 31.0 إلى 64.0 تُوقَف في Summer '27. انقل عمليات
التكامل إلى 41.0 أو أحدث.
هل تؤثر هذه التغييرات على مشغّلات Apex؟
لا. المشغّلات تستمر في العمل بوضع النظام عبر كل نسخ API.
إذا كان خط إصدارك لا يستطيع أن يخبرك أي الفئات تفتقر إلى كلمة مشاركة صريحة، فهذه هي الفجوة التي تستحق الإغلاق قبل الإصدار القادم. يشغّل Serpent مراجعة كود بالذكاء الاصطناعي على كل تغيير وفي كل خطة، ويرصد هذا النوع تحديدًا من انحراف الحوكمة قبل أن يصل إلى الإنتاج.
بدون التزام.