سيتم إطلاق BazelCon لعام 2022 في الفترة من 16 إلى 17 تشرين الثاني (نوفمبر) في نيويورك وعلى الإنترنت. التسجيل اليوم
جديد: انضم إلينا في يوم المنتدى في 15 تشرين الثاني (نوفمبر). التفاصيل والتسجيل:

مسرد مصطلحات البازل

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

الإجراء

أمر لتشغيله أثناء الإنشاء، على سبيل المثال، استدعاء برنامج التجميع الذي يستخدِم العناصر كإدخالات وينتج عناصر أخرى كمخرجات. يتضمن البيانات الوصفية مثل وسيطات سطر الأوامر ومفتاح الإجراء ومتغيرات البيئة والأجزاء المُدخلة/المخرجات التي تم الإعلان عنها.

يمكنك أيضًا الاطِّلاع على: مستندات القواعد

إجراء تخزين مؤقت

ذاكرة تخزين مؤقت على القرص تُخزِّن عملية ربط الإجراءات المنفَّذة بالمخرجات التي تم إنشاؤها. يُعرف مفتاح ذاكرة التخزين المؤقت باسم مفتاح الإجراء. مكوّن أساسي لنموذج التزايد في Bazel' يتم تخزين ذاكرة التخزين المؤقت في الدليل الأساسي للمخرجات، وبالتالي تظل قيد التشغيل لإعادة تشغيل خادم Bazel.

رسم بياني للإجراء

رسم بياني في الذاكرة يضم الإجراءات وال العناصر التي تقرأها هذه الإجراءات وتنشئها. قد يتضمن الرسم البياني عناصر موجودة كملفات مصدر (على سبيل المثال، في نظام الملفات) بالإضافة إلى عناصر متوسطة/نهائية تم إنشاؤها ولم يتم ذكرها في ملفات BUILD. يتم إنتاجه خلال مرحلة التحليل واستخدامها خلال مرحلة التنفيذ.

طلب رسم بياني للإجراء (aquery)

أداة طلب بحث يمكنها طلب البحث عن إجراءات الإصدار. ويوفر ذلك إمكانية تحليل كيفية تحويل قواعد الإنشاء إلى إصدارات العمل الفعلية.

مفتاح الإجراء

مفتاح ذاكرة التخزين المؤقت لأحد الإجراءات. يتم احتسابها استنادًا إلى البيانات الوصفية للإجراءات، والتي قد تتضمن الأمر الذي سيتم تنفيذه في الإجراء أو علامات برنامج التجميع أو المواقع الجغرافية للمكتبة أو عناوين النظام، حسب الإجراء. تفعيل Bazel لتخزين الإجراءات الفردية مؤقتًا أو إبطالها نهائيًا.

مرحلة التحليل

المرحلة الثانية من التصميم. معالجة الرسم البياني المستهدف المحدّد في ملفات BUILD لإنشاء رسم بياني للإجراء داخل الذاكرة يحدد ترتيب الإجراءات التي يجب تنفيذها أثناء مرحلة التنفيذ. هذه هي المرحلة التي يتم فيها تقييم تنفيذ القواعد.

العناصر

ملف مصدر أو ملف تم إنشاؤه ويمكن أيضًا أن يكون دليلاً للملفات، أو ما يُعرف باسم قطع الأشجار.

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

يمكن أن تتم معالجة العنصر الذي يتوافق مع هدف الملف من خلال تصنيف.

جانب

آلية لقواعد إنشاء إجراءات إضافية في تبعياتها. على سبيل المثال، إذا كان الاستهداف "أ" يعتمد على "ب"، يمكن تطبيق جانب على "أ" يمرّ حد اعتمادية إلى "ب" وينفّذ إجراءات إضافية في "ب" لإنشاء ملفات مخرجات إضافية وجمعها. ويتم إجراء تخزين مؤقت لهذه الإجراءات الإضافية وإعادة استخدامها بين الاستهدافات التي تتطلب الجانب نفسه. تم الإنشاء باستخدام aspect() Starlark Build API. ويمكن استخدامها مثلاً لإنشاء بيانات وصفية لتجارب التطوير المتكاملة (IDE) وإنشاء إجراءات لربطها.

اطّلِع أيضًا على: مستندات Aspec

جانب إلى جانب

