Bazel का रोडमैप

किसी समस्या की शिकायत करें सोर्स देखें रात · 7.2 · 7.1 · 7.0 · 6.5 · 6.4

खास जानकारी

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

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

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

हम Basel 8.0 को लंबे समय तक सहायता देने वाले प्लैटफ़ॉर्म के तौर पर, उपलब्ध कराने वाले हैं (LTS) आपको साल 2024 के आखिर में मिले. ये सुविधाएं लागू की जाएंगी.

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

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

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

Basel 8.0 में Bazu का एक्सटर्नल डिपेंडेंसी मैनेजमेंट में ये सुविधाएं शामिल हैं:

  • नए फ़्लैग --enable_workspace को false पर सेट किया जा सकता है, ताकि इसे पूरी तरह से सेट किया जा सके Workspace की सुविधा बंद करें.
  • एपीआई देखने के लिए नई डायरेक्ट्री (यहां देखें #21435, बेज़ल में शिप किया गया 7.1).
  • कैननिकल रिपॉज़िटरी के नाम जनरेट करने की बेहतर स्कीम डिपेंडेंसी वर्शन के अपडेट में कार्रवाइयों को कैश मेमोरी में सेव करने की सुविधा. (#21316, Basel में शिप किया गया 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 है को रोक दिया जाएगा.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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