Bazel का रोडमैप

किसी समस्या की शिकायत करें सोर्स देखें Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

खास जानकारी

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

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

Bazel 7.0 रिलीज़

हमारा प्लान है कि हम साल 2023 के आखिर तक, आपको Bazel 7.0 का लंबे समय तक सहायता (एलटीएस) उपलब्ध कराएंगे. Bazel 7.0 में, हम उन कई आइटम को उपलब्ध कराएंगे जिन पर काम चल रहा है. साथ ही, हम उन सुविधाओं को बेहतर बनाने पर काम करना जारी रखेंगे जिनके लिए हमारे उपयोगकर्ता लगातार अनुरोध कर रहे हैं.

अलग-अलग प्लैटफ़ॉर्म पर कैश मेमोरी शेयर करने की बेहतर सुविधा

इससे कैश मेमोरी में सेव किए गए आर्टफ़ैक्ट को अलग-अलग बिल्ड लोकल (Mac) और रिमोट (Linux) बिल्ड प्लैटफ़ॉर्म पर शेयर किया जा सकता है. ऐसा मुख्य रूप से Java/Kotlin और Android डेवलपमेंट के लिए किया जाता है. इससे परफ़ॉर्मेंस बेहतर होती है और कैश मेमोरी का बेहतर तरीके से इस्तेमाल होता है.

Bazel की मदद से Android ऐप्लिकेशन बनाना

मेनिफ़ेस्ट और रिसॉर्स मर्ज करने की सुविधा को 30.1.3 वर्शन में अपडेट किया गया है, ताकि Android ऐप्लिकेशन डेवलपर, मेनिफ़ेस्ट मर्ज करने की नई सुविधाओं का इस्तेमाल कर सकें. जैसे, tools:node="merge".

रिमोट से प्रोग्राम चलाने की सुविधा में सुधार

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

Bzlmod: एक्सटर्नल डिपेंडेंसी मैनेजमेंट सिस्टम

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

  • Bazel में बाहरी डिपेंडेंसी मैनेजमेंट के लिए, Bzlmod डिफ़ॉल्ट रूप से चालू होता है
  • लॉक फ़ाइल के लिए सहायता — Bzlmod की मदद से, पूरी तरह से सुरक्षित बाइनरी बनाने की सुविधा चालू करता है
  • वेंडर/ऑफ़लाइन मोड के साथ काम करना — इससे उपयोगकर्ता, पहले से डाउनलोड की गई डिपेंडेंसी के साथ बिल्ड चला सकते हैं
  • पूरी तरह से कैश मेमोरी में सेव करने की सुविधा, जो न सिर्फ़ आर्टफ़ैक्ट को डाउनलोड करती है, बल्कि पूरी तरह से सेव किए गए कॉन्टेंट को भी कैश मेमोरी में सेव करती है
  • Bazel Central Registry में, कम्यूनिटी के नियमित योगदान और Bazel के मुख्य नियमों और प्रोजेक्ट को अपनाने की जानकारी शामिल होती है

विश्लेषण मेट्रिक बनाना

Bazel 7.0, विश्लेषण के फ़ेज़ में लगने वाले समय की मेट्रिक उपलब्ध कराता है. इससे डेवलपर, अपने बिल्ड की परफ़ॉर्मेंस को ऑप्टिमाइज़ कर सकते हैं.

डिफ़ॉल्ट रूप से चालू बाइट्स के बिना बिल्ड करना

बिना बाइट के बिल्ड, इंटरमीडिएट आर्टफ़ैक्ट को डाउनलोड करने से रोककर परफ़ॉर्मेंस को ऑप्टिमाइज़ करता है. साथ ही, यह नेटवर्क बैंडविड्थ पर बिल्ड को बोझिल होने से भी रोकता है. इसमें ये सुविधाएं जोड़ी गई हैं:

Skymeld की मदद से अपनी प्रोडक्टिविटी बढ़ाना

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

Bazel का इकोसिस्टम और टूल