آلية تركيب يمكن من خلالها تطبيق الجوانب على نتائج الجوانب الأخرى. على سبيل المثال، يمكن تطبيق جانب يُنشئ معلومات للاستخدام من خلال أدوات IDE على جانب يؤدي إلى إنشاء ملفات .java من بروتوكول.

بالنسبة إلى الميزة A التي يتم تطبيقها في أعلى السمة B، على مقدّمي الخدمة الذين يعلن B في السمة provides أن يطابقوا ما يطلبه A في السمة required_aspect_providers.

السمة

معلّمة إلى قاعدة، تُستخدَم للتعبير عن معلومات الإصدار المستهدَفة لكل هدف. تشمل الأمثلة srcs وdeps وcopts، على التوالي، والتي تحدّد ملفات المصدر على مستوى الاستهداف والاعتمادية وخيارات برامج التجميع المخصّصة. تعتمد السمات المتوفّرة لهدف معيّن على نوع القاعدة.

bazelrc

استخدم ملف Bazel تغيير القيم التلقائية لكل من علامات بدء التشغيل وعلامات الأوامر، ولتحديد مجموعات الخيارات الشائعة التي يمكن ضبطها بعد ذلك في سطر الأوامر في Bazel باستخدام علامة --config. يمكن أن يجمع تطبيق Bazel الإعدادات من ملفات متعددة للبازارات (على مستوى النظام أو حسب مساحة العمل أو لكل مستخدم أو من موقع جغرافي مخصّص)، وقد يستورد ملف bazelrc أيضًا الإعدادات من ملفات bazelrc الأخرى.

الفئة المَرِنة

إصدار Google Bazel الداخلي. نظام التصميم الرئيسي لشركة Google لمستودعها الأحادي.

ملف BUILD

يُقصد بملف BUILD ملف الإعداد الرئيسي الذي يخبر Bazel بالبرامج التي سيتم إنشاؤها واعتمادياتها وكيفية إنشائها. تأخذ Bazel ملف BUILD كإدخال ويستخدم الملف لإنشاء رسم بياني للاعتماديات واستنتاج الإجراءات التي يجب إكمالها لإنشاء مخرجات برامج نهائية ونهائية. يحدد ملف BUILD دليلاً وأي أدلة فرعية لا تحتوي على ملف BUILD على أنه حزمة، ويمكن أن يحتوي على أهداف تم إنشاؤها باستخدام القواعد. ويمكن تسمية الملف أيضًا BUILD.bazel.

ملف BUILD.bazel

يمكنك الاطّلاع على ملف BUILD. تحظى هذه الملفات بالأولوية على ملف BUILD في الدليل نفسه.

ملف .bzl

ملف يحدِّد القواعد ووحدات الماكرو والثوابت المكتوبة في Starlark ويمكن بعد ذلك استيرادها إلى ملفات BUILD باستخدام الدالة load().

إنشاء رسم بياني

الرسم البياني للاعتمادية الذي يصنعه Bazel ويجتازه ويشمل ذلك العُقد مثل الاستهدافات والأهداف التي تم ضبطها والإجراءات وال العناصر. يُعدّ الإصدار متوافقًا عندما يتم التحقق من كل العناصر التي تستند إليها مجموعة من الأهداف المطلوبة باعتبارها حديثة.

إعداد الإصدار

جزء ضبط من إعداد Starlark يمكن أن تؤدي عمليات النقل إلى ضبط إعدادات الإصدار لتغيير إعدادات الحساب الفرعي. إذا تم عرض المستخدم على أنه علامة سطر أوامر، والمعروفة أيضًا باسم علامة إصدار.

إصدار سليم

إصدار لا يستخدم نتائج الإصدارات السابقة. ويكون ذلك بشكل أبطأ بشكل عام من البنية المتزايدة ولكن يُعتبر عادةً صحيحًا. يضمن Bazel أن تكون الإصدارات النظيفة والمتزايدة صحيحة دائمًا.

نموذج إلى خادم العميل

يبدأ برنامج سطر الأوامر bazel تلقائيًا خادم خلفية على الجهاز المحلي لتنفيذ أوامر Bazel. ويستمر الخادم في توجيه الأوامر، ولكنه يتوقف تلقائيًا بعد فترة من عدم النشاط (أو بشكل صريح من خلال إيقاف Bazel). يؤدي تقسيم Bazel إلى خادم وعميل إلى المساعدة في ترتيب وقت بدء JVM ودعم إصدارات متزايدة بشكل أسرع لأن الرسم البياني للإجراءات يظل في الذاكرة على مستوى جميع الأوامر.

