بازل (برنامج)
بازل ( / ˈ beɪ z əl / [ 3 ] ) هي أداة برمجية مجانية ومفتوحة المصدر تُستخدم لأتمتة بناء واختبار البرامج. [ 2 ]
على غرار أدوات البناء مثل Make و Apache Ant و Apache Maven ، [ 2 ] [ 4 ] يبني Bazel تطبيقات برمجية من شفرة المصدر باستخدام قواعد. تُنشأ القواعد والماكرو بلغة Starlark ، [ 5 ] وهي لهجة من لغة Python . [ 4 ] توجد قواعد مدمجة لبناء برامج مكتوبة بلغات Java و Kotlin و Scala و C و C++ و Go و Python و Rust و JavaScript و Objective-C ونصوص Bash . [ 4 ] [ 6 ] يستطيع Bazel إنتاج حزم تطبيقات برمجية مناسبة للنشر على نظامي التشغيل Android و iOS . [ 7 ]
تاريخ
في عام 2006، [ 8 ] بدأت جوجل بتطوير أداة بناء تُسمى Blaze . [ 9 ] وكان الدافع هو الحصول على نظام بناء يوفر السرعة والدقة في مستودع أحادي كبير . [ 10 ]
تم إنشاء بازل كنسخة مفتوحة المصدر من بليز، باستخدام قلب حروفها كاسم. [ 4 ] صدرت النسخة الأولى من بازل في مارس 2015 ودخلت مرحلة تجريبية في سبتمبر 2015. [ 6 ] صدرت النسخة 1.0 في أكتوبر 2019. [ 11 ]
الأساس المنطقي
وُصِفَ بازل بأنه "أحد أوائل أنظمة بناء السحابة المتاحة للعموم". وهو قادر على حفظ سجل الأوامر التي تم تنفيذها سابقًا ومشاركة النتائج بين عدة مستخدمين. [ 12 ] وللقيام بذلك، يتطلب بازل تحديد مدخلات ومخرجات أهداف البناء بشكل كامل.
لغة طائر القبرة
يُمكن توسيع بازل باستخدام لغة البرمجة ستارلارك. [ 13 ] ستارلارك لغة مضمنة، وبنيتها النحوية هي مجموعة فرعية من بنية بايثون . مع ذلك، فهي لا تُطبّق العديد من ميزات لغة بايثون، مثل إمكانية الوصول إلى عمليات الإدخال والإخراج للملفات، وذلك لتجنب الإضافات التي قد تُسبب آثارًا جانبية أو تُنتج مخرجات بناء غير معروفة لنظام البناء نفسه. قد تُؤدي هذه الآثار الجانبية إلى تحليل غير صحيح لمخطط تبعيات البناء.
اللغات
صُمم بازل كنظام بناء متعدد اللغات. وهو قادر على بناء برامج تجمع بين لغات برمجة متعددة ضمن نفس المستودع .
تُصمَّم العديد من أنظمة البناء الشائعة الاستخدام مع تفضيل لغة برمجة محددة. ومن أمثلة هذه الأنظمة Ant وMaven للغة Java، وLeiningen للغة Clojure ، وsbt للغة Scala ، وما إلى ذلك. في مستودع يحتوي على لغات متعددة، قد يكون من الصعب والمُشكِل الجمع بين أنظمة البناء المنفصلة وتحقيق مزايا سرعة البناء ودقته المذكورة أعلاه.
العلاقة بأدوات البناء الأخرى
أنظمة البناء الأكثر شبهاً بـ Bazel هي Pants، [ 14 ] وBuck ، [ 15 ] و Please، [ 16 ] ونظام البناء Brazil المستخدم داخلياً في Amazon . [ 17 ] يهدف كل من Pants وBuck إلى تحقيق أهداف تصميم تقنية مماثلة لـ Bazel، مع استلهام Pants من نظام البناء Blaze المستخدم داخلياً في Google.
اعتمدت كل من Bazel وPants وBuck وPlease برنامج Starlark كمحلل لملفات BUILD، وذلك وفقًا لصيغة ملفات BUILD الخاصة به. كما تم تطبيق أنظمة بناء مطورة بشكل مستقل ذات استخدامات مماثلة في تحليل مخططات التبعية بكفاءة وتتبع نواتج البناء تلقائيًا في أنظمة بناء مثل tup. [ 18 ]
صندوق الاختبار
يستخدم Bazel بيئة معزولة لخطوات التجميع. عند قيام Bazel بعملية تجميع منفصلة، فإنه يُنشئ مجلدًا جديدًا ويملأه بروابط رمزية إلى تبعيات الإدخال المحددة للقاعدة. بالنسبة للغات مثل C أو C++، يتطلب هذا من المستخدم تحديد التبعيات بشكل صريح، ويمنع تضمين ملف رأس يحمل اسمًا مشابهًا من مجلد تضمين آخر بشكل غير متوقع.
يؤدي هذا النهج المعزول إلى مشاكل في أدوات البناء الشائعة، مما يستلزم عددًا من الحلول البديلة لتجميع التعليمات البرمجية بشكل صحيح على مختلف البنى. على سبيل المثال، عند إجراء تجميع منفصل لبنيتي Mac/Darwin، يكتب المُجمِّع مسارات الإدخال في رموز SO وOSO في ملف Mach-O الثنائي، والتي يمكن رؤيتها باستخدام أمر مثل ` nm -a mybinary | grep SO. هذه المسارات ضرورية للعثور على الرموز أثناء تصحيح الأخطاء. ونتيجة لذلك، يجب على عمليات البناء في Bazel تصحيح الكائنات المُجمَّعة لاحقًا، ومحاولة تصحيح المشاكل المتعلقة بالمسارات التي نشأت عن إنشاء البيئة المعزولة باستخدام علامات مثل ` -fdebug-prefix-map.` و`.` -oso_prefix، وقد أصبحت الأخيرة متاحة في Xcode 11.0 . يجب إجراء معالجة مماثلة في مراحل الربط، حيث يتم إعادة كتابة قيم `rpath` في مكتبات الكائنات المشتركة باستخدام أمر مثل ` install_name_tool. [ 19 ]
الشعار

