अक्सर पूछे जाने वाले सवाल

अगर आपका कोई सवाल है या आपको मदद चाहिए, तो सहायता पाना देखें.

Bazel क्या है?

Bazel एक ऐसा टूल है जिसकी मदद से, सॉफ़्टवेयर अपने-आप बन जाते हैं और उनकी जांच होती है. इस्तेमाल किए जा सकने वाले बिल्ड टास्क में, एक्ज़ीक्यूटेबल प्रोग्राम और लाइब्रेरी बनाने के लिए, कंपाइलर और लिंकर चलाना शामिल है. साथ ही, Android, iOS, और अन्य टारगेट एनवायरमेंट के लिए, डिप्लॉय किए जा सकने वाले पैकेज असेंबल करना. Bazel, दूसरे टूल की तरह ही है. जैसे, Make, Ant, Gradle, Buck, Pants, और Maven.

Bazel की क्या खासियत है?

Bazel को उसी तरह से डिज़ाइन किया गया था जिस तरह Google में सॉफ़्टवेयर डेवलप किया जाता है. इसमें ये सुविधाएं होती हैं:

  • कई भाषाओं में काम करने की सुविधा: Bazel कई भाषाओं में काम करता है. इसे आर्बिट्रेरी प्रोग्रामिंग भाषाओं के लिए बढ़ाया जा सकता है.
  • हाई-लेवल बिल्ड लैंग्वेज: प्रोजेक्ट की जानकारी BUILD भाषा में दी जाती है. यह एक छोटा टेक्स्ट फ़ॉर्मैट है, जो एक प्रोजेक्ट के बारे में एक-दूसरे से जुड़ी हुई छोटी लाइब्रेरी, बाइनरी, और टेस्ट के सेट के तौर पर बताता है. इसके उलट, 'बनाएं' जैसे टूल में आपको अलग-अलग फ़ाइलों और कंपाइलर के शुरू होने की जानकारी देनी होती है.
  • मल्टी-प्लैटफ़ॉर्म पर काम करने की सुविधा: एक ही टूल और BUILD फ़ाइलों का इस्तेमाल, अलग-अलग आर्किटेक्चर और यहां तक कि अलग-अलग प्लैटफ़ॉर्म के लिए सॉफ़्टवेयर बनाने में किया जा सकता है. Google में, हम Bazel का इस्तेमाल, अपने डेटा सेंटर के सिस्टम पर चल रहे सर्वर ऐप्लिकेशन से लेकर, मोबाइल फ़ोन पर चल रहे क्लाइंट ऐप्लिकेशन तक, सब कुछ बनाने के लिए करते हैं.
  • रीप्रॉड्यूसिबिलिटी: BUILD फ़ाइलों में, हर लाइब्रेरी, टेस्ट, और बाइनरी को पूरी तरह से सीधे तौर पर डिपेंडेंसी तय करनी होगी. Bazel, डिपेंडेंसी की इस जानकारी का इस्तेमाल यह जानने के लिए करता है कि किसी सोर्स फ़ाइल में बदलाव करते समय, क्या फिर से बनाया जाना चाहिए और कौनसे टास्क साथ-साथ चल सकते हैं. इसका मतलब है कि सभी बिल्ड इंक्रीमेंटल (बढ़ने वाले) होते हैं और हमेशा एक जैसे नतीजे देते हैं.
  • बढ़ाए जाने लायक: Bazel बड़े बिल्ड को संभाल सकता है; Google में, सर्वर बाइनरी के लिए 100k सोर्स फ़ाइलें होना आम बात है और जहां कोई फ़ाइल नहीं बदली गई थी, वहां करीब ~200 मिलीसेकंड लग जाते हैं.

