अगर आपके कोई सवाल हैं या आपको सहायता चाहिए, तो सहायता पाना लेख पढ़ें.
Bazel क्या है?
Bazel एक ऐसा टूल है जो सॉफ़्टवेयर बिल्ड और टेस्ट की प्रोसेस को ऑटोमेट करता है. सॉफ़्टवेयर बिल्ड करने के लिए, यह कंपाइलर और लिंकर चलाता है. इससे, एक्ज़ीक्यूटेबल प्रोग्राम और लाइब्रेरी बनती हैं. साथ ही, Android, iOS, और अन्य टारगेट एनवायरमेंट के लिए, डिप्लॉय किए जा सकने वाले पैकेज तैयार किए जाते हैं. Bazel, Make, Ant, Gradle, Buck, Pants, और Maven जैसे अन्य टूल की तरह ही है.
Bazel की खासियत क्या है?
Bazel को Google में सॉफ़्टवेयर डेवलपमेंट के तरीके के हिसाब से डिज़ाइन किया गया है. इसमें ये सुविधाएं हैं:
- कई भाषाओं में उपलब्ध: Bazel कई भाषाओं में उपलब्ध है. इसे किसी भी प्रोग्रामिंग लैंग्वेज के साथ इस्तेमाल किया जा सकता है.
- सॉफ़्टवेयर बिल्ड करने के लिए हाई-लेवल लैंग्वेज: प्रोजेक्ट को
BUILDलैंग्वेज में लिखा जाता है. यह एक संक्षिप्त टेक्स्ट फ़ॉर्मैट है. इसमें किसी प्रोजेक्ट को, आपस में जुड़ी छोटी-छोटी लाइब्रेरी, बाइनरी, और टेस्ट के सेट के तौर पर दिखाया जाता है. इसके उलट, Make जैसे टूल में आपको अलग-अलग फ़ाइलों और कंपाइलर के लिए निर्देश लिखने होते हैं. - कई प्लैटफ़ॉर्म पर उपलब्ध: अलग-अलग आर्किटेक्चर और प्लैटफ़ॉर्म के लिए सॉफ़्टवेयर बिल्ड करने के लिए, एक ही टूल और एक ही
BUILDफ़ाइलों का इस्तेमाल किया जा सकता है. Google में, हम Bazel का इस्तेमाल करके, अपने डेटा सेंटर में मौजूद सिस्टम पर चलने वाले सर्वर ऐप्लिकेशन से लेकर, मोबाइल फ़ोन पर चलने वाले क्लाइंट ऐप्लिकेशन तक, सब कुछ बिल्ड करते हैं. - सॉफ़्टवेयर बिल्ड करने के लिए, एक ही नतीजे मिलना:
BUILDफ़ाइलों में, हर लाइब्रेरी, टेस्ट, और बाइनरी को अपनी डायरेक्ट डिपेंडेंसी पूरी तरह से बतानी होती है. Bazel, डिपेंडेंसी की इस जानकारी का इस्तेमाल करके यह पता लगाता है कि सोर्स फ़ाइल में बदलाव करने पर, क्या फिर से बिल्ड करना होगा. साथ ही, यह भी पता लगाता है कि कौनसे टास्क एक साथ चलाए जा सकते हैं. इसका मतलब है कि सभी बिल्ड, इंक्रीमेंटल होते हैं और इनसे हमेशा एक ही नतीजा मिलता है. - स्केलेबल: Bazel, बड़े बिल्ड को हैंडल कर सकता है. Google में, सर्वर बाइनरी में 100K सोर्स फ़ाइलें होना आम बात है. साथ ही, जिन बिल्ड में कोई फ़ाइल नहीं बदली गई है उन्हें बनाने में करीब 200 मिसेकंड लगते हैं.
Google, इन टूल का इस्तेमाल क्यों नहीं करता...?
- Make, Ninja: इन टूल से, फ़ाइलें बिल्ड करने के लिए इस्तेमाल किए जाने वाले कमांड पर सटीक कंट्रोल मिलता है. हालांकि, सही नियम लिखना उपयोगकर्ता पर निर्भर करता है.
- उपयोगकर्ता, Bazel के साथ हाई लेवल पर इंटरैक्ट करते हैं. उदाहरण के लिए, Bazel में "Java test", "C++ binary" के लिए इन-बिल्ट नियम हैं. साथ ही, "target platform" और "host platform" जैसी सुविधाएं भी हैं. इन नियमों को पूरी तरह से टेस्ट किया गया है, ताकि इनमें कोई गड़बड़ी न हो.
- Ant और Maven: Ant और Maven मुख्य रूप से Java के लिए बने हैं, जबकि Bazel कई भाषाओं को हैंडल करता है. Bazel, कोडबेस को छोटे-छोटे, फिर से इस्तेमाल किए जा सकने वाले यूनिट में बांटने को बढ़ावा देता है. साथ ही, यह सिर्फ़ उन यूनिट को फिर से बिल्ड कर सकता है जिन्हें फिर से बिल्ड करने की ज़रूरत होती है. इससे, बड़े कोडबेस के साथ काम करते समय डेवलपमेंट की प्रोसेस तेज़ हो जाती है.
- Gradle: Bazel की कॉन्फ़िगरेशन फ़ाइलें, Gradle की तुलना में ज़्यादा स्ट्रक्चर्ड होती हैं. इससे Bazel को यह समझने में मदद मिलती है कि हर कार्रवाई क्या करती है. इससे, ज़्यादा पैरललिज़्म और बेहतर रिप्रोड्यूसिबिलिटी मिलती है.
- Pants, Buck: इन दोनों टूल को, Twitter और Foursquare में काम करने वाले पूर्व Googler ने बनाया और डेवलप किया था. वहीं, Facebook में काम करने वाले पूर्व Googler ने Buck को बनाया और डेवलप किया था. इन्हें Bazel के मॉडल पर बनाया गया है, लेकिन इनके फ़ीचर सेट अलग-अलग हैं. इसलिए, ये हमारे लिए सही विकल्प नहीं हैं.
Bazel कहां से आया?
Bazel, उस टूल का एक वर्शन है जिसका इस्तेमाल Google, अपने सर्वर सॉफ़्टवेयर को इंटरनली बिल्ड करने के लिए करता है. इसका इस्तेमाल, अन्य सॉफ़्टवेयर को बिल्ड करने के लिए भी किया जाता है. जैसे, iOS और Android के मोबाइल ऐप्लिकेशन, जो हमारे सर्वर से कनेक्ट होते हैं.
क्या आपने अपने इंटरनल टूल को ओपन सोर्स के तौर पर फिर से लिखा है? क्या यह फ़ोर्क है?
Bazel, अपने ज़्यादातर कोड को इंटरनल टूल के साथ शेयर करता है. साथ ही, इसके नियमों का इस्तेमाल हर दिन लाखों बिल्ड के लिए किया जाता है.
Google ने Bazel क्यों बनाया?
काफ़ी समय पहले, Google अपने सॉफ़्टवेयर को बड़े-बड़े, जनरेट किए गए Makefiles का इस्तेमाल करके बिल्ड करता था. इससे बिल्ड की प्रोसेस धीमी और भरोसेमंद नहीं होती थी. इससे हमारे डेवलपर की प्रॉडक्टिविटी और कंपनी की तेज़ी से काम करने की क्षमता पर असर पड़ने लगा था. Bazel, इन समस्याओं को हल करने का एक तरीका था.
क्या Bazel के लिए बिल्ड क्लस्टर की ज़रूरत होती है?
Bazel, डिफ़ॉल्ट रूप से बिल्ड ऑपरेशन को स्थानीय तौर पर चलाता है. हालांकि, Bazel, बिल्ड और टेस्ट को और भी तेज़ी से करने के लिए, बिल्ड क्लस्टर से भी कनेक्ट हो सकता है. ज़्यादा जानकारी के लिए, रिमोट एक्ज़ीक्यूशन और कैश मेमोरी में सेव करने की सुविधा और रिमोट कैश मेमोरी में सेव करने की सुविधा के बारे में हमारे दस्तावेज़ देखें.
Google की डेवलपमेंट प्रोसेस कैसे काम करती है?
हम अपने सर्वर कोडबेस के लिए, डेवलपमेंट के इस वर्कफ़्लो का इस्तेमाल करते हैं:
- हमारे सभी सर्वर कोड, वर्शन कंट्रोल के एक बड़े सिस्टम में मौजूद हैं.
- हर कोई अपने सॉफ़्टवेयर को Bazel की मदद से बिल्ड करता है.
- अलग-अलग टीमें, सोर्स ट्री के अलग-अलग हिस्सों की मालिक होती हैं. साथ ही, अपने कॉम्पोनेंट को
BUILDटारगेट के तौर पर उपलब्ध कराती हैं. - ब्रांचिंग का इस्तेमाल मुख्य रूप से रिलीज़ को मैनेज करने के लिए किया जाता है. इसलिए, हर कोई अपने सॉफ़्टवेयर को हेड रिविज़न पर डेवलप करता है.
Bazel, इस फ़िलॉसफ़ी का एक अहम हिस्सा है. Bazel के लिए, सभी डिपेंडेंसी को पूरी तरह से तय करना ज़रूरी है. इसलिए, हम यह अनुमान लगा सकते हैं कि किसी बदलाव से किन प्रोग्राम और टेस्ट पर असर पड़ेगा. साथ ही, सबमिट करने से पहले उनकी जांच कर सकते हैं.
Google में डेवलपमेंट की प्रोसेस के बारे में ज़्यादा जानकारी पाने के लिए, eng tools का ब्लॉग पढ़ें.
आपने Bazel को ओपन सोर्स क्यों बनाया?
सॉफ़्टवेयर बिल्ड करना मज़ेदार और आसान होना चाहिए. धीमे और अनुमान न लगाए जा सकने वाले बिल्ड, प्रोग्रामिंग के मज़े को खत्म कर देते हैं.
मुझे Bazel का इस्तेमाल क्यों करना चाहिए?
- Bazel, बिल्ड करने में कम समय ले सकता है, क्योंकि यह सिर्फ़ उन फ़ाइलों को फिर से कंपाइल कर सकता है जिन्हें फिर से कंपाइल करने की ज़रूरत होती है. इसी तरह, यह उन टेस्ट को फिर से नहीं चलाता है जिनमें कोई बदलाव नहीं हुआ है.
- Bazel, एक ही नतीजे देता है. इससे, इंक्रीमेंटल और क्लीन बिल्ड, लैपटॉप और सीआई सिस्टम वगैरह के बीच अंतर खत्म हो जाता है.
- Bazel, एक ही टूल और एक ही वर्कस्पेस से, अलग-अलग क्लाइंट और सर्वर ऐप्लिकेशन बिल्ड कर सकता है. उदाहरण के लिए, एक ही कमिट में क्लाइंट या सर्वर प्रोटोकॉल बदला जा सकता है. साथ ही, यह टेस्ट किया जा सकता है कि अपडेट किया गया मोबाइल ऐप्लिकेशन, अपडेट किए गए सर्वर के साथ काम करता है या नहीं. इसके लिए, दोनों को एक ही टूल से बिल्ड किया जा सकता है. इससे, Bazel के ऊपर बताए गए सभी फ़ायदे मिलते हैं.
क्या मैं उदाहरण देख सकता/सकती हूं?
हां. इसके लिए, कोई आसान उदाहरण देखें या ज़्यादा मुश्किल उदाहरण के लिए, Bazel का सोर्स कोड पढ़ें.
Bazel किस काम के लिए सबसे अच्छा है?
Bazel, इन प्रॉपर्टी वाले प्रोजेक्ट को बिल्ड करने और टेस्ट करने के लिए सबसे अच्छा है:
- बड़े कोडबेस वाले प्रोजेक्ट
- कंपाइल्ड लैंग्वेज (एक से ज़्यादा) में लिखे गए प्रोजेक्ट
- एक से ज़्यादा प्लैटफ़ॉर्म पर डिप्लॉय किए जाने वाले प्रोजेक्ट
- ज़्यादा टेस्ट वाले प्रोजेक्ट
मैं Bazel को कहां चला सकता/सकती हूं?
Bazel, Linux, macOS (OS X), और Windows पर चलता है.
अन्य UNIX प्लैटफ़ॉर्म पर पोर्ट करना आसान होना चाहिए, बशर्ते प्लैटफ़ॉर्म के लिए JDK उपलब्ध हो.
मुझे Bazel का इस्तेमाल किन कामों के लिए नहीं करना चाहिए?
- Bazel, कैश मेमोरी में सेव करने की प्रोसेस को बेहतर बनाने की कोशिश करता है. इसका मतलब है कि यह उन बिल्ड ऑपरेशन को चलाने के लिए सही नहीं है जिनके आउटपुट को कैश मेमोरी में सेव नहीं किया जाना चाहिए. उदाहरण के लिए, इन चरणों को Bazel से नहीं चलाया जाना चाहिए:
- कंपाइलेशन का वह चरण जिसमें इंटरनेट से डेटा फ़ेच किया जाता है.
- टेस्ट का वह चरण जिसमें आपकी साइट के क्यूए इंस्टेंस से कनेक्ट किया जाता है.
- डिप्लॉयमेंट का वह चरण जिसमें आपकी साइट के क्लाउड कॉन्फ़िगरेशन में बदलाव किया जाता है.
- अगर आपके बिल्ड में कुछ लंबे, सीक्वेंशियल चरण शामिल हैं, तो Bazel ज़्यादा मदद नहीं कर पाएगा. लंबे चरणों को छोटे-छोटे, अलग-अलग टारगेट में बांटकर, ज़्यादा स्पीड पाई जा सकती है. Bazel इन टारगेट को एक साथ चला सकता है.
Bazel के फ़ीचर सेट की स्टेबिलिटी कितनी है?
कोर फ़ीचर (C++, Java, और शेल के नियम) का इस्तेमाल Google में बड़े पैमाने पर किया जाता है. इसलिए, इन्हें अच्छी तरह से टेस्ट किया जाता है और इनमें बहुत कम बदलाव होते हैं. इसी तरह, हम हर दिन लाखों टारगेट पर 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 के लिए, सेल्फ़-कंटेन्ड जार फ़ाइलें बिल्ड की जा सकती हैं. ये सामान्य UNIX सिस्टम पर कुछ डिपेंडेंसी के साथ चलती हैं. इसलिए, इन्हें Docker कंटेनर में आसानी से इंस्टॉल किया जा सकता है.
Bazel में, ज़्यादा मुश्किल प्रोग्राम को स्ट्रक्चर करने के लिए, कुछ नियम हैं. उदाहरण के लिए, Java का कोई ऐसा प्रोग्राम जो डेटा फ़ाइलों के सेट का इस्तेमाल करता है या सबप्रोसेस के तौर पर कोई दूसरा प्रोग्राम चलाता है. ऐसे एनवायरमेंट को स्टैंडअलोन आर्काइव के तौर पर पैकेज किया जा सकता है. इसलिए, इन्हें अलग-अलग सिस्टम पर डिप्लॉय किया जा सकता है. इनमें Docker इमेज भी शामिल हैं.
क्या मैं Bazel की मदद से Docker इमेज बिल्ड कर सकता/सकती हूं?
हां, रिप्रोड्यूसिबल Docker इमेज बिल्ड करने के लिए, हमारे Docker के नियमों का इस्तेमाल किया जा सकता है.
क्या Bazel, मेरे बिल्ड को अपने-आप रिप्रोड्यूसिबल बना देगा?
Java और C++ बाइनरी के लिए, हां. हालांकि, इसके लिए टूलचेन में कोई बदलाव नहीं किया जाना चाहिए. अगर आपके बिल्ड में ऐसे चरण शामिल हैं जिनमें कस्टम रेसिपी का इस्तेमाल किया जाता है (उदाहरण के लिए, किसी नियम के अंदर शेल स्क्रिप्ट के ज़रिए बाइनरी को एक्ज़ीक्यूट करना), तो आपको कुछ अतिरिक्त सावधानियां बरतनी होंगी:
- ऐसी डिपेंडेंसी का इस्तेमाल न करें जिन्हें तय नहीं किया गया है. सैंडबॉक्स में एक्ज़ीक्यूशन (–spawn_strategy=sandboxed, सिर्फ़ Linux पर) से, तय न की गई डिपेंडेंसी का पता लगाया जा सकता है.
- जनरेट की गई फ़ाइलों में, टाइमस्टैंप और उपयोगकर्ता आईडी सेव करने से बचें. ज़िप फ़ाइलें और अन्य आर्काइव, खास तौर पर इसके लिए संवेदनशील होते हैं.
- नेटवर्क से कनेक्ट होने से बचें. सैंडबॉक्स में एक्ज़ीक्यूशन से यहां भी मदद मिल सकती है.
- ऐसी प्रोसेस से बचें जिनमें रैंडम नंबर का इस्तेमाल किया जाता है. खास तौर पर, कई प्रोग्रामिंग लैंग्वेज में डिक्शनरी ट्रैवर्सल को रैंडमाइज़ किया जाता है.
क्या आपके पास बाइनरी रिलीज़ हैं?
हां, रिलीज़ की गई बाइनरी के सबसे नए वर्शन देखे जा सकते हैं. साथ ही, हमारी रिलीज़ नीति की समीक्षा की जा सकती है
मैं Eclipse/IntelliJ/XCode का इस्तेमाल करता/करती हूं. Bazel, आईडीई के साथ कैसे इंटरऑपरेट करता है?
IntelliJ के लिए, Bazel प्लगइन के साथ IntelliJ देखें.
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" शब्द का क्या मतलब है?
यह टूल का इंटरनल नाम है. कृपया Blaze को Bazel के तौर पर देखें.
Google के अन्य प्रोजेक्ट (Android, Chrome) बिल्ड करने के लिए, अन्य टूल का इस्तेमाल क्यों करते हैं?
पहले (अल्फ़ा) वर्शन के रिलीज़ होने तक, Bazel बाहरी तौर पर उपलब्ध नहीं था. इसलिए, Chromium और Android जैसे ओपन सोर्स प्रोजेक्ट इसका इस्तेमाल नहीं कर पाए. इसके अलावा, Windows के लिए सहायता उपलब्ध न होने की वजह से, Chrome जैसे Windows ऐप्लिकेशन बिल्ड करने में समस्या आ रही थी. अब यह प्रोजेक्ट मैच्योर हो गया है और ज़्यादा स्टेबल हो गया है. इसलिए, Android Open Source Project, Bazel पर माइग्रेट करने की प्रोसेस में है.
"Bazel" का उच्चारण कैसे किया जाता है?
यूएस अंग्रेज़ी में "basil" (तुलसी) का उच्चारण "BAY-zel" की तरह किया जाता है. इसका उच्चारण "hazel" से मिलता-जुलता है. आईपीए: /ˈbeɪzˌəl/