बेज़ल क्यों?

समस्या की शिकायत करें स्रोत देखें

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

Bazel तेज़ है

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

अगर उपलब्ध हो, तो यह मेमोरी में, डिस्क पर, और रिमोट बिल्ड फ़ॉर्म (अगर उपलब्ध हो) पर कैश मेमोरी में सेव करने की कई लेयर से काम करता है. Google में हम नियमित रूप से कैश हिट दरों को 99% के उत्तर में हासिल करते हैं.

बज़ल सही है

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

make clean को शुरू करने और नए फ़ैंटम बग का पता लगाने के लिए उन्हें गुडबाइट दें. ये ऐसे सोर्स कोड हैं जिन्हें कभी बनाया ही नहीं जा सका.

Bazel एक्सटेंसिबल है

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

Bazel के नियम, Starlark में लिखे गए हैं. यह हमारी इन-हाउस प्रोग्रामिंग भाषा है, जो Python का एक सबसेट है. Starlark, ज़्यादातर डेवलपर के लिए नियम-लिखने की सुविधा उपलब्ध कराता है. साथ ही, वे ऐसे नियम भी बनाता है जिनका पूरे नेटवर्क में इस्तेमाल किया जा सकता है.

इंटिग्रेटेड टेस्टिंग

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

Bazel, जांच के नतीजों को एक मुख्य जगह पर अपलोड करने की सुविधा देता है. इससे जांच के नतीजों को बेहतर तरीके से कम्यूनिकेशन किया जा सकता है. भले ही, सीआई या व्यक्तिगत डेवलपर ही ऐसा कर रहे हों.

कई भाषाओं में उपलब्ध

Bazel कई सामान्य प्रोग्रामिंग भाषाओं का इस्तेमाल करता है. इनमें C++, Java, Kotlin, Python, Go, और Rust शामिल हैं. एक ही Bazel बातचीत में कई बाइनरी (उदाहरण के लिए, बैकएंड, वेब यूज़र इंटरफ़ेस (यूआई), और मोबाइल ऐप्लिकेशन) बनाई जा सकती हैं. इसके लिए, आपको किसी एक भाषा के मुहावरे बनाने वाले टूल का इस्तेमाल करना होगा.

मल्टी-डेटा रिपॉज़िटरी की सुविधा

Bazel को कई जगहों से सोर्स कोड इकट्ठा करने की ज़रूरत नहीं है: आपको अपनी डिपेंडेंसी उपलब्ध कराने की ज़रूरत नहीं है!

मल्टी-प्लैटफ़ॉर्म पर काम करने की सुविधा

Bazel, Linux, macOS, Windows, और Android जैसे कई प्लैटफ़ॉर्म के लिए एक साथ प्रोजेक्ट बना सकता है. इससे किसी प्लैटफ़ॉर्म पर बिल्ड चलाने के दौरान उसके लिए कोड बनाने के लिए, क्रॉस-कंपाइलेशन की बेहतर सुविधाएं भी मिलती हैं.

वाइड नेटवर्क

इंडस्ट्री के लीडर, Bazel को बहुत पसंद करते हैं. वे उन डेवलपर का एक बड़ा समुदाय बना रहे हैं जो Bazel का इस्तेमाल करते हैं और इसके लिए योगदान देते हैं. सलाह और SaaS के ऑफ़र के साथ-साथ, टूल, सेवाएं, और दस्तावेज़ खोजें Bezel इसका इस्तेमाल कर सकता है. हमारे ओपन सोर्स सॉफ़्टवेयर रिपॉज़िटरी में प्रोग्रामिंग भाषाओं के लिए सहायता जैसे एक्सटेंशन एक्सप्लोर करें.