Google उसका इस्तेमाल क्यों नहीं करता...?

  • बनाएं, निंजा: ये टूल इस बात का सटीक कंट्रोल देते हैं कि फ़ाइलें बनाने के लिए किन निर्देशों का इस्तेमाल किया जाए. हालांकि, सही नियमों को लिखने की ज़िम्मेदारी उपयोगकर्ता की होती है.
    • उपयोगकर्ता, Bazel से बड़े लेवल पर इंटरैक्ट करते हैं. उदाहरण के लिए, Bazel में “Java टेस्ट”, “C++ बाइनरी”, और “टारगेट प्लैटफ़ॉर्म” और “होस्ट प्लैटफ़ॉर्म” जैसी धारणाएं पहले से मौजूद हैं. इन नियमों को पूरी तरह से पक्का करने के लिए लड़ाई की जांच की गई है.
  • चींटी और मेवन: चींटी और मेवन का मुख्य काम Java है, जबकि Bazel कई भाषाओं का इस्तेमाल करता है. Bazel, कोड बेस को फिर से इस्तेमाल की जा सकने वाली छोटी यूनिट में अलग-अलग ग्रुप में बांटने को बढ़ावा देता है. साथ ही, वे सिर्फ़ उन यूनिट को फिर से बना सकते हैं जिन्हें फिर से बनाने की ज़रूरत है. इससे, बड़े कोड बेस के साथ काम करते समय डेवलपमेंट की रफ़्तार बढ़ती है.
  • Gradle: Bazel की कॉन्फ़िगरेशन फ़ाइलें, Gradle की तुलना में ज़्यादा स्ट्रक्चर्ड हैं, यह Bazel को यह समझने में मदद करती है कि हर कार्रवाई क्या करती है. इसकी मदद से, कई बार साथ-साथ काम भी किया जा सकता है और बेहतर तरीके से दोबारा पहचाना जा सकता है.
  • पैंट, बक: दोनों टूल को भूतपूर्व Googlers और Twitter पर Square Square, और Facebook पर क्रमश: भूतपूर्व Googlers ने बनाया और विकसित किया था. इन सुविधाओं को Bazel की तरह बनाया गया है. हालांकि, उनके फ़ीचर सेट अलग हैं. इसलिए, वे हमारे लिए बेहतर विकल्प नहीं हैं.

Bazel कहां से आया?

Bazel, टूल का एक फ़्लेवर है. Google इस टूल का इस्तेमाल, अपने सर्वर सॉफ़्टवेयर को अंदरूनी तौर पर बनाने के लिए करता है. इसने हमारे सर्वर से कनेक्ट करने वाले मोबाइल ऐप्लिकेशन (iOS, Android) जैसे अन्य सॉफ़्टवेयर भी बनाने के लिए विस्तार किया है.

क्या आपने अपने अंदरूनी टूल को ओपन-सोर्स के तौर पर दोबारा लिखा है? क्या यह कोई फ़ोर्क है?

Bazel अपने ज़्यादातर कोड, इंटरनल टूल के साथ शेयर करता है. साथ ही, इसके नियमों का इस्तेमाल हर दिन लाखों बिल्ड के लिए किया जाता है.

Google ने Bazel क्यों बनाया?

बहुत समय पहले, Google ने बड़ी, जनरेट की गई मेकफ़ाइल का इस्तेमाल करके अपना सॉफ़्टवेयर बनाया था. इनकी वजह से, ऐप्लिकेशन बनाने की प्रोसेस धीमी और भरोसेमंद नहीं थी. इससे हमारे डेवलपर की प्रोडक्टिविटी पर असर पड़ा. साथ ही, कंपनी के काम करने के तरीके पर भी असर पड़ा. Bazel इन समस्याओं को हल करने का एक तरीका था.

क्या Bazel को बिल्ड क्लस्टर की ज़रूरत होती है?

Bazel डिफ़ॉल्ट रूप से, स्थानीय तौर पर बिल्ड ऑपरेशन चलाता है. हालांकि, ज़्यादा तेज़ बिल्ड और टेस्ट के लिए Bazel, बिल्ड क्लस्टर से भी कनेक्ट हो सकता है. ज़्यादा जानकारी के लिए, रिमोट तरीके से एक्ज़ीक्यूशन और कैश मेमोरी और रिमोट कैशिंग के बारे में हमारे दस्तावेज़ देखें.

Google की डेवलपमेंट प्रोसेस कैसे काम करती है?

अपने सर्वर कोड बेस के लिए, हम इस डेवलपमेंट वर्कफ़्लो का इस्तेमाल करते हैं:

  • हमारे सभी सर्वर कोड, एक ही जगह पर उपलब्ध वर्शन कंट्रोल सिस्टम में मौजूद हैं.
  • हर कोई Bazel के साथ अपना सॉफ़्टवेयर बनाता है.
  • अलग-अलग टीमें, सोर्स ट्री के अलग-अलग हिस्सों की मालिकाना हक रखती हैं और अपने कॉम्पोनेंट BUILD टारगेट के तौर पर उपलब्ध कराती हैं.
  • ब्रांचिंग का इस्तेमाल मुख्य रूप से रिलीज़ मैनेज करने के लिए किया जाता है. इसलिए, सभी लोग हेड रिविज़न में अपने सॉफ़्टवेयर डेवलप करते हैं.

Bazel इस दर्शन की आधारशिला है: Bazel के लिए सभी डिपेंडेंसी के बारे में पूरी जानकारी देना ज़रूरी है. इसलिए, हम यह अनुमान लगा सकते हैं कि कौनसे प्रोग्राम और टेस्ट पर बदलाव होने का असर पड़ेगा. साथ ही, डेटा सबमिट करने से पहले उसकी जांच कर सकते हैं.

Google की डेवलपमेंट प्रोसेस के बारे में ज़्यादा जानकारी, यूज़र टूल ब्लॉग पर मिल सकती है.

तुमने Bazel क्यों खोला?

सॉफ़्टवेयर बनाना मज़ेदार और आसान होना चाहिए. धीरे-धीरे और उम्मीद न किए जा सकने वाले बिल्ड, प्रोग्रामिंग का ज़्यादा आनंद लेते हैं.

मुझे Bazel का इस्तेमाल क्यों करना चाहिए?

  • Bazel आपको तेज़ी से बिल्ड समय दे सकता है, क्योंकि यह सिर्फ़ उन फ़ाइलों को फिर से कंपाइल कर सकता है जिन्हें फिर से कंपाइल करना होता है. इसी तरह, यह फिर से चलने वाले उन टेस्ट को छोड़ सकता है जिनके बारे में उसे पता है कि कोई बदलाव नहीं हुआ है.
  • Bazel से नतीजे मिलते हैं. इससे इंक्रीमेंटल और क्लीन बिल्ड, लैपटॉप और सीआई सिस्टम वगैरह के बीच का अंतर खत्म हो जाता है.
  • Bazel, एक ही फ़ाइल फ़ोल्डर के एक ही टूल की मदद से, अलग-अलग क्लाइंट और सर्वर ऐप्लिकेशन बना सकता है. उदाहरण के लिए, क्लाइंट/सर्वर प्रोटोकॉल को एक ही बार में बदला जा सकता है. साथ ही, यह टेस्ट किया जा सकता है कि अपडेट किया गया मोबाइल ऐप्लिकेशन, अपडेट किए गए सर्वर के साथ काम करता है या नहीं. साथ ही, यह जांच करें कि अपडेट किया गया मोबाइल ऐप्लिकेशन, एक ही टूल के साथ काम करता है या नहीं और Bazel के ऊपर बताए गए सभी फ़ायदे फिर से ले सकते हैं.

क्या मुझे उदाहरण दिख सकते हैं?

हां; एक आसान उदाहरण देखें या ज़्यादा जटिल उदाहरण के लिए, Bazel सोर्स कोड पढ़ें.

बेज़ेल सबसे अच्छा क्या है?

Bazel को ये प्रोजेक्ट बनाने और उसकी जांच करने में महारत हासिल है:

  • बड़े कोडबेस वाले प्रोजेक्ट
  • (एक से ज़्यादा) कंपाइल की गई भाषाओं में लिखे गए प्रोजेक्ट
  • ऐसे प्रोजेक्ट जो कई प्लैटफ़ॉर्म पर डिप्लॉय किए जाते हैं
  • ऐसे प्रोजेक्ट जिनमें बहुत से टेस्ट होते हैं

मैं Bazel कहां चला सकता हूं?

Bazel, Linux, macOS (OS X), और Windows पर काम करता है.

जब तक प्लैटफ़ॉर्म के लिए JDK उपलब्ध है, तब तक अन्य UNIX प्लैटफ़ॉर्म पर पोर्ट करना आसान होना चाहिए.

मुझे Bazel का इस्तेमाल किन चीज़ों के लिए नहीं करना चाहिए?

  • Bazel, कैश मेमोरी को बेहतर बनाने की कोशिश करता है. इसका मतलब है कि यह उन बिल्ड ऑपरेशन के लिए अच्छा नहीं है जिनके आउटपुट को कैश मेमोरी में सेव नहीं किया जाना चाहिए. उदाहरण के लिए, Bazel से इन चरणों को नहीं चलाना चाहिए:
    • कंपाइलेशन ऐसा चरण जो इंटरनेट से डेटा फ़ेच करता है.
    • जांच का ऐसा चरण जो आपकी साइट के QA इंस्टेंस से कनेक्ट होता है.
    • डिप्लॉयमेंट चरण, जो आपकी साइट के क्लाउड कॉन्फ़िगरेशन को बदल देता है.
  • अगर आपके बिल्ड में कुछ लंबे, क्रम से चलने वाले चरण शामिल हैं, तो हो सकता है कि Bazel ज़्यादा मदद न कर पाए. लंबे चरणों को छोटे और अलग-अलग टारगेट में बांटकर, आपको तेज़ी से काम करने की सुविधा मिलती है. इन लक्ष्यों को Bazel, साथ-साथ चला सकता है.

Bazel की सुविधाएं कितनी बेहतर हैं?

Google में, मुख्य सुविधाओं (C++, Java, और शेल के नियम) का काफ़ी इस्तेमाल किया जाता है. इसलिए, इन्हें अच्छी तरह से टेस्ट किया गया है और इनमें बहुत कम बदलाव हुए हैं. इसी तरह, हम रिग्रेशन का पता लगाने के लिए, हर दिन लाखों टारगेट में Bazel के नए वर्शन टेस्ट करते हैं. साथ ही, हम हर महीने में कई बार नए वर्शन रिलीज़ करते हैं.

कम शब्दों में कहें, तो एक्सपेरिमेंट के तौर पर मार्क की गई सुविधाओं को छोड़कर, Bazel को सिर्फ़ काम करना चाहिए. जो नियम प्रयोग नहीं किए जा रहे हैं उनमें किए गए बदलाव, पुराने सिस्टम के साथ काम करेंगे. सुविधा से जुड़ी सहायता की स्थितियों के बारे में ज़्यादा जानकारी, हमारे सहायता दस्तावेज़ में मिल सकती है.

बाइनरी के तौर पर Bazel कितना स्थिर है?

Google में हम यह पक्का करते हैं कि Bazel क्रैश होने की संभावना बहुत कम हो. यह जानकारी हमारे ओपन सोर्स कोडबेस पर भी लागू होनी चाहिए.

मैं Bazel का इस्तेमाल कैसे शुरू करूं?

शुरू करना देखें.

क्या Docker रीप्रॉड्यूसिबिलिटी की समस्याओं को हल नहीं करता है?

Docker की मदद से, तय ओएस रिलीज़ के साथ आसानी से सैंडबॉक्स बनाए जा सकते हैं. उदाहरण के लिए, Ubuntu 12.04, Fedora 21. यह सिस्टम के एनवायरमेंट के लिए रीप्रॉड्यूसिबिलिटी की समस्या को हल करता है. इसका मतलब है कि “मुझे /usr/bin/c++ के किस वर्शन की ज़रूरत है?”

सोर्स कोड में हुए बदलावों के मामले में, Docker इस रीप्रॉड्यूसिबिलिटी के बारे में नहीं बताता है. Docker कंटेनर के अंदर, ठीक से लिखे गए Makefile के साथ Create चलाने पर, अब भी गलत नतीजे मिल सकते हैं.

