التوافق مع الأنظمة الخلفية

تقدّم هذه الصفحة معلومات عن كيفية التعامل مع التوافق مع الأنظمة القديمة، بما في ذلك نقل البيانات من إصدار إلى آخر وكيفية الإبلاغ عن التغييرات غير المتوافقة.

تتطوّر شركة Bazel. الإصدارات الثانوية التي تم إصدارها كجزء من الإصدار الرئيسي للدعم الطويل الأمد (LTS) متوافقة بالكامل مع الإصدارات القديمة. قد تحتوي التغييرات بين الإصدارات الرئيسية للدعم الطويل الأمد (LTS) على تغييرات غير متوافقة تتطلب بذل بعض الجهد لنقل البيانات. لمزيد من المعلومات حول آلية عمل إصدار Bazel، راجِع الإعلان عن إصدارات Bazel للدعم الطويل الأمد (LTS).

ملخّص

  1. ننصحك باستخدام علامات --incompatible_* للتغييرات التي قد تؤدي إلى أعطال.
  2. بالنسبة إلى كل علامة --incompatible_*، تشرح مشكلة GitHub التغيير في السلوك وتهدف إلى تقديم وصفة لنقل البيانات.
  3. يمكن أن تتغير واجهات برمجة التطبيقات والسلوك المحمي من خلال علامة --experimental_* في أي وقت.
  4. عدم تشغيل إصدارات الإنتاج مطلقًا باستخدام علامات --experimental_* أو --incompatible_*

كيفية اتّباع هذه السياسة

ما هي الوظيفة الثابتة؟

بشكل عام، تُعتبر واجهات برمجة التطبيقات أو السلوكيات بدون علامات --experimental_... ميزات متاحة ومتوافقة في Bazel.

وتتضمّن المزايا ما يلي:

  • لغة Starlark وواجهات برمجة التطبيقات
  • مجموعة من القواعد مع Bazel
  • واجهات برمجة تطبيقات Bazel مثل واجهة برمجة التطبيقات للتنفيذ عن بُعد أو بروتوكول إنشاء الحدث
  • الأعلام ومعانيها

التغييرات غير متوافقة ووصفات الطعام

بالنسبة إلى كل تغيير غير متوافق في إصدار جديد، يسعى فريق Bazel إلى تقديم وصفة نقل بيانات تساعدك في تعديل الرمز (ملفَي BUILD و.bzl، بالإضافة إلى أي استخدام لتطبيق Bazel في النصوص البرمجية واستخدام واجهة برمجة تطبيقات Bazel وما إلى ذلك).

يجب أن ترتبط التغييرات غير المتوافقة بعلامة --incompatible_* ومشكلة مرتبطة بها على GitHub.

الإبلاغ عن التغييرات غير المتوافقة

المصدر الأساسي للمعلومات حول التغييرات غير المتوافقة هو مشاكل GitHub التي تم وضع علامة "incompatible-change"## عليها.

بالنسبة إلى كل تغيير غير متوافق، تحدِّد المشكلة ما يلي:

  • اسم العلامة التي تتحكم في التغيير غير المتوافق
  • وصف الوظيفة التي تم تغييرها
  • طريقة نقل البيانات

عندما يكون هناك تغيير غير متوافق جاهزًا للنقل باستخدام Bazel على HEAD (لذلك، مع الإصدار التالي من Bazel)، يجب وضع علامة migration-ready عليه. يتم إغلاق مشكلة التغيير غير المتوافقة عند قلب العلامة غير المتوافقة إلى العنوان HEAD.