Command

يُستخدم في سطر الأوامر لاستدعاء وظائف Bazel مختلفة، مثل bazel build وbazel test وbazel run وbazel query.

علامات الطلب

مجموعة من العلامات المحدّدة لأمر معيّن يتم تحديد علامات الأمر بعد الأمر (bazel build <command flags>). يمكن أن تسري العلامات على أمر واحد أو أكثر. على سبيل المثال، العلامة --configure هي علامة حصرية للأمر bazel sync، ولكن --keep_going سارية على sync وbuild وtest وغيرها. وغالبًا ما تُستخدم العلامات لأغراض الضبط، وبالتالي يمكن أن تؤدي التغييرات في قيم العلامات إلى إيقاف Bazel الرسوم البيانية داخل الذاكرة وإعادة تشغيل مرحلة التحليل.

الإعدادات

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

راجع أيضًا: الإعدادات

قطع الضبط

عملية تضمين عناصر الضبط المطلوبة فقط. على سبيل المثال، إذا أنشأت برنامج Java الثنائي //:j باستخدام C++ dependency //:c، سيكون من المُهدر تضمين قيمة --javacopt في ضبط //:c بسبب تغيير --javacopt unability build{0}ne+ari+2 2">

طلب البحث الذي تم ضبطه (cquery)

أداة طلب بحث تبحث في الأهداف التي تم ضبطها (بعد اكتمال مرحلة التحليل). ويعني ذلك ظهور select() وعلامات الإصدار (مثل --platforms) بدقة في النتائج.

راجع أيضًا: مستندات طلب البحث

الهدف الذي تم ضبطه

نتيجة تقييم هدف باستخدام ضبط. تُنتج مرحلة التحليل هذا من خلال الجمع بين خيارات الإصدار&#39؛ والأهداف التي يجب إنشاؤها. على سبيل المثال، إذا كان //:foo يبني بنيتين مختلفتين في نفس التصميم، يكون له هدفان تم ضبطهما: <//:foo, x86> و<//:foo, arm>.

صحة

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

اعتمادية

حافة موجّهة بين هدفَين. يشتمل الاستهداف //:foo على اعتمادية هدف على الهدف //:bar إذا كانت قيم السمة //:foo&#99 تتضمّن مرجعًا إلى //:bar. يعتمد //:foo على اعتمادية الإجراء على //:bar إذا كان الإجراء في //:foo يعتمد على إدخال تم إنشاؤه بواسطة إجراء في //:bar.

Depset

بنية بيانات لجمع البيانات حول المهام التابعة غير المباشرة. تم تحسين هذه العمليات كي يتم دمج الوحدات التنظيمية في الوقت والمساحة، لأنه من الشائع أن يتم استخدام مجموعات كبيرة للغاية (مئات الآلاف من الملفات). مُطبَّقة للإشارة بشكل متكرر إلى تعديلات أخرى لأسباب تتعلق بكفاءة المساحة. يجب ألا يتم تنفيذ القاعدة عمليات التنفيذ "flatten"quot، من خلال تحويلها إلى قوائم ما لم تكن القاعدة في المستوى الأعلى من الرسم البياني للإصدار. يتسبب تسطيح الحبيبات الكبيرة في استهلاك كبير للذاكرة. يُعرف أيضًا باسم المجموعات المتداخلة في تطبيق Bazel's الداخلي.

اطّلِع أيضًا على: مستندات العمق

ذاكرة التخزين المؤقت على القرص

متجر محلي كبير للقرص المخزّن لميزة التخزين المؤقت عن بُعد. يمكن استخدامه مع المزاملة مع متجر كائن ثنائي كبير فعلي.

موزع

دليل للقراءة فقط يحتوي على ملفات يجلبها Bazel بخلاف ذلك من الإنترنت باستخدام قواعد المستودع. تعمل هذه السياسة على تفعيل الإصدارات لتفعيلها بلا اتصال بالإنترنت.

التنفيذ الديناميكي

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

مرحلة التنفيذ

المرحلة الثالثة من التصميم. تنفيذ الإجراءات الواردة في الرسم البياني للإجراء الذي تم إنشاؤه أثناء مرحلة التحليل. وتستدعي هذه الإجراءات العناصر التنفيذية (برامج التجميع والنصوص البرمجية) لقراءة العناصر وكتابتها. تتحكّم الاستراتيجيات المقسّمة في كيفية تنفيذ هذه الإجراءات: محليًا وعن بُعد وديناميكيًا وفي وضع الحماية وقاعدة الإرساء وما إلى ذلك.