Bazel की मदद से Android ऐप्लिकेशन बनाना

  • Android के नेटिव नियमों को Starlark पर माइग्रेट करना: Bazel 7.0 के लिए, Android के नियमों को Starlark पर माइग्रेट किया गया है, ताकि डेवलपमेंट को Bazel से अलग किया जा सके और कम्यूनिटी के योगदान को बेहतर तरीके से इस्तेमाल किया जा सके. इसके अलावा, हमने इन नियमों को Bazel के मुख्य बाइनरी से अलग रखा है, ताकि हम ज़्यादा बार रिलीज़ कर सकें.
  • Android के नियमों को Starlark में माइग्रेट करना
  • R8 के साथ काम करने की सुविधा: इससे Android ऐप्लिकेशन डेवलपर, R8 के अपडेट किए गए ऑप्टिमाइज़ेशन का इस्तेमाल कर सकते हैं.
  • मोबाइल इंस्टॉल: इससे Android ऐप्लिकेशन डेवलपर, मोबाइल इंस्टॉल के अपडेट किए गए वर्शन की मदद से, Android ऐप्लिकेशन में किए गए बदलावों को तुरंत डेवलप, टेस्ट, और डिप्लॉय कर सकते हैं.

सॉफ़्टवेयर बिल ऑफ़ मटीरियल का डेटा जनरेट करने (एसबीओएम) और ओएसएस लाइसेंस का पालन करने से जुड़े टूल

Bazel की मदद से, डेवलपर एसबीओएम बनाने के लिए डेटा जनरेट कर सकते हैं. यह डेटा, टेक्स्ट या JSON फ़ॉर्मैट में आउटपुट होता है. साथ ही, इसे SPDX या CycloneDX के स्पेसिफ़िकेशन के मुताबिक आसानी से फ़ॉर्मैट किया जा सकता है. इसके अलावा, इस प्रोसेस में उन लाइसेंस के बारे में बताने के नियम भी शामिल हैं जिनके तहत Bazel मॉड्यूल उपलब्ध कराए जाते हैं. साथ ही, इन नियमों के आधार पर प्रोसेस बनाने के लिए टूल भी शामिल हैं. GitHub पर, rules_license लागू करने की प्रोसेस देखें.

साइन किए गए बिल्ड

Bazel, Windows और Mac के लिए भरोसेमंद बाइनरी उपलब्ध कराता है. इन बाइनरी को Google की कुंजियों से साइन किया जाता है. इस सुविधा की मदद से, कई प्लैटफ़ॉर्म के डेवलपर/डेवलपमेंट ऑपरेशंस (DevOps) टीम, Bazel बाइनरी के सोर्स की पहचान कर सकती है. साथ ही, अपने सिस्टम को नुकसान पहुंचाने वाली और पुष्टि नहीं की गई बाइनरी से सुरक्षित रख सकती है.

Java, C++, और Python के नियमों को Starlark में माइग्रेट करना

Java, C++, और Python के नियमों को Starlark में माइग्रेट करना. इससे Bazel के उपयोगकर्ता, सिर्फ़ नियमों के सेट को फ़ॉर्क कर सकते हैं, न कि Bazel के बाइनरी कोडबेस को. इससे उपयोगकर्ता

  • ज़रूरत के हिसाब से नियमों को अपडेट और पसंद के मुताबिक बनाना
  • Bazel के बिना नियमों को अपडेट करना

Bazel-JetBrains* IntelliJ IDEA के लिए सहायता

IntelliJ प्लग इन के अपडेट, जो JetBrains प्लग इन के नए वर्शन के साथ काम करते हैं.

इस रोडमैप में टारगेट के स्नैपशॉट दिए गए हैं. इन्हें गारंटी के तौर पर नहीं लिया जाना चाहिए. डेवलपर और ग्राहकों के सुझाव/राय या बाज़ार में नए अवसरों के हिसाब से, प्राथमिकताओं में बदलाव किया जा सकता है.

नई सुविधाओं के बारे में सूचना पाने के लिए, Google Groups कम्यूनिटी में शामिल हों. इसमें इस रोडमैप के अपडेट भी शामिल हैं.

*कॉपीराइट © 2022 JetBrains s.r.o. JetBrains और IntelliJ, JetBrains s.r.o के रजिस्टर किए गए ट्रेडमार्क हैं