Bazel का रोडमैप

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

खास जानकारी

हमारे 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 ऐप्लिकेशन का बिल्ड

मेनिफ़ेस्ट और रिसॉर्स मर्जर को v30.1.3 पर अपडेट कर दिया जाता है. इससे, Android ऐप्लिकेशन डेवलपर, टूल: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 पर, लागू हो रहे नियम_लाइसेंस को लागू करने की प्रक्रिया देखें.

साइन किए हुए बिल्ड

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

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

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

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

Bazel-JetBrains* IntelliJ IDEA सहायता

JetBrains प्लगिन के नए वर्शन के साथ काम करने के लिए, इंक्रीमेंटल IntelliJ प्लगिन अपडेट.

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

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

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