Bazel का रोडमैप

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

खास जानकारी

आपकी ज़रूरतों को ध्यान में रखते हुए, Baze प्रोजेक्ट को लगातार बेहतर बनाया जा रहा है. इसलिए, हम साल 2024 के अपने अपडेट को आपके साथ शेयर करना चाहते हैं.

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

बेज़ल 8.0 रिलीज़

हम साल 2024 के आखिर में, Basel 8.0 को लंबे समय तक सहायता (एलटीएस) में शामिल करने की योजना बना रहे हैं. ये सुविधाएं लागू की जाएंगी.

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

Bzlmod ट्रांज़िटिव डिपेंडेंसी का अपने-आप समाधान करता है. इससे प्रोजेक्ट तेज़ी से बढ़ते हुए और संसाधनों की कम खपत करते हुए बड़े पैमाने पर काम करते हैं.

Basel 8 की सुविधा के साथ, हम डिफ़ॉल्ट रूप से WorkSPACE की सुविधा बंद कर देंगे. हालांकि, --enable_workspace का इस्तेमाल करके इसे चालू किया जा सकेगा. हालांकि, Ba बाद 9 में Workspace की सदस्यता रद्द हो जाएगी. Baज़ल 7.1 की शुरुआत के साथ, आपके पास --noenable_workspace को नए तरीके में ऑप्ट इन करने के लिए सेट करने का विकल्प है.