جذر التنفيذ

دليل في دليل مساحة الإخراج في مساحة العمل حيث يتم تنفيذ الإجراءات المحلية باستخدام إصدارات غير وضع الحماية ويُعد محتوى الدليل في الغالب روابط مُدخلة لـ أدوات الإدخال من مساحة العمل. يتضمّن جذر التنفيذ أيضًا روابط إلى مستودعات خارجية كإدخالات أخرى ودليل bazel-out لتخزين النتائج. يتم التحضير خلال مرحلة التحميل من خلال إنشاء غابة رمزية للأدلة التي تمثّل الإغلاق العابر للحزم التي يعتمد عليها الإصدار. يمكن الوصول إليها باستخدام bazel info execution_root في سطر الأوامر.

ملف

يُرجى الاطّلاع على العنصر.

الزخارف

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

الإصدار المتزايد

يؤدي استخدام الإصدار المتزايد إلى إعادة استخدام نتائج الإصدارات السابقة لتقليل وقت الإصدار واستخدام الموارد. تهدف عملية التحقّق من الاعتمادية والتخزين المؤقت إلى تقديم نتائج صحيحة لهذا النوع من الإصدارات. ويُعتبر الإصدار المعكوس عكس التصميم النظيف.

التصنيف

معرّف target. يتكون التصنيف المؤهل بالكامل مثل //path/to/package:target من // لوضع علامة على دليل جذر مساحة العمل، وpath/to/package كدليل يحتوي على BUILD ملف يعلن عن الهدف، و:target باعتباره اسم الهدف المذكور في ملف BUILD المذكور أعلاه. ويمكن أن تسبق هذه الحالة أيضًا @my_repository//<..> للإشارة إلى أنّ الهدف في عمود [مستودع خارجي] اسمه my_repository.

مرحلة التحميل

المرحلة الأولى من الإصدار الذي يُجري فيها Bazel تحليل WORKSPACE وBUILD و.bzl ملفات لإنشاء حِزم. يتم تقييم وحدات الماكرو ودوال معيّنة مثل glob() في هذه المرحلة. مرحلة متداخلة من المبنى، هي مرحلة التحليل، لإنشاء رسم بياني مستهدَف.

وحدة الماكرو

آلية لإنشاء تصريحات استهداف قاعدة متعددة معًا ضمن وظيفة Starlark واحدة. يتم تفعيل إعادة استخدام أنماط بيان القواعد الشائعة في ملفات BUILD. تم توسيع نطاقه إلى بيانات الإعلانات المستهدفة للقواعد الأساسية خلال مرحلة التحميل.

يُرجى الاطِّلاع أيضًا على: مستندات الماكرو

تذكاري

سلسلة قصيرة يمكن قراءتها من قِبل مؤلف للقاعدة لفهم ما يجريه الإجراء في القاعدة بسرعة. يمكن استخدام نماذج الذاكرة كمعرّفات لاستراتيجية التطوير. ومن أمثلة تذكُّرات الإجراءات Javac من قواعد Java، وCppCompile من قواعد C++ ، وAndroidManifestMerger من قواعد Android.

القواعد الأصلية

القواعد المضمّنة في Bazel وتنفيذها في Java تظهر هذه القواعد في .bzl ملف كدوال في الوحدة الأصلية (مثل native.cc_library أو native.java_library). ويتم إنشاء القواعد التي يحددها المستخدم (غير المدمجة مع المحتوى) باستخدام Starlark.

قاعدة الإخراج

دليل خاص في workspace لتخزين ملفات إخراج Bazel يُستخدَم لفصل المُخرجات من العرض التدرّجي المصدر لـ workspace's. وتقع في جذر مستخدم المستخدم.

مجموعات النتائج

مجموعة من الملفات التي يُتوقع أن يتم إنشاؤها عندما ينتهي Bazel من إنشاء هدف. تضع القواعد مخرجاتها المعتادة في مجموعة "quot;الإخراج التلقائي" (على سبيل المثال، ملف .jar لـ java_library و.a و.so لـ cc_library الاستهدافات). مجموعة الإخراج التلقائية هي مجموعة الإخراج التي يتم إنشاء العناصر عند طلب هدف على سطر الأوامر. يمكن أن تحدّد القواعد المزيد من مجموعات النتائج المسماة التي يمكن تحديدها صراحةً في BUILD ملف (قاعدة filegroup) أو في سطر الأوامر (علامة --output_groups).