منذ إطلاق بازل لأول مرة، كان الشعار عبارة عن حرف "b" أخضر مُصمّم على شكل ساق نبات الريحان بورقتين. في 5 يوليو 2017، أعلنت مدونة بازل عن شعار جديد [ 20 ] يتألف من ثلاثة مكعبات بناء خضراء مُرتبة على شكل قلب.
التبني
تُستخدم منصة Bazel على نطاق واسع من قبل الشركات. [ 21 ] ومن أبرز مستخدميها: BMW [ 22 ] ، وGoogle ، و SpaceX [ 23 ] ، وStripe [ 24 ] ، وTinder [ 25 ] ، و Uber [ 26 ] .
انظر أيضاً
مراجع
- ↑ "الإصدار 9.2.0" . 13 يوليو 2026. تم الاطلاع عليه في 14 يوليو 2026 .
- 1 2 3 يغولالب، سردار (11 سبتمبر 2015). "جوجل تُطلق أداة برمجية مفتوحة المصدر وقابلة للتطوير، بغض النظر عن لغة البرمجة" . إنفوورلد . مؤرشف من الأصل في 25 أكتوبر 2017. تم الاطلاع عليه في 25 يونيو 2016 .
- ↑ "الأسئلة الشائعة - بازل" . bazel.build . مؤرشف من الأصل بتاريخ 2016-11-06.
- 1 2 3 4 بولتون، ديفيد (27 أبريل 2015). "بازل، نظام بناء جوجل مفتوح المصدر - ذا نيو ستاك" . thenewstack.io . ذا نيو ستاك. مؤرشف من الأصل في 24 أكتوبر 2017. تم الاطلاع عليه في 25 يونيو 2016 .
- ↑ "Starlark - Bazel" . blog.bazel.build . تم الاطلاع عليه بتاريخ 18-10-2018 .
- 1 2 داوز، رايان (10 سبتمبر 2015). "أداة بناء البرمجيات بازل من جوجل تدخل مرحلة تجريبية" . www.developer-tech.com . ديفيلوبر تك. مؤرشف من الأصل في 23 أكتوبر 2017. تم الاطلاع عليه في 25 يونيو 2016 .
- ↑ "الأسئلة الشائعة - بازل" . bazel.build . تم الاطلاع عليه بتاريخ 25 يونيو 2016 .
- ↑ فيرمولين، ستيف (21 نوفمبر 2023). "بازل، من بليز إلى باك2 - تاريخ موجز لأنظمة بناء المستودعات الأحادية الحديثة" .
- ↑ باير، بيتسي؛ جونز، كريس؛ بيتوف، جينيفر؛ مورفي، نيال ريتشارد (23 مارس 2016). هندسة موثوقية الموقع: كيف تدير جوجل أنظمة الإنتاج . دار نشر أورايلي ميديا، ص 90. ISBN 9781491951187تم الاطلاع عليه بتاريخ 25 يونيو 2016 .
- ↑ وينترز، تيتوس؛ مانشريك، توم؛ رايت، هايروم. هندسة البرمجيات في جوجل . أورايلي. ص 372.
- ↑ "Bazel 1.0" . blog.bazel.build . تم الاطلاع عليه بتاريخ 29-10-2023 .
- ↑ موخوف، أندريه وميتشل، نيل وبيتون جونز، سيمون (2018). "بناء الأنظمة حسب الطلب" . وقائع مؤتمر ACM حول لغات البرمجة . 2 (ICFP): 1-29 . doi : 10.1145/3236774 .
{{cite journal}}: صيانة CS1: أسماء متعددة: قائمة المؤلفين ( رابط ) - ↑ "لغة ستارلارك" . bazel.build .
- ↑ "Pants: نظام بناء سريع وقابل للتطوير" .
- ↑ "باك: أداة بناء عالية الأداء" .
- ↑ يرجى الاطلاع على الأسئلة الشائعة
- ↑ نظام بناء أمازون
- ↑ شال، مايك (2009). "قواعد وخوارزميات نظام البناء" (PDF) .
- ↑ "tools/cpp/osx_cc_wrapper.sh" . جيت هاب. 5 فبراير 2022.
- ↑ جيانيني، ستيرين (5 يوليو 2017). "شعار جديد وصفحة رئيسية جديدة لـ Bazel" .
- ↑ "من يستخدم بازل" .
- ↑ "تغيير المسار في التكامل المستمر: استراتيجيات بي إم دبليو لعمليات البناء عالية السرعة" . 31 مارس 2025.
- ↑ "بناء أنظمة في الوقت الحقيقي باستخدام بازل مع سبيس إكس" . 11 ديسمبر 2017 - عبر يوتيوب .
- ↑ "بناء سريع، بناء آمن. اختر اثنين" . 4 مايو 2022.
- ↑ تيندر (13 يونيو 2022). "نقل مجموعة أدوات بازل هيرميتيك وأدواتها" . ميديوم .
- ↑ "بناء مستودع تطبيقات أوبر الموحد باستخدام بازل | مدونة أوبر" .
روابط خارجية
- أتمتة البناء
- أدوات التجميع
- برنامج جوجل
- برنامج يستخدم ترخيص أباتشي
