الإصدار لا يوسم

أحداث تصل بلا إصدار: اربطه بشكل صحيح

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

كيف تبدو المشكلة

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

لا اكتشاف تلقائي هنا بحكم التصميم: يوسم الـ SDK الأحداث بالإصدار الذي تضبطه بالضبط في التهيئة أو الإعداد (خيار release، أو allstak.release في الحِزم القائمة على الخصائص). فإن لم تضبطه تُشحن الأحداث بلا وسم؛ وإن كان مضمّنًا ثابتًا فلن يتغير أبدًا.

الأسباب الجذرية الشائعة

الإصدار لم يُضبط في التهيئة أصلًا

خيار release اختياري في كل الحِزم — وتركه يعني وصول الأحداث بدونه. ولا شيء يستنتجه نيابة عنك من git أو نسخة الحزمة.

قيمة مضمّنة أو قديمة

release: 'v1.0.0' المكتوبة مرة في الشيفرة تبقى v1.0.0 للأبد. يجب أن تأتي القيمة من متغيّر CI يتغير مع كل نشر.

متغيّر البيئة غائب حيث يجري البناء

تقرأ حِزم الواجهة الإصدار وقت البناء (مثل NEXT_PUBLIC_RELEASE و VITE_ALLSTAK_RELEASE). فإذا لم يصدّر CI المتغيّر إلى خطوة البناء، يستلم الـ SDK قيمة undefined ولا يرسل شيئًا.

تغيير دون إعادة تشغيل أو نشر

يُقرأ الإصدار عند تهيئة الـ SDK. وتغيير المتغيّر على عملية جارية لا يفعل شيئًا — فالقيمة الجديدة تسري بعد إعادة تشغيل أو نشر.

التشخيص خطوة بخطوة

تتبّع قيمة الإصدار من CI إلى الحدث — فهي تنكسر عند حلقة واحدة بالضبط.

  1. 1

    افحص ما يحمله حدث حديث

    افتح حدثًا جديدًا في اللوحة واقرأ حقل الإصدار فيه. الغياب يعني أن الـ SDK لم يستلم قيمة قط؛ والقيمة القديمة تعني أن خطّ الأنابيب توقف عن تحديثها.

  2. 2

    تأكد أن release مضبوط في تهيئة الـ SDK

    افحص تهيئتك بحثًا عن خيار release — مثل release: process.env.ALLSTAK_RELEASE في حِزم JS، و allstak.release في خصائص Spring Boot، و ALLSTAK_RELEASE في ملف .env للارافل، وما يعادلها في دليل إعداد تقنيتك.

  3. 3

    غذّه من CI

    صدّر القيمة في خطّ CI — مثل commit SHA من git أو نسخة مثل [email protected] — إلى المتغيّر الذي تقرؤه تهيئتك. وينبغي أن يقود المتغيّر نفسه رفع خرائط المصدر، حتى يتطابق الاثنان دائمًا.

  4. 4

    انتبه لوقت البناء مقابل وقت التشغيل

    لحزم المتصفح يجب أن يوجد المتغيّر أثناء البناء (NEXT_PUBLIC_*، VITE_*)؛ وللخوادم يجب أن يوجد في بيئة التشغيل عند بدء العملية. تحقّق من وجوده في المرحلة الصحيحة لتقنيتك.

  5. 5

    أعد النشر وتحقّق من الوسم

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

  6. 6

    شاهد التجميع لكل إصدار يظهر

    يظهر التجميع القائم على الإصدار متى ما وصلت أحداث تحمل ذلك الإصدار — ولا شيء تسجّله مسبقًا. ومن حينها تستطيع مقارنة معدلات الأخطاء بين عمليات النشر ورصد الانتكاسات لكل إصدار.

كيف تمنع تكرارها

  • اجعل متغيّر الإصدار تصديرًا إلزاميًا في CI — وأفشل الخطّ إن كان فارغًا.
  • استخدم متغيّرًا واحدًا لتهيئة الـ SDK ورفع خرائط المصدر معًا حتى لا ينفصلا أبدًا.
  • فضّل commit SHA — فهو فريد لكل نشر ولا يحتاج متابعة بشرية.
  • افحص حقل الإصدار على حدث واحد بعد كل نشر ضمن روتين الإطلاق.

ما زلت عالقًا؟

يوثّق دليل إعداد كل SDK اسم خيار الإصدار الدقيق لتقنيتك. فإذا كانت القيمة مضبوطة في التهيئة والمتغيّر موجودًا في المرحلة الصحيحة وما زالت الأحداث الجديدة تصل بلا وسم، راسلنا على [email protected] باسم الـ SDK ونسخته ورابط حدث متأثر.

الأسئلة الشائعة

هل يكتشف AllStak إصداري تلقائيًا؟

لا — يوسم الـ SDK الأحداث بالإصدار الذي تضبطه بالضبط في التهيئة أو الإعداد. اضبطه من متغيّر CI (commit SHA أو رقم نسخة) ليتحدّث مع كل نشر.

هل أقدر أغيّر الإصدار والتطبيق شغال؟

لا — يُقرأ الإصدار عند تهيئة الـ SDK. وتغييره يتطلب إعادة تشغيل أو نشر، وهذا يطابق الواقع أصلًا: إصدار جديد يعني شيفرة جديدة تعمل.

ما الصيغة المناسبة لسلسلة الإصدار؟

أي سلسلة فريدة لكل نشر تفي بالغرض: commit SHA من git، أو نسخة دلالية، أو صيغة مركّبة مثل [email protected]. اختر اصطلاحًا واحدًا والتزم به في تهيئة الـ SDK ورفع خرائط المصدر معًا.

ليش الإصدار مهم لخرائط المصدر؟

تُطابَق خرائط المصدر مع الأحداث بسلسلة الإصدار الدقيقة. وإصدار بلا وسم أو غير مطابق يعني أن إطارات المتصفح المصغّرة لن تُحلّ أبدًا — راجع صفحة استكشاف أخطاء خرائط المصدر.

اعرف أي نشر كسرها

وسِم كل حدث بإصداره، وقارن معدلات الأخطاء بين عمليات النشر، وحُلّ الإطارات المصغّرة بخرائط مصدر مطابقة. ابدأ مجانًا.