إخراج جذر المستخدم

دليل خاص بالمستخدم لتخزين نتائج Bazel' اسم الدليل مُشتق من اسم مستخدم نظام المستخدم. يؤدي هذا الإعداد إلى منع تعارضات ملفات المخرجات إذا كان هناك عدة مستخدمين ينشئون المشروع نفسه على النظام في الوقت نفسه. تحتوي على أدلة فرعية تُطابق مخرجات مساحات العمل الفردية، المعروفة أيضًا باسم قواعد المخرجات.

طرد

مجموعة targets (الأهداف) التي يحدّدها ملف BUILD. اسم الحزمة هو مسار ملف BUILD مقارنةً بجذر مساحة العمل. يمكن أن تحتوي الحزمة على حِزم فرعية أو أدلة فرعية تحتوي على ملفات BUILD، ما يؤدي إلى تكوين عرض هرمي للحزمة.

مجموعة حزمات

تمثّل target مجموعة من الحِزم. غالبًا ما تُستخدَم في قيم السمة visibility.

النظام الأساسي

نوع "الآلة&quot: يتم استخدامها في أحد الإصدارات. ويشمل ذلك تشغيل الآلات على "المنصّة" (المنصّة "host&host;quot;) وتصميم الأجهزة المُصمّمة بناءً على (المنصّات ""exec" والمنصات) والأهداف التي تمّ إنشاؤها للأجهزة (للمنصّة ""target;"").

موفِّر الخدمة

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

راجع أيضًا: مستندات موفّري الخدمة

طلب البحث (المفهوم)

عملية تحليل رسم بياني للإنشاء للتعرّف على الخصائص target وهياكل التبعية. يوفّر Bazel ثلاثة صيغ لطلب البحث: query وcquery وaquery.

طلب البحث (الأمر)

أداة طلب البحث التي تعمل على أساس عملية الإنشاء's بعد التحميل phase الرسم البياني المستهدف وهذا الأمر سريع نسبيًا، ولكن لا يمكن تحليل آثار select() أو إنشاء العلامات أو القطع الأثرية أو إنشاء إجراءات.

اطّلِع أيضًا على: طريقة تنفيذ طلب البحث ومرجع طلب البحث

ذاكرة التخزين المؤقت للمستودع

ذاكرة تخزين سحابي مشتركة للملفات التي يمكن تنزيلها من خلال Bazel للإصدارات، ويمكن مشاركتها في مساحات العمل تفعيل الإصدارات بلا اتصال بالإنترنت بعد عملية التنزيل الأولية. شائع الاستخدام لتخزين الملفات التي تم تنزيلها من خلال قواعد المستودع مثل http_archive وواجهات برمجة تطبيقات قواعد المستودع مثل repository_ctx.download. لا يتم تخزين الملفات مؤقتًا إلا إذا تم تحديد المجموع الاختباري SHA-256 لعملية التنزيل.

القابلية للتكرار

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

القاعدة

مخطّط لتحديد استهدافات القواعد في ملف BUILD، مثل cc_library من منظور مؤلف ملف BUILD، تتألف القاعدة من مجموعة من السمات ومنطق الصندوق الأسود. المنطق هو الذي يحدّد قاعدة القاعدة كيفية إنتاج أثريات الإخراج وتمرير المعلومات إلى أهداف القاعدة الأخرى. من منظور مؤلّفي .bzl، تشكّل القواعد الطريقة الأساسية لتوسيع نطاق Bazel لإتاحة لغات برمجة وبيئات جديدة.

يتم إنشاء قواعد لإنشاء قواعد استهداف في مرحلة التحميل. في مرحلة التحليل، تستهدف الأهداف المعلومات المتعلقة باعتمادياتها في البث المباشر على شكل مزوّدي خدمات الإنترنت، ونسجِّل الإجراءات التي توضّح كيفية إنشاء عناصر الناتج. يتم تنفيذ هذه الإجراءات على مرحلة التنفيذ.

يمكنك أيضًا الاطِّلاع على: مستندات القواعد

هدف القاعدة

الهدف هو مثال على قاعدة. يتعارض مع استهدافات الملفات ومجموعات الحِزم. يجب عدم الخلط بينها وبين القاعدة.

ملفات التشغيل

تبعيات وقت التشغيل لهدف تنفيذي. وفي الواقع، غالبًا ما تكون النتيجة القابلة للتنفيذ هي الناتج القابل للتنفيذ لقاعدة اختبارية، وأنّ ملفات التشغيل هي برامج اعتمادية لبيانات الاختبار وقت التشغيل. قبل استدعاء الملف التنفيذي (أثناء اختبار Bazel)، تُعدّ Bazel شجرة ملفات التشغيل جنبًا إلى جنب مع الاختبار القابل للتنفيذ وفقًا لبنية دليل المصدر المتّبعة لديها.

راجع أيضًا: مستندات Runfiles

وضع الحماية

أسلوب لعزل إجراء قيد التشغيل داخل جذر تنفيذ محدود ومؤقت، ما يساعد على ضمان عدم قراءة المدخلات غير المعلَنة أو كتابة مخرجات غير معلَنة. يحسّن وضع الحماية بشكل كبير السلامة، لكنه عادةً ما يتطلب تكلفة الأداء، ويتطلب الدعم من نظام التشغيل. وتعتمد تكلفة الأداء على النظام الأساسي. على نظام التشغيل Linux، لا يكون ذلك مهمًا، ولكن على نظام التشغيل macOS يمكن أن يجعل وضع الحماية غير قابل للاستخدام.

الإطار الأفقي

يُعد Skyframe إطار العمل الأساسي المتوازي والوظائفي والتزايدي للتقييم في Bazel.

الدمغ

ميزة لتضمين معلومات إضافية في قطع أثرية من تصميم Bazel على سبيل المثال، يمكن استخدام هذه البيانات للتحكم في المصدر ووقت الإنشاء ومعلومات أخرى حول مساحة العمل أو المعلومات المتعلقة بالبيئة لإصدارات الإصدارات. يمكنك تفعيل الميزة من خلال علامة --workspace_status_command والقواعد التي تتيح استخدام السمة "الطابع".

ستارلارك

لغة الإضافة لكتابة القواعد ووحدات الماكرو. مجموعة فرعية محدودة من Python (نحويًا أو نحويًا) تهدف إلى الضبط وتحسين الأداء تستخدم هذه الميزة امتداد .bzl file. تستخدم BUILD من الملفات إصدارًا أكثر تقييدًا من Starlark (مثل عدم توفّر تعريفات للدالات def)، والمعروفة سابقًا باسم Skylark.

يُرجى الاطِّلاع أيضًا على: مستندات لغة Starlark.

علامات بدء التشغيل

مجموعة العلامات المحدّدة بين bazel والأمر، على سبيل المثال، إصدار --host_jvm_debug من الميزتين. تعمل هذه العلامات على تعديل ضبط خادم Bazel، لذا يؤدي أي تعديل إلى علامات بدء التشغيل إلى إعادة تشغيل الخادم. علامات بدء التشغيل ليست خاصة بأي أمر.

الهدف

عنصر يتم تحديده في ملف BUILD ويتم تحديده من خلال تصنيف. تمثّل الأهداف الوحدات القابلة للإنشاء لمساحة العمل من منظور المستخدم النهائي.

ويُسمّى الهدف المُعلَن من خلال إنشاء قاعدة باسم قاعدة هدف. وفقًا للقاعدة، قد تكون هذه العناصر قابلة للتشغيل (مثل cc_binary) أو قابلة للاختبار (مثل cc_test). تعتمد استهدافات القواعد عادةً على الأهداف الأخرى من خلال سماتها (مثل deps)؛ وتشكّل هذه العناصر التابعة أساس الرسم البياني المستهدف.

وبالإضافة إلى أهداف القواعد، هناك أيضًا استهدافات للملفات ومجموعات حزمات. تتوافق استهدافات الملفات مع العناصر التي تتم الإشارة إليها ضمن ملف BUILD. في هذه الحالة الخاصة، يُعتبر دائمًا ملف BUILD في أي حزمة هدف ملف مصدر في تلك الحزمة.

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

الرسم البياني المستهدف

رسم بياني في الذاكرة يضم الأهداف وتبعياتها. يتم إنتاجها خلال مرحلة التحميل واستخدامها كإدخال في مرحلة التحليل.

النمط المستهدف

طريقة لتحديد مجموعة من الأهداف في سطر الأوامر. الأنماط الشائعة الاستخدام هي :all (جميع أهداف القواعد) و:* (جميع قواعد القاعدة + أهداف الملف) ... (الحزمة الحالية وجميع الحزم الفرعية بشكل متكرر). ويمكن استخدامها معًا، على سبيل المثال، تعني //...:* أن جميع قواعد القاعدة والملفات المستهدفة في جميع الحِزم بشكل متكرر من جذر مساحة العمل.

الفحوصات

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

سلسلة الأدوات

مجموعة من الأدوات لإنشاء مخرجات للغة وعادةً ما تتضمّن سلسلة الأدوات برامج التجميع و/أو الروابط و/أو الترجمة الفورية و/أو الروابط. ويمكن أن تختلف سلسلة الأدوات أيضًا حسب النظام الأساسي، بمعنى أن مكوّنات أداة التجميع في Unix قد تختلف حسب صيغة Windows، على الرغم من أن سلسلة الأدوات مخصّصة للغة نفسها. تُعرَف عملية اختيار سلسلة الأدوات المناسبة للنظام الأساسي باسم "حلّ سلسلة الأدوات".

الهدف من المستوى الأعلى

ويكون هدف الإصدار ذو المستوى الأعلى في حال طلبه على سطر الأوامر في Bazel. على سبيل المثال، إذا كان //:foo يعتمد على //:bar، وتم استدعاء bazel build //:foo، حينئذٍ يكون //:foo في المستوى الأعلى، في حين لا يكون //:bar على المستوى الأعلى، على الرغم من أنّ كلا الهدفَين ستحتاج إلى إنشاءهما. هناك اختلاف مهم بين الاستهدافات ذات المستوى الأعلى وغير المستوى الأعلى، وهو أن علامات الأوامر التي يتم إعدادها في سطر الأوامر في Bazel (أو من خلال .bazelrc) ستعمل على ضبط عملية الإعداد لأهداف المستوى الأعلى، ولكن قد يتم تعديلها من خلال انتقال للأهداف غير ذات المستوى الأعلى.

الانتقال إلى

تعيين حالة الضبط من قيمة إلى أخرى. تتيح هذه السياسة تفعيل targets في الرسم البياني للإصدار للحصول على عمليات ضبط مختلفة، حتى إذا تم إنشاء مثيل لها من القاعدة نفسها. من الشائع استخدام الانتقالات من خلال الانتقالات التقسيمية التي يتم فيها تشعُّب أجزاء معيّنة من الرسم البياني المستهدَف من خلال ضبط إعدادات مختلفة لكل مرحلة. على سبيل المثال، يمكن إنشاء حزمة APK من Android باستخدام برامج ثنائية مجمّعة من أجل ARM وx86 باستخدام عمليات انتقال مقسّمة في إصدار واحد.

يمكنك أيضًا الاطّلاع على: عمليات النقل التي يحددها المستخدم

العناصر الشجرية

عنصر يمثّل مجموعة من الملفات. بما أنّ هذه الملفات ليست عناصر أصلية، يجب أن تسجّل عملية مُنفَّذة العنصر بدلاً من ذلك، حيث يتم تسجيل العنصر الاصطناعي كإدخال أو مخرجات.

مستوى العرض

إحدى آليتَين لمنع الاعتماديات غير المرغوب فيها في نظام الإصدار: مستوى الرؤية المستهدف للتحكّم في ما إذا كان يمكن الاعتماد على target حسب الأهداف الأخرى، وتحميل حق الوصول للتحكّم في إمكانية تحميل ملف BUILD أو .bzl في ملف .bzl معيّن. بدون السياق، عادةً ما تشير العلامة ""impression"quot;إلى مستوى الرؤية المستهدف.

راجع أيضًا: مستندات إذن الوصول

مساحة العمل

دليل يحتوي على ملف WORKSPACE ورمز مصدر للبرنامج الذي تريد إنشاءه. ترتبط التصنيفات التي تبدأ بـ // بدليل مساحة العمل.

ملف WORKSPACE

لتعريف الدليل ليكون مساحة عمل ويمكن أن يكون الملف فارغًا، على الرغم من أنه يحتوي عادةً على بيانات المستودع الخارجية للحصول على اعتماديات إضافية من الشبكة أو نظام الملفات المحلي.