Baज़ल 8.0 में, Basel के एक्सटर्नल डिपेंडेंसी मैनेजमेंट के काम करने के तरीके में कई सुधार किए गए हैं. इनमें ये शामिल हैं:

  • WorkSPACE की सुविधाओं को पूरी तरह से बंद करने के लिए, नए फ़्लैग --enable_workspace को false पर सेट किया जा सकता है.
  • एपीआई देखने के लिए नई डायरेक्ट्री (#21435 देखें, इसे Baज़ेन में उपलब्ध कराया गया 7.1 था).
  • डिपेंडेंसी वर्शन के अपडेट में, फ़ाइलों को कैश मेमोरी में सेव करने के बेहतर विकल्प के लिए, कैननिकल रिपॉज़िटरी के नाम जनरेट करने की बेहतर स्कीम. (#21316, बेज़ेल में शिप किया गया 7.1)
  • बेहतर शेयर की गई रिपॉज़िटरी कैश मेमोरी (#12227 देखें).
  • वेंडर और ऑफ़लाइन मोड सहायता — इससे उपयोगकर्ता, पहले से डाउनलोड की गई डिपेंडेंसी के साथ बिल्ड चला सकते हैं (#19563 देखें).
  • लॉक फ़ाइलों में मर्ज करने के विरोध कम किए गए (#20396).
  • सेगमेंट किया गया MODULE.bazu (#17880)
  • मॉड्यूल एक्सटेंशन से जनरेट की गई रिपॉज़िटरी को बदलने की अनुमति दें (#19301)
  • बेहतर दस्तावेज़ (उदाहरण के लिए, #18030, #15821) और माइग्रेशन गाइड और माइग्रेशन टूल की सुविधा.

रिमोट एक्ज़ीक्यूशन के सुधार

  • एसिंक्रोनस एक्ज़ीक्यूशन के लिए सहायता जोड़ें और --jobs फ़्लैग के साथ पैरललिज़्म को बढ़ाकर, रिमोट एक्ज़ीक्यूशन की रफ़्तार बढ़ाएं.
  • एक नए कॉम्पैक्ट एक्ज़ीक्यूशन लॉग की मदद से, कैश मेमोरी में सेव हुई कैश मेमोरी के गलत होने को आसानी से डीबग किया जा सकता है. इससे, इसका साइज़ 100 गुना कम हो जाता है और इसका रनटाइम, बहुत ज़्यादा कम हो जाता है (#18643 देखें).
  • डिस्क की कैश मेमोरी के लिए, ग़ैर-ज़रूरी चीज़ें इकट्ठा करने की सुविधा लागू करें (#5139 देखें).
  • आर्बिट्रेरी बिल्ड आउटपुट को लेज़ी डाउनलोड करने के लिए, रिमोट आउटपुट सेवा को लागू करें (#20933 देखें).

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

Android, C++, Java, और Python से जुड़े नियमों की सूची को, खास तौर पर बनाए गए डेटा स्टोर करने की जगहों पर पूरी तरह से माइग्रेट करें. साथ ही, इन्हें Basel के वर्शन से अलग कर दें. इससे, बैज के उपयोगकर्ताओं और नियम लिखने वाले लोगों को ये काम करने में मदद मिलती है

  • बेज़ल से अलग नियमों को अलग-अलग अपडेट करें.
  • ज़रूरत के हिसाब से नियमों को अपडेट करें और उनमें अपने हिसाब से बदलाव करें.

नियमों के सेट की नई जगह bazelbuild/rules_android, rules_cc, rules_java, rules_python, और google/protobuf होगी. rules_proto को बंद किया जाएगा.

बेज़ल 8, अस्थायी माइग्रेशन फ़्लैग उपलब्ध कराएगा, जिसमें अपने-आप उन नियमों का इस्तेमाल किया जाएगा जो पहले के रिपॉज़िटरी (डेटा स्टोर की जगह) से बाइनरी का हिस्सा थे. इन नियम-सेट के सभी उपयोगकर्ताओं से उम्मीद की जाती है कि वे अपने डेटा स्टोर करने की जगह पर निर्भर करेंगे और उन्हें उन नियमों की तरह ही लोड करेंगे जो कभी बैजल का हिस्सा नहीं थे.

Bazz 8, एक्सटेंशन को लागू करने वाले मौजूदा नियमों और सबरुल एपीआई को भी बेहतर बनाएगा और उन्हें प्रयोग के तौर पर उपलब्ध नहीं के तौर पर मार्क करेगा.

Starlark में किए गए सुधार

  • प्रतीकात्मक मैक्रो मैक्रो को लिखने का एक नया तरीका है जो BUILD उपयोगकर्ताओं, मैक्रो लेखकों और टूल के लिए ज़्यादा अनुकूल है. लेगसी मैक्रो की तुलना में, बेज़ेल के पास सिर्फ़ सीमित जानकारी होती है. सिम्बॉलिक मैक्रो की मदद से, उपयोगकर्ता सामान्य गलतियों से बच सकते हैं और सबसे सही तरीके लागू कर सकते हैं.
  • पैकेज फ़ाइनलाइज़र एक ऐसी सुविधा है जिसका सुझाव है कि ज़रूरत के हिसाब से पैकेज की पुष्टि करने वाले लॉजिक के लिए, फ़र्स्ट-क्लास सहायता जोड़ी जा सकती है. इन दिशा-निर्देशों की मदद से, native.existing_rules() का बहिष्कार किया जा सकता है.

कॉन्फ़िगर करने की क्षमता

  • आउटपुट पाथ मैपिंग लगातार काम कर रही है: रिमोट कैश की बेहतर परफ़ॉर्मेंस देने और ट्रांज़िशन का इस्तेमाल करने वाले रूल डिज़ाइनर के लिए, तेज़ी से काम करने का वादा करती हैं.
  • दिए गए --platforms के लिए सही बिल्ड फ़्लैग अपने-आप सेट करें.
  • प्रोजेक्ट के साथ काम करने वाले फ़्लैग के कॉम्बिनेशन तय करें और डिफ़ॉल्ट फ़्लैग वाले अपने-आप टारगेट बनाएं. इसके लिए, बैजर सेट करने की ज़रूरत नहीं है.
  • बिल्ड फ़्लैग बदलने पर हर बार बिल्ड विश्लेषण को फिर से न करें.

प्रोजेक्ट स्काईफ़ोकस - रिटेन किए गए डेटा स्ट्रक्चर को कम करना

ऐप्लिकेशन के बिल्ड को तेज़ी से बढ़ाने के लिए, Bagel का रैम काफ़ी मायने रखता है. हालांकि, डेवलपर अक्सर सोर्स फ़ाइलों का एक छोटा सबसेट बदलते हैं. उदाहरण के लिए, शायद कभी एक बाहरी डिपेंडेंसी नहीं होती. Skyफ़ोकस के साथ, Basel, ग़ैर-ज़रूरी और इंक्रीमेंटल स्थिति को एक्सपेरिमेंट के तौर पर उपलब्ध कराता है. साथ ही, बेज़ल की मेमोरी फ़ुटप्रिंट को कम करने के साथ-साथ, बिल्ड को पहले जैसा ही तेज़ करता है.

शुरुआती स्कोप का मकसद, सिर्फ़ सेव की गई हीप मेट्रिक को बेहतर बनाना है. हीप कम करने की संभावना सबसे ज़्यादा है. हालांकि, शुरुआती स्कोप में इसे शामिल नहीं किया गया है.

अन्य सुविधाएं

  • मोबाइल इंस्टॉल v3, Android ऐप्लिकेशन को तेज़ी से डिप्लॉय करने का आसान और बेहतर तरीका है.
  • डेटा स्टोर करने की जगह की कैश मेमोरी और Basel के install_base के लिए गै़रबेज कलेक्शन.
  • सैंडबॉक्सिंग ओवरहेड कम किया गया.

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

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

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

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

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