अगर आपका कोई सवाल है या आपको मदद चाहिए, तो सहायता पाना लेख पढ़ें.
Bazel क्या है?
Bazel एक ऐसा टूल है जो सॉफ़्टवेयर के बिल्ड और टेस्ट को ऑटोमेट करता है. काम करने वाले बिल्ड टास्क में, चलाए जा सकने वाले प्रोग्राम और लाइब्रेरी बनाने के लिए कंपाइलर और लिंकर चलाना शामिल है. साथ ही, Android, iOS, और टारगेट किए गए अन्य एनवायरमेंट के लिए, डिप्लॉय किए जा सकने वाले पैकेज को इकट्ठा करना भी शामिल है. Bazel, Make, Ant, Gradle, Buck, Pants, और Maven जैसे अन्य टूल से मिलता-जुलता है.
Bazel की खास बातें क्या हैं?
Bazel को Google में सॉफ़्टवेयर बनाने के तरीके के हिसाब से डिज़ाइन किया गया था. इसमें ये सुविधाएं शामिल हैं:
- कई भाषाओं में उपलब्ध: Bazel कई भाषाओं में काम करता है. साथ ही, इसे किसी भी प्रोग्रामिंग भाषा के साथ इस्तेमाल किया जा सकता है.
- हाई-लेवल बिल्ड लैंग्वेज: प्रोजेक्ट की जानकारी
BUILD
भाषा में दी जाती है. यह एक छोटा टेक्स्ट फ़ॉर्मैट है, जो किसी प्रोजेक्ट को एक-दूसरे से जुड़ी छोटी लाइब्रेरी, बाइनरी, और टेस्ट के सेट के तौर पर दिखाता है. इसके उलट, Make जैसे टूल का इस्तेमाल करने के लिए, आपको अलग-अलग फ़ाइलों और कंपाइलर के इस्तेमाल के बारे में बताना होगा. - कई प्लैटफ़ॉर्म के लिए काम करना: एक ही टूल और एक ही
BUILD
फ़ाइलों का इस्तेमाल, अलग-अलग आर्किटेक्चर और अलग-अलग प्लैटफ़ॉर्म के लिए सॉफ़्टवेयर बनाने के लिए किया जा सकता है. Google में, हम Bazel का इस्तेमाल करके कई तरह के ऐप्लिकेशन बनाते हैं. जैसे, हमारे डेटा सेंटर के सिस्टम पर चलने वाले सर्वर ऐप्लिकेशन से लेकर, मोबाइल फ़ोन पर चलने वाले क्लाइंट ऐप्लिकेशन तक. - फिर से बनाई जा सकने वाली:
BUILD
फ़ाइलों में, हर लाइब्रेरी, टेस्ट, और बाइनरी को अपनी डायरेक्ट डिपेंडेंसी के बारे में पूरी जानकारी देनी होगी. Bazel, इस डिपेंडेंसी की जानकारी का इस्तेमाल करके यह पता लगाता है कि सोर्स फ़ाइल में बदलाव करने पर क्या फिर से बनाया जाना चाहिए और कौनसे टास्क एक साथ चलाए जा सकते हैं. इसका मतलब है कि सभी बिल्ड इंक्रीमेंटल होते हैं और हमेशा एक ही नतीजा देते हैं. - बड़े पैमाने पर इस्तेमाल किया जा सकता है: Bazel, बड़े बिल्ड को हैंडल कर सकता है. Google में, सर्वर बाइनरी में 1,00,000 सोर्स फ़ाइलें होना आम बात है. साथ ही, जिन बिल्ड में किसी फ़ाइल में बदलाव नहीं किया गया है उन्हें पूरा होने में करीब 200 मिलीसेकंड लगते हैं.
Google,...? का इस्तेमाल क्यों नहीं करता?
- Make, Ninja: इन टूल की मदद से, यह कंट्रोल किया जा सकता है कि फ़ाइलें बनाने के लिए कौनसे निर्देश इस्तेमाल किए जाएं. हालांकि, सही नियम लिखना उपयोगकर्ता की ज़िम्मेदारी है.
- उपयोगकर्ता, Bazel के साथ ज़्यादा इंटरैक्ट करते हैं. उदाहरण के लिए, Bazel में “Java टेस्ट”, “C++ बाइनरी”, और “टारगेट प्लैटफ़ॉर्म” और “होस्ट प्लैटफ़ॉर्म” जैसी अवधारणाओं के लिए, पहले से बने नियम हैं. इन नियमों को पूरी तरह से जांचा गया है, ताकि कोई भी गड़बड़ी न हो.
- Ant और Maven: Ant और Maven मुख्य रूप से Java के लिए बनाए गए हैं, जबकि Bazel कई भाषाओं के साथ काम करता है. Bazel, कोडबेस को फिर से इस्तेमाल की जा सकने वाली छोटी इकाइयों में बांटने का सुझाव देता है. साथ ही, सिर्फ़ उन इकाइयों को फिर से बनाया जा सकता है जिनकी ज़रूरत है. इससे बड़े कोडबेस पर काम करते समय, डेवलपमेंट की प्रोसेस तेज़ हो जाती है.
- Gradle: Bazel की कॉन्फ़िगरेशन फ़ाइलें, Gradle की तुलना में ज़्यादा व्यवस्थित होती हैं. इससे Bazel को यह समझने में मदद मिलती है कि हर कार्रवाई क्या करती है. इससे, एक साथ कई काम किए जा सकते हैं और बेहतर तरीके से नतीजे मिल सकते हैं.
- Pants, Buck: दोनों टूल को Google के पूर्व कर्मचारी ने बनाया और डेवलप किया था. Pants को Twitter में और Buck को Facebook में बनाया गया था. इनका मॉडल, Bazel के हिसाब से बनाया गया है. हालांकि, इनकी सुविधाएं अलग हैं. इसलिए, ये हमारे लिए सही विकल्प नहीं हैं.
Bazel कहां से आया?
Bazel, टूल का एक फ़्लेवर है. Google इसका इस्तेमाल, अपने सर्वर सॉफ़्टवेयर को इंटरनल तौर पर बनाने के लिए करता है. अब यह अन्य सॉफ़्टवेयर बनाने के लिए भी काम करता है. जैसे, हमारे सर्वर से कनेक्ट होने वाले मोबाइल ऐप्लिकेशन (iOS, Android).
क्या आपने अपने इंटरनल टूल को ओपन-सोर्स के तौर पर फिर से लिखा है? क्या यह कोई फ़ॉर्क है?
Bazel, अपने ज़्यादातर कोड को इंटरनल टूल के साथ शेयर करता है. साथ ही, इसके नियमों का इस्तेमाल हर दिन लाखों बिल्ड के लिए किया जाता है.
Google ने Bazel क्यों बनाया?
Google ने बहुत पहले, जनरेट की गई बड़ी Makefiles का इस्तेमाल करके अपना सॉफ़्टवेयर बनाया था. इस वजह से, बिल्ड की प्रोसेस धीमी और अविश्वसनीय हो गई. इससे हमारे डेवलपर की प्रोडक्टिविटी और कंपनी की परफ़ॉर्मेंस पर असर पड़ने लगा. Bazel, इन समस्याओं को हल करने का एक तरीका था.
क्या Bazel को बिल्ड क्लस्टर की ज़रूरत होती है?
Bazel, डिफ़ॉल्ट रूप से स्थानीय तौर पर बिल्ड ऑपरेशन चलाता है. हालांकि, Bazel को बिल्ड और टेस्ट को ज़्यादा तेज़ बनाने के लिए, बिल्ड क्लस्टर से भी कनेक्ट किया जा सकता है. ज़्यादा जानकारी के लिए, रिमोट तरीके से प्रोसेस करने और कैश मेमोरी में सेव करने और रिमोट तरीके से कैश मेमोरी में सेव करने के बारे में हमारा दस्तावेज़ देखें.
Google की डेवलपमेंट प्रोसेस कैसे काम करती है?
अपने सर्वर कोड बेस के लिए, हम डेवलपमेंट वर्कफ़्लो का इस्तेमाल करते हैं:
- हमारा पूरा सर्वर कोड, वर्शन कंट्रोल के एक बड़े सिस्टम में मौजूद है.
- सभी लोग Bazel का इस्तेमाल करके अपना सॉफ़्टवेयर बनाते हैं.
- अलग-अलग टीमों के पास सोर्स ट्री के अलग-अलग हिस्सों का मालिकाना हक होता है. साथ ही, वे अपने कॉम्पोनेंट को
BUILD
टारगेट के तौर पर उपलब्ध कराती हैं. - शाखाओं का इस्तेमाल मुख्य रूप से रिलीज़ मैनेज करने के लिए किया जाता है, ताकि हर कोई हेड रिविज़न पर अपना सॉफ़्टवेयर डेवलप कर सके.
Bazel, इस फ़िलॉज़ोफ़ी का मुख्य आधार है: Bazel के लिए, सभी डिपेंडेंसी की पूरी जानकारी देना ज़रूरी है. इसलिए, हम यह अनुमान लगा सकते हैं कि किसी बदलाव से किन प्रोग्राम और टेस्ट पर असर पड़ेगा. साथ ही, सबमिट करने से पहले उनकी जांच भी की जा सकती है.
Google पर डेवलपमेंट की प्रोसेस के बारे में ज़्यादा जानकारी के लिए, eng tools blog पर जाएं.
आपने Bazel क्यों खोला?
सॉफ़्टवेयर बनाना मज़ेदार और आसान होना चाहिए. धीमे और अप्रत्याशित बिल्ड, प्रोग्रामिंग का मज़ा खत्म कर देते हैं.
मुझे Bazel का इस्तेमाल क्यों करना चाहिए?
- Bazel की मदद से, प्रोग्राम को तेज़ी से बिल्ड किया जा सकता है. ऐसा इसलिए, क्योंकि यह सिर्फ़ उन फ़ाइलों को फिर से कंपाइल कर सकता है जिन्हें फिर से कंपाइल करना ज़रूरी है. इसी तरह, यह उन टेस्ट को फिर से चलाने से भी बच सकता है जिनमें कोई बदलाव नहीं हुआ है.
- Bazel, तय नतीजे दिखाता है. इससे इंक्रीमेंटल और क्लीन बिल्ड, लैपटॉप, और सीआई सिस्टम वगैरह के बीच का अंतर खत्म हो जाता है.
- Bazel, एक ही वर्कस्पेस में एक ही टूल का इस्तेमाल करके, अलग-अलग क्लाइंट और सर्वर ऐप्लिकेशन बना सकता है. उदाहरण के लिए, एक ही कमिट में क्लाइंट/सर्वर प्रोटोकॉल बदला जा सकता है. साथ ही, यह जांच की जा सकती है कि अपडेट किया गया मोबाइल ऐप्लिकेशन, अपडेट किए गए सर्वर के साथ काम करता है या नहीं. इसके लिए, दोनों को एक ही टूल से बनाया जा सकता है. इससे, Bazel के ऊपर बताए गए सभी फ़ायदे मिलते हैं.
क्या मुझे उदाहरण देखने को मिलेंगे?
हां; सरल उदाहरण देखें या ज़्यादा मुश्किल उदाहरण के लिए, Bazel का सोर्स कोड पढ़ें.
Bazel किस काम के लिए सबसे अच्छा है?
Bazel, इन प्रॉपर्टी की मदद से प्रोजेक्ट बनाने और उनकी जांच करने में बेहतरीन है:
- बड़े कोडबेस वाले प्रोजेक्ट
- कंपाइल की गई (एक से ज़्यादा) भाषाओं में लिखे गए प्रोजेक्ट
- ऐसे प्रोजेक्ट जो एक से ज़्यादा प्लैटफ़ॉर्म पर डिप्लॉय किए जाते हैं
- ऐसे प्रोजेक्ट जिनमें ज़्यादा टेस्ट किए गए हैं
Bazel को कहां चलाया जा सकता है?
Bazel, Linux, macOS (OS X), और Windows पर काम करता है.
अन्य UNIX प्लैटफ़ॉर्म पर पोर्ट करना आसान हो सकता है. हालांकि, इसके लिए ज़रूरी है कि प्लैटफ़ॉर्म के लिए JDK उपलब्ध हो.
मुझे Bazel का इस्तेमाल किन कामों के लिए नहीं करना चाहिए?
- Bazel, कैश मेमोरी का इस्तेमाल स्मार्ट तरीके से करता है. इसका मतलब है कि यह उन बिल्ड ऑपरेशन के लिए अच्छा नहीं है जिनके आउटपुट को कैश मेमोरी में सेव नहीं किया जाना चाहिए. उदाहरण के लिए, नीचे दिए गए चरणों को Bazel से नहीं चलाया जाना चाहिए:
- कंपाइल करने का एक चरण, जो इंटरनेट से डेटा फ़ेच करता है.
- टेस्ट का एक चरण, जो आपकी साइट के क्यूए इंस्टेंस से कनेक्ट होता है.
- डिप्लॉयमेंट का एक चरण, जो आपकी साइट के क्लाउड कॉन्फ़िगरेशन में बदलाव करता है.
- अगर आपके बिल्ड में कुछ लंबे और क्रम से होने वाले चरण शामिल हैं, तो हो सकता है कि 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 के साथ Make को चलाने पर भी, अनचाहे नतीजे मिल सकते हैं.
Google में, हम टूल को सोर्स कंट्रोल में जांचते हैं, ताकि उन्हें फिर से बनाया जा सके. इस तरह, हम टूल में किए गए बदलावों (“GCC को 4.6.1 पर अपग्रेड करें”) की जांच उसी तरीके से कर सकते हैं जिस तरह बेस लाइब्रेरी में किए गए बदलावों (“OpenSSL में बाउंड की जांच ठीक करें”) की जांच की जाती है.
क्या Docker पर डिप्लॉयमेंट के लिए बाइनरी बनाई जा सकती हैं?
Bazel की मदद से, C/C++ में स्टैटिक तौर पर लिंक की गई स्टैंडअलोन बाइनरी और Java के लिए, अपने-आप काम करने वाली jar फ़ाइलें बनाई जा सकती हैं. ये सामान्य यूनिक्स सिस्टम पर कुछ डिपेंडेंसी के साथ काम करते हैं. इसलिए, इन्हें Docker कंटेनर में आसानी से इंस्टॉल किया जा सकता है.
Bazel में, ज़्यादा जटिल प्रोग्राम को स्ट्रक्चर करने के लिए कुछ नियम हैं. उदाहरण के लिए, ऐसा Java प्रोग्राम जो डेटा फ़ाइलों का सेट इस्तेमाल करता है या किसी दूसरे प्रोग्राम को सबप्रोसेस के तौर पर चलाता है. ऐसे एनवायरमेंट को स्टैंडअलोन संग्रह के तौर पर पैकेज किया जा सकता है, ताकि उन्हें अलग-अलग सिस्टम पर डिप्लॉय किया जा सके. इनमें Docker इमेज भी शामिल हैं.
क्या Bazel की मदद से Docker इमेज बनाई जा सकती हैं?
हां, दोबारा इस्तेमाल की जा सकने वाली Docker इमेज बनाने के लिए, हमारे Docker नियमों का इस्तेमाल किया जा सकता है.
क्या Bazel, मेरे बिल्ड को अपने-आप दोबारा चला पाएगा?
Java और C++ बाइनरी के लिए, हां, बशर्ते टूलचेन में बदलाव न किया जाए. अगर आपके पास कस्टम रेसिपी वाले बिल्ड चरण हैं, तो आपको कुछ और सावधानी बरतनी होगी. उदाहरण के लिए, किसी नियम में शेल स्क्रिप्ट की मदद से बाइनरी को चलाना.
- ऐसी डिपेंडेंसी का इस्तेमाल न करें जिनके बारे में एलान नहीं किया गया है. सैंडबॉक्स में चलाए जाने वाले प्रोग्राम (–spawn_strategy=sandboxed, सिर्फ़ Linux पर) से, बिना बताई गई डिपेंडेंसी ढूंढने में मदद मिल सकती है.
- जनरेट की गई फ़ाइलों में टाइमस्टैंप और उपयोगकर्ता आईडी सेव करने से बचें. खास तौर पर, ZIP फ़ाइलों और अन्य संग्रहों में ऐसा होने की संभावना होती है.
- नेटवर्क से कनेक्ट न करें. सैंडबॉक्स में चलाए जाने से भी यहां मदद मिल सकती है.
- ऐसी प्रोसेस से बचें जो रैंडम नंबर का इस्तेमाल करती हैं. खास तौर पर, कई प्रोग्रामिंग भाषाओं में डिक्शनरी ट्रैवर्सल को रैंडमाइज़ किया जाता है.
क्या आपके पास बाइनरी रिलीज़ हैं?
हां, आपको रिलीज़ बाइनरी और हमारी रिलीज़ नीति की जानकारी मिल सकती है
मैं Eclipse/IntelliJ/XCode का इस्तेमाल करता/करती हूं. Bazel, IDE के साथ कैसे काम करता है?
IntelliJ के लिए, IntelliJ with Bazel plugin देखें.
XCode के लिए, Tulsi देखें.
Eclipse के लिए, E4B प्लगिन देखें.
अन्य आईडीई के लिए, इन प्लग इन के काम करने के तरीके के बारे में बताने वाली ब्लॉग पोस्ट देखें.
मैं Jenkins/CircleCI/TravisCI का इस्तेमाल करता/करती हूं. Bazel, सीआई सिस्टम के साथ कैसे काम करता है?
अगर बिल्ड या टेस्ट को ट्रिगर करने में कोई गड़बड़ी होती है, तो Bazel एक ऐसा कोड दिखाता है जो शून्य से ज़्यादा होता है. यह कोड, बुनियादी सीआई इंटिग्रेशन के लिए काफ़ी होता है. Bazel को सही तरीके से काम करने के लिए, क्लीन बिल्ड की ज़रूरत नहीं होती. इसलिए, बिल्ड/टेस्ट रन शुरू करने से पहले, सीआई सिस्टम को क्लीन करने के लिए कॉन्फ़िगर नहीं किया जाना चाहिए.
बाहर निकलने के कोड के बारे में ज़्यादा जानकारी, उपयोगकर्ता मैन्युअल में दी गई है.
आने वाले समय में, Bazel में कौनसी सुविधाएं मिल सकती हैं?
हमारे रोडमैप देखें.
क्या अपने INSERT LANGUAGE HERE प्रोजेक्ट के लिए, Bazel का इस्तेमाल किया जा सकता है?
Bazel में एक्सटेंशन जोड़े जा सकते हैं. कोई भी व्यक्ति नई भाषाओं के लिए सहायता जोड़ सकता है. कई भाषाओं में अनुवाद किया जा सकता है: सुझावों की सूची के लिए बिल्ड एनसाइक्लोपीडिया देखें और ज़्यादा जानकारी के लिए awesomebazel.com पर जाएं.
अगर आपको एक्सटेंशन डेवलप करने हैं या उनके काम करने के तरीके के बारे में जानना है, तो Bazel को एक्सटेंंड करने के लिए दस्तावेज़ देखें.
क्या मैं Bazel के कोड बेस में योगदान दे सकता/सकती हूं?
योगदान से जुड़े दिशा-निर्देश देखें.
सभी डेवलपमेंट सार्वजनिक तौर पर क्यों नहीं किए जाते?
हमें अब भी Bazel के सार्वजनिक कोड और अपने इंटरनल एक्सटेंशन के बीच इंटरफ़ेस को बार-बार रीफ़ैक्टर करना पड़ता है. इससे सार्वजनिक तौर पर ज़्यादा डेवलपमेंट करना मुश्किल हो जाता है.
क्या आपने Bazel को ओपन सोर्स कर दिया है?
Bazel को ओपन सोर्स करने का काम जारी है. खास तौर पर, हम अब भी इन चीज़ों को ओपन सोर्स करने पर काम कर रहे हैं:
- हमारी कई यूनिट और इंटिग्रेशन टेस्ट (इनसे पैच बनाने में आसानी होनी चाहिए).
- आईडीई का पूरा इंटिग्रेशन.
कोड के अलावा, हम चाहते हैं कि कोड की सभी समीक्षाएं, गड़बड़ी ट्रैक करने की प्रोसेस, और डिज़ाइन से जुड़े फ़ैसले सार्वजनिक तौर पर लिए जाएं. इसमें Bazel कम्यूनिटी भी शामिल होगी. हम अभी इस प्रोसेस के आखिरी चरण तक नहीं पहुंचे हैं. इसलिए, कुछ बदलाव Bazel रिपॉज़िटरी में बिना किसी जानकारी के दिखेंगे. हालांकि, हम बाहरी डेवलपर की मदद करना चाहते हैं और उनके साथ मिलकर काम करना चाहते हैं. इसलिए, हम कोड को सार्वजनिक कर रहे हैं. हालांकि, कुछ डेवलपमेंट अब भी Google के अंदर हो रहा है. अगर आपको ओपन मॉडल पर स्विच करने के दौरान कुछ समझ नहीं आता है या वह सही नहीं लगता है, तो कृपया हमें बताएं.
क्या Bazel के कुछ हिस्से कभी ओपन सोर्स नहीं किए जाएंगे?
हां, कुछ कोड बेस, Google की खास टेक्नोलॉजी के साथ इंटिग्रेट होते हैं या हम उन्हें हटाने का कोई बहाना ढूंढ रहे हैं. इसके अलावा, ऐसा भी हो सकता है कि दोनों में से कोई एक वजह हो. कोड बेस के ये हिस्से, GitHub पर उपलब्ध नहीं हैं और शायद कभी उपलब्ध न हों.
मैं टीम से कैसे संपर्क करूं?
हमसे bazel-discuss@googlegroups.com पर संपर्क किया जा सकता है.
मैं गड़बड़ियों की शिकायत कहां करूं?
GitHub पर कोई समस्या खोलें.
कोडबेस में “Blaze” शब्द का क्या मतलब है?
यह टूल का इंटरनल नाम है. कृपया Bazel को Bazel के तौर पर रेफ़र करें.
Google के अन्य प्रोजेक्ट (Android, Chrome) दूसरे बिल्ड टूल का इस्तेमाल क्यों करते हैं?
पहली (अल्फा) रिलीज़ तक, Bazel बाहरी लोगों के लिए उपलब्ध नहीं था. इसलिए, Chromium और Android जैसे ओपन सोर्स प्रोजेक्ट इसका इस्तेमाल नहीं कर सकते थे. इसके अलावा, Windows के लिए सहायता उपलब्ध न होने की वजह से, Chrome जैसे Windows ऐप्लिकेशन बनाने में समस्या आ रही थी. प्रोजेक्ट अब पूरी तरह से तैयार है और ज़्यादा स्टेबल हो गया है. इसलिए, Android ओपन सोर्स प्रोजेक्ट को Bazel पर माइग्रेट किया जा रहा है.
“Bazel” का उच्चारण कैसे करें?
अमेरिकन इंग्लिश में “बैज़ल” (जड़ी-बूटी) की तरह: “बेज़ल”. यह “हज़ल” के साथ मेल खाता है. आईपीए: /ˈbeɪzˌəl/