Google में हम स्रोत कंट्रोल में टूल की जांच करके, यह पता लगाते हैं कि सॉफ़्टवेयर किस तरह से दोबारा बनाया जा सकता है. इस तरह, हम बेस लाइब्रेरी में किए गए बदलावों ("जैसे कि chrome, .

क्या Docker पर डिप्लॉयमेंट के लिए बाइनरी बनाई जा सकती हैं?

Bazel की मदद से, C/C++ में स्टैंडअलोन, स्टैटिक रूप से लिंक की गई बाइनरी, और Java के लिए अपने-आप पूरी जानकारी वाली जार फ़ाइलें बनाई जा सकती हैं. ये सामान्य UNIX सिस्टम की कुछ ही डिपेंडेंसी के साथ काम करते हैं. इसलिए, इन्हें Docker कंटेनर में इंस्टॉल करना आसान होना चाहिए.

Bazel में ज़्यादा जटिल प्रोग्राम बनाने के तरीके बताए गए हैं. उदाहरण के लिए, ऐसा Java प्रोग्राम जो डेटा फ़ाइलों का एक सेट इस्तेमाल करता है या किसी अन्य प्रोग्राम को सबप्रोसेस के तौर पर चलाता है. इस तरह के एनवायरमेंट को स्टैंडअलोन आर्काइव के तौर पर पैकेज किया जा सकता है, ताकि उन्हें अलग-अलग सिस्टम पर डिप्लॉय किया जा सके. इनमें Docker इमेज भी शामिल हैं.

क्या Bazel की मदद से Docker इमेज बनाई जा सकती हैं?

हां, हमारे Docker नियमों का इस्तेमाल करके, दोबारा बनाई जा सकने वाली Docker इमेज बनाई जा सकती हैं.

क्या Bazel मेरे बिल्ड को अपने आप फिर से बनाने लायक बना देगा?

हां, यह मानते हुए कि Java और C++ बाइनरी के लिए, आपने टूलचेन को नहीं बदला है. अगर आपने ऐसे तरीके बनाए हैं जिनमें पसंद के मुताबिक बनाई गई रेसिपी शामिल हैं (उदाहरण के लिए, किसी नियम के अंदर शेल स्क्रिप्ट के ज़रिए बाइनरी लागू करना), तो आपको कुछ ज़्यादा सावधानी बरतनी होगी:

  • उन डिपेंडेंसी का इस्तेमाल न करें जिनका एलान नहीं किया गया हो. सैंडबॉक्स की गई एक्ज़ीक्यूशन (–spawn_strategy=sandbox, सिर्फ़ Linux पर) तय नहीं की गई डिपेंडेंसी ढूंढने में मदद कर सकती है.
  • जनरेट की गई फ़ाइलों में टाइमस्टैंप और यूज़र आईडी सेव न करें. ZIP फ़ाइलों और दूसरे आर्काइव में इसके होने का खतरा खास तौर पर होता है.
  • नेटवर्क से कनेक्ट करने से बचें. सैंडबॉक्स की मदद से, एक्ज़ीक्यूशन की सुविधा इस काम में भी मदद कर सकती है.
  • रैंडम नंबरों का इस्तेमाल करने वाली प्रोसेस से बचें. खास तौर पर, डिक्शनरी ट्रैवर्सल को कई प्रोग्रामिंग भाषाओं में किसी भी क्रम में लगा दिया जाता है.

क्या आपके पास बाइनरी रिलीज़ हैं?

हां, आपको नई रिलीज़ बाइनरी मिल सकती हैं और हमारी रिलीज़ की नीति देखी जा सकती है

मैं Eclipse/IntelliJ/XCode का इस्तेमाल करता/करती हूं. Bazel, IDEs के साथ कैसे इंटरऑपरेट करता है?

IntelliJ के लिए, Bezel प्लगिन के साथ IntelliJ देखें.

XCode के लिए, Tulsi को देखें.

Eclipse के लिए, E4B प्लगिन देखें.

अन्य आईडीई के लिए, ये प्लग इन कैसे काम करते हैं, इस बारे में ब्लॉग पोस्ट देखें.

मैं Jenkins/CircleCI/TravisCI का इस्तेमाल करता/करती हूं. Bazel, सीआई सिस्टम के साथ कैसे इंटरऑपरेट करता है?

अगर बिल्ड या टेस्ट शुरू करने की प्रक्रिया काम नहीं करती है, तो Bazel एक नॉन-ज़ीरो एग्ज़िट कोड दिखाता है. यह बेसिक सीआई इंटिग्रेशन के लिए काफ़ी होना चाहिए. ऐसा इसलिए, क्योंकि Bazel को ठीक से काम करने के लिए क्लीन बिल्ड की ज़रूरत नहीं होती. इसलिए, बिल्ड/टेस्ट रन शुरू करने से पहले सीआई सिस्टम को साफ़ करने के लिए कॉन्फ़िगर नहीं किया जाना चाहिए.

एग्ज़िट कोड के बारे में ज़्यादा जानकारी इस्तेमाल के लिए गाइड में दी गई है.

आने वाले समय में, Bazel में किस तरह की सुविधाएं मिलेंगी?

हमारे रोडमैप देखें.

क्या INSERT LANGUAGE HERE प्रोजेक्ट के लिए Bazel का इस्तेमाल किया जा सकता है?

Bazel को खरीदा जा सकता है. कोई भी व्यक्ति नई भाषाओं के लिए सहायता जोड़ सकता है. यह सुविधा कई भाषाओं में उपलब्ध है: सुझावों की सूची के लिए एन्साइक्लोपीडिया बनाएं और पूरी जानकारी के लिए awesomebazel.com देखें.

अगर आपको एक्सटेंशन डेवलप करने हैं या उनके काम करने का तरीका जानना है, तो Bzel का विस्तार करने से जुड़े दस्तावेज़ देखें.

क्या Bazel कोड बेस में योगदान दिया जा सकता है?

हमारे योगदान से जुड़े दिशा-निर्देश देखें.

सभी डेवलपमेंट सबके लिए उपलब्ध क्यों नहीं होते?

हमें अब भी Bazel के सार्वजनिक कोड और अपने इंटरनल एक्सटेंशन के बीच के इंटरफ़ेस को बार-बार दोहराना होगा. इससे खुली जगह में ज़्यादा डेवलपमेंट करना मुश्किल हो जाता है.

क्या आपने Bazel को ओपन सोर्स करने का काम कर लिया है?

ओपन सोर्सिंग Bazel पर काम चल रहा है. खास तौर पर, हम ओपन सोर्सिंग पर अब भी काम कर रहे हैं:

  • हमारे कई यूनिट और इंटिग्रेशन टेस्ट (इससे पैच का योगदान करना आसान हो जाना चाहिए).
  • पूरा IDE इंटिग्रेशन.

कोड के अलावा, हम चाहते हैं कि सभी कोड समीक्षाएं, गड़बड़ियों को ट्रैक करने, और डिज़ाइन से जुड़े फ़ैसले सार्वजनिक तौर पर लागू हों. साथ ही, इसमें Bazel समुदाय भी शामिल होगा. हम अभी उपलब्ध नहीं हैं, इसलिए कुछ बदलाव बिना किसी साफ़ जानकारी के सिर्फ़ Bazel के डेटा स्टोर करने की जगह में दिखेंगे. पारदर्शिता की कमी के बावजूद, हम बाहरी डेवलपर की मदद करना चाहते हैं और साथ मिलकर काम करना चाहते हैं. इसलिए, हम कोड का इस्तेमाल करने की अनुमति दे रहे हैं. हालांकि, कुछ डेवलपमेंट अब भी Google के अंदर ही हो रहा है. हम ओपन मॉडल को अपनाने के दौरान अगर कुछ भी अस्पष्ट या अनुचित लगता है, तो कृपया हमें बताएं.

क्या Bazel के कुछ हिस्से हैं जो कभी भी ओपन सोर्स नहीं होंगे?

हां, कुछ कोड बेस या तो Google की खास तकनीक के साथ इंटिग्रेट होते हैं या हमें इसे हटाने का बहाना मिल रहा था (या फिर दोनों का मिला-जुला रूप मौजूद है). कोड बेस के ये हिस्से GitHub पर उपलब्ध नहीं हैं और हो सकता है कि कभी भी उपलब्ध न हों.

मैं टीम से कैसे संपर्क करूं?

हमसे bazel-discuss@googlegroups.com पर संपर्क किया जा सकता है.

मैं बग की रिपोर्ट कहां करूं?

GitHub पर कोई समस्या खोलें.

कोड बेस में "ब्लेज़" शब्द में क्या गड़बड़ी है?

यह टूल का अंदरूनी नाम है. कृपया Bazel को Bazel के तौर पर देखें.

Google के अन्य प्रोजेक्ट (Android, Chrome) दूसरे बिल्ड टूल का इस्तेमाल क्यों करते हैं?

पहली (ऐल्फ़ा) रिलीज़ तक, Bazel बाहरी रूप से उपलब्ध नहीं था. इसलिए, Chromium और Android जैसे ओपन सोर्स प्रोजेक्ट उसका इस्तेमाल नहीं कर सके. इसके अलावा, Windows के लिए समर्थन नहीं होने की वजह से Chrome जैसे Windows ऐप्लिकेशन बनाने में समस्या हुई. प्रोजेक्ट मैच्योर हो गया है और ज़्यादा स्थिर हो गया है. इसलिए, Android ओपन सोर्स प्रोजेक्ट को Bazel पर माइग्रेट किया जा रहा है.

“Bazel” को सही तरीक़े से कैसे बोलते हैं?

बिलकुल वैसे ही जैसे अमेरिका की अंग्रेज़ी में “बेसिल” (हर्ब) है: “BAY-zel”. इसे “hazel” के साथ गाया जाता है. आईपीए: /ˈbeɪzˌəl/