MODULE.bazel फ़ाइलें

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

MODULE.bazel फ़ाइलों में उपलब्ध तरीके.

सदस्य

archive_override

None archive_override(module_name, **kwargs)

इससे पता चलता है कि यह डिपेंडेंसी, रजिस्ट्री के बजाय किसी खास जगह पर मौजूद संग्रहित फ़ाइल (zip, gzip वगैरह) से आनी चाहिए. असल में, इस डिपेंडेंसी को http_archive नियम के ज़रिए बैक किया जाएगा.

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

पैरामीटर

पैरामीटर ब्यौरा
module_name string; ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
kwargs ज़रूरी
बाकी सभी आर्ग्युमेंट, http_archive repo के लिए बने नियम पर भेजे जाते हैं. ध्यान दें कि name एट्रिब्यूट का इस्तेमाल नहीं किया जाना चाहिए. इसके बजाय, module_name का इस्तेमाल करें.

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

किसी दूसरे Bazel मॉड्यूल पर सीधे तौर पर निर्भरता का एलान करता है.

पैरामीटर

पैरामीटर ब्यौरा
name स्ट्रिंग; ज़रूरी है
डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल का नाम.
version स्ट्रिंग; डिफ़ॉल्ट तौर पर ''
होता है मॉड्यूल का वह वर्शन जो सीधे डिपेंडेंसी के तौर पर जोड़ा जाना है.
max_compatibility_level int; डिफ़ॉल्ट तौर पर -1
होता है डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल के लिए, ज़्यादा से ज़्यादा compatibility_level इस्तेमाल किया जा सकता है. मॉड्यूल के वर्शन से पता चलता है कि कम से कम compatibility_level क्या है. साथ ही, अगर इस एट्रिब्यूट की वैल्यू नहीं दी गई है, तो ज़्यादा से ज़्यादा compatibility_level क्या है.
repo_name string; डिफ़ॉल्ट तौर पर, इसकी वैल्यू ''
होती है इस डिपेंडेंसी को दिखाने वाले बाहरी रिपॉज़िटरी का नाम. यह डिफ़ॉल्ट रूप से मॉड्यूल का नाम होता है.
dev_dependency bool; डिफ़ॉल्ट तौर पर, इसकी वैल्यू False
होती है अगर इसकी वैल्यू 'सही' है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, इस डिपेंडेंसी को अनदेखा कर दिया जाएगा.

git_override

None git_override(module_name, **kwargs)

इससे पता चलता है कि यह डिपेंडेंसी, रजिस्ट्री के बजाय किसी Git रिपॉज़िटरी में मौजूद किसी खास कमिट से आनी चाहिए. असल में, इस डिपेंडेंसी को git_repository नियम के ज़रिए बैक किया जाएगा.

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

पैरामीटर

पैरामीटर ब्यौरा
module_name string; ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
kwargs ज़रूरी है
बाकी सभी आर्ग्युमेंट, git_repository के तहत मौजूद रिपॉज़िटरी नियम पर भेजे जाते हैं. ध्यान दें कि name एट्रिब्यूट का इस्तेमाल नहीं किया जाना चाहिए. इसके बजाय, module_name का इस्तेमाल करें.

शामिल होते हैं

None include(label)

इसमें MODULE.bazel जैसी किसी दूसरी फ़ाइल का कॉन्टेंट शामिल होता है. असल में, include() वैसा ही काम करता है जैसे शामिल की गई फ़ाइल को टेक्स्ट के तौर पर include() कॉल की जगह पर रखा गया हो. हालांकि, वैरिएबल बाइंडिंग (जैसे कि use_extension के लिए इस्तेमाल की गई) सिर्फ़ उस फ़ाइल में दिखती हैं जिसमें वे मौजूद होती हैं, न कि शामिल की गई या शामिल करने वाली किसी भी फ़ाइल में.

सिर्फ़ रूट मॉड्यूल में include() का इस्तेमाल किया जा सकता है. अगर bazel_dep की MODULE फ़ाइल में include() का इस्तेमाल किया जाता है, तो यह गड़बड़ी है.

इसमें सिर्फ़ मुख्य रिपॉज़िटरी में मौजूद फ़ाइलें शामिल की जा सकती हैं.

include() की मदद से, रूट मॉड्यूल फ़ाइल को कई हिस्सों में बांटा जा सकता है. इससे, बड़ी MODULE.bazel फ़ाइल से बचा जा सकता है या अलग-अलग सेमैंटिक सेगमेंट के लिए ऐक्सेस कंट्रोल को बेहतर तरीके से मैनेज किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
label string; ज़रूरी है
शामिल की जाने वाली फ़ाइल का लेबल. लेबल, मुख्य रिपॉज़िटरी में मौजूद किसी फ़ाइल पर ले जाना चाहिए. दूसरे शब्दों में, यह डबल स्लैश (//) से शुरू होना चाहिए. फ़ाइल का नाम .MODULE.bazel पर खत्म होना चाहिए और . से शुरू नहीं होना चाहिए.

inject_repo

None inject_repo(extension_proxy, *args, **kwargs)

दिए गए मॉड्यूल एक्सटेंशन में एक या उससे ज़्यादा नए रिपॉज़िटरी इंजेक्ट करता है. अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या --ignore_dev_dependency चालू है, तो इसे अनदेखा कर दिया जाता है.

किसी मौजूदा रिपॉज़िटरी को बदलने के लिए, override_repo का इस्तेमाल करें.

पैरामीटर

पैरामीटर ब्यौरा
extension_proxy module_extension_proxy; ज़रूरी है
यह use_extension कॉल से मिला, मॉड्यूल एक्सटेंशन प्रॉक्सी ऑब्जेक्ट है.
args ज़रूरी है
मौजूदा मॉड्यूल को दिखने वाले ऐसे रिपॉज़िटरी जिन्हें उसी नाम से एक्सटेंशन में इंजेक्ट किया जाना चाहिए.
kwargs ज़रूरी है
एक्सटेंशन में इंजेक्ट करने के लिए नए रिपॉज़िटरी, जहां वैल्यू मौजूदा मॉड्यूल के दायरे में रिपॉज़िटरी के नाम हैं और कुंजियां वे नाम हैं जो एक्सटेंशन में दिखेंगी.

local_path_override

None local_path_override(module_name, path)

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

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

पैरामीटर

पैरामीटर ब्यौरा
module_name string; ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
path स्ट्रिंग; ज़रूरी है
उस डायरेक्ट्री का पाथ जहां यह मॉड्यूल मौजूद है.

मॉड्यूल

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

मौजूदा Bazel repo से दिखाए गए Bazel मॉड्यूल की कुछ प्रॉपर्टी का एलान करता है. ये प्रॉपर्टी, मॉड्यूल के ज़रूरी मेटाडेटा (जैसे, नाम और वर्शन) होती हैं या मौजूदा मॉड्यूल और उस पर निर्भर मॉड्यूल के व्यवहार पर असर डालती हैं.

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

पैरामीटर

पैरामीटर ब्यौरा
name string; डिफ़ॉल्ट रूप से ''
होता है मॉड्यूल का नाम. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है. मॉड्यूल के मान्य नाम में: 1) सिर्फ़ अंग्रेज़ी के छोटे अक्षर (a-z), अंक (0-9), बिंदु (.), हाइफ़न (-), और अंडरस्कोर (_) होने चाहिए; 2) नाम किसी छोटे अक्षर से शुरू होना चाहिए; 3) नाम के आखिर में कोई छोटा अक्षर या अंक होना चाहिए.
version string; डिफ़ॉल्ट रूप से ''
होता है मॉड्यूल का वर्शन. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है. वर्शन, SemVer फ़ॉर्मैट में होना चाहिए. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
compatibility_level int; डिफ़ॉल्ट तौर पर 0
होता है मॉड्यूल का कम्पैटबिलिटी लेवल; जब भी कोई ऐसा बड़ा बदलाव किया जाता है जो कम्पैटबिलिटी के लिहाज़ से सही नहीं होता, तो इसे बदल दिया जाना चाहिए. यह SemVer के हिसाब से, मॉड्यूल का "मुख्य वर्शन" होता है. हालांकि, यह वर्शन स्ट्रिंग में एम्बेड नहीं होता, बल्कि एक अलग फ़ील्ड के तौर पर मौजूद होता है. अलग-अलग वर्शन के साथ काम करने वाले मॉड्यूल, वर्शन रिज़ॉल्यूशन में ऐसे शामिल होते हैं जैसे कि वे अलग-अलग नाम वाले मॉड्यूल हों. हालांकि, आखिरी डिपेंडेंसी ग्राफ़ में एक ही नाम वाले, लेकिन अलग-अलग वर्शन के साथ काम करने वाले कई मॉड्यूल शामिल नहीं किए जा सकते. ऐसा तब तक नहीं किया जा सकता, जब तक multiple_version_override लागू न हो. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें.
repo_name स्ट्रिंग; डिफ़ॉल्ट रूप से ''
होता है इस मॉड्यूल को दिखाने वाले रिपॉज़िटरी का नाम, जैसा कि मॉड्यूल में दिखता है. डिफ़ॉल्ट रूप से, मॉड्यूल का नाम ही रिपॉज़िटरी का नाम होता है. यह जानकारी उन प्रोजेक्ट के लिए दी जा सकती है जो अपने लिए किसी ऐसे रिपॉज़िटरी का इस्तेमाल कर रहे हैं जो उनके मॉड्यूल के नाम से अलग है. इससे, प्रोजेक्ट को आसानी से माइग्रेट किया जा सकता है.
bazel_compatibility स्ट्रिंग की सूची, जो दोहराई जा सकती है; डिफ़ॉल्ट तौर पर []
होता है Bazel के उन वर्शन की सूची जिनसे उपयोगकर्ता यह तय कर सकते हैं कि इस मॉड्यूल के साथ कौनसे Bazel वर्शन काम करते हैं. इससे डिपेंडेंसी रिज़ॉल्यूशन पर कोई असर नहीं पड़ता. हालांकि, bzlmod इस जानकारी का इस्तेमाल करके यह जांच करेगा कि आपका मौजूदा Bazel वर्शन काम करता है या नहीं. इस वैल्यू का फ़ॉर्मैट, कुछ पाबंदी वाली वैल्यू की स्ट्रिंग होती है, जिसे कॉमा लगाकर अलग किया जाता है. तीन तरह की पाबंदियां इस्तेमाल की जा सकती हैं: <=X.X.X: Bazel का वर्शन X.X.X के बराबर या उससे पुराना होना चाहिए. इसका इस्तेमाल तब किया जाता है, जब नए वर्शन में कोई ऐसा बदलाव हो जो काम न करता हो. >=X.X.X: Bazel का वर्शन X.X.X या उसके बाद का होना चाहिए.इसका इस्तेमाल तब किया जाता है, जब आपको कुछ ऐसी सुविधाओं का इस्तेमाल करना हो जो सिर्फ़ X.X.X के बाद से उपलब्ध हैं. -X.X.X: Bazel का वर्शन X.X.X काम नहीं करता. इसका इस्तेमाल तब किया जाता है, जब X.X.X वर्शन में कोई ऐसी गड़बड़ी होती है जिसकी वजह से आपका ऐप्लिकेशन काम नहीं करता. हालांकि, बाद के वर्शन में इस गड़बड़ी को ठीक कर दिया जाता है.

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

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

पैरामीटर

पैरामीटर ब्यौरा
module_name string; ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
versions स्ट्रिंग का Iterable; ज़रूरी है
साफ़ तौर पर उन वर्शन के बारे में बताता है जो एक साथ काम कर सकते हैं. ये वर्शन, डिपेंडेंसी ग्राफ़ के प्री-सिलेक्शन में पहले से मौजूद होने चाहिए. इस मॉड्यूल पर निर्भर डिपेंडेंसी को, काम करने के एक ही लेवल पर, अनुमति वाले सबसे नए वर्शन पर "अपग्रेड" कर दिया जाएगा. वहीं, अगर डिपेंडेंसी का वर्शन, काम करने के एक ही लेवल पर अनुमति वाले किसी भी वर्शन से ज़्यादा है, तो गड़बड़ी होगी.
registry स्ट्रिंग; डिफ़ॉल्ट तौर पर ''
होता है इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए.

override_repo

None override_repo(extension_proxy, *args, **kwargs)

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

नया रिपॉज़िटरी जोड़ने के लिए, इसके बजाय inject_repo का इस्तेमाल करें.

पैरामीटर

पैरामीटर ब्यौरा
extension_proxy module_extension_proxy; ज़रूरी है
यह use_extension कॉल से मिला, मॉड्यूल एक्सटेंशन प्रॉक्सी ऑब्जेक्ट है.
args ज़रूरी है
एक्सटेंशन में मौजूद वे रिपॉज़िटरी जिन्हें मौजूदा मॉड्यूल में मौजूद, एक ही नाम के रिपॉज़िटरी से बदला जाना चाहिए.
kwargs ज़रूरी है
एक्सटेंशन से जनरेट किए गए रिपॉज़िटरी पर लागू होने वाले बदलाव. यहां वैल्यू, मौजूदा मॉड्यूल के दायरे में रिपॉज़िटरी के नाम हैं और कुंजियां, उन रिपॉज़िटरी के नाम हैं जिन्हें एक्सटेंशन में बदल दिया जाएगा.

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

इस मॉड्यूल को चुनने पर, पहले से तय किए गए रनिंग प्लैटफ़ॉर्म को रजिस्टर करने के बारे में बताता है. ये टारगेट पैटर्न होने चाहिए. जैसे, @ या // से शुरू होने वाले पैटर्न. ज़्यादा जानकारी के लिए, टूलचेन रिज़ॉल्यूशन देखें. :all जैसे कई टारगेट तक फैलने वाले पैटर्न, नाम के हिसाब से वर्णमाला के क्रम में रजिस्टर किए जाएंगे.

पैरामीटर

पैरामीटर ब्यौरा
dev_dependency bool; डिफ़ॉल्ट तौर पर, इसकी वैल्यू False
होती है अगर यह सही है, तो मौजूदा मॉड्यूल रूट मॉड्यूल नहीं होने या `--ignore_dev_dependency` चालू होने पर, प्रोग्राम को चलाने वाले प्लैटफ़ॉर्म रजिस्टर नहीं किए जाएंगे.
platform_labels स्ट्रिंग का क्रम; ज़रूरी है
रजिस्टर करने के लिए टारगेट पैटर्न.

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

इस मॉड्यूल को चुनने पर, पहले से तय टूलचेन को रजिस्टर करने के लिए बताता है. ये टारगेट पैटर्न होने चाहिए. जैसे, @ या // से शुरू होने वाले पैटर्न. ज़्यादा जानकारी के लिए, टूलचेन रिज़ॉल्यूशन देखें. :all जैसे कई टारगेट में लागू होने वाले पैटर्न, टारगेट के नाम के हिसाब से वर्णमाला के क्रम में रजिस्टर किए जाएंगे, न कि टूलचेन लागू करने के नाम के हिसाब से.

पैरामीटर

पैरामीटर ब्यौरा
dev_dependency bool; डिफ़ॉल्ट तौर पर, इसकी वैल्यू False
होती है अगर इसकी वैल्यू 'सही' है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, टूलचेन रजिस्टर नहीं किए जाएंगे.
toolchain_labels स्ट्रिंग का क्रम; ज़रूरी है
रजिस्टर करने के लिए टारगेट पैटर्न.

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

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

पैरामीटर

पैरामीटर ब्यौरा
module_name string; ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
version स्ट्रिंग; डिफ़ॉल्ट तौर पर ''
होता है यह डिपेंडेंसी ग्राफ़ में, इस मॉड्यूल के एलान किए गए वर्शन को बदल देता है. दूसरे शब्दों में, इस मॉड्यूल को ओवरराइड किए गए वर्शन में "पिन" किया जाएगा. अगर आपको सिर्फ़ रजिस्ट्री या पैच को बदलना है, तो इस एट्रिब्यूट को छोड़ा जा सकता है.
registry स्ट्रिंग; डिफ़ॉल्ट तौर पर ''
होता है इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए.
patches स्ट्रिंग का Iterable; डिफ़ॉल्ट []
है इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं.

अगर किसी पैच से MODULE.bazel फ़ाइल में बदलाव होते हैं, तो ये बदलाव सिर्फ़ तब लागू होंगे, जब पैच फ़ाइल को रूट मॉड्यूल से उपलब्ध कराया गया हो.

patch_cmds स्ट्रिंग का Iterable; डिफ़ॉल्ट तौर पर []
होता है पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash कमांड का क्रम.

MODULE.bazel फ़ाइल में किए गए बदलाव लागू नहीं होंगे.

patch_strip int; डिफ़ॉल्ट 0
है यह यूनिक्स पैच के --strip आर्ग्युमेंट जैसा ही है.

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

मॉड्यूल एक्सटेंशन को दिखाने वाला प्रॉक्सी ऑब्जेक्ट दिखाता है. मॉड्यूल एक्सटेंशन टैग बनाने के लिए, इसके तरीकों को लागू किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
extension_bzl_file स्ट्रिंग; ज़रूरी है
मॉड्यूल एक्सटेंशन की जानकारी देने वाली Starlark फ़ाइल का लेबल.
extension_name स्ट्रिंग; ज़रूरी है
इस्तेमाल किए जाने वाले मॉड्यूल एक्सटेंशन का नाम. इस नाम वाला सिंबल, Starlark फ़ाइल से एक्सपोर्ट किया जाना चाहिए.
dev_dependency bool; डिफ़ॉल्ट तौर पर, इसकी वैल्यू False
होती है अगर यह वैल्यू 'सही' है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, मॉड्यूल एक्सटेंशन के इस इस्तेमाल को अनदेखा कर दिया जाएगा.
isolate bool; डिफ़ॉल्ट तौर पर, इसकी वैल्यू False
होती है एक्सपेरिमेंट के तौर पर उपलब्ध. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_isolated_extension_usages
को सेट करें. अगर यह 'सही' पर सेट है, तो मॉड्यूल एक्सटेंशन के इस इस्तेमाल को इस और अन्य मॉड्यूल, दोनों में अन्य सभी इस्तेमाल से अलग कर दिया जाएगा. इस तरह के इस्तेमाल के लिए बनाए गए टैग का असर, अन्य इस्तेमाल पर नहीं पड़ता. साथ ही, इस तरह के इस्तेमाल के लिए एक्सटेंशन से जनरेट की गई रिपॉज़िटरी, एक्सटेंशन से जनरेट की गई अन्य सभी रिपॉज़िटरी से अलग होंगी.

फ़िलहाल, यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है और सिर्फ़ फ़्लैग --experimental_isolated_extension_usages के साथ उपलब्ध है.

use_repo

None use_repo(extension_proxy, *args, **kwargs)

मौजूदा मॉड्यूल के दायरे में, दिए गए मॉड्यूल एक्सटेंशन से जनरेट किए गए एक या उससे ज़्यादा रिपॉज़िटरी इंपोर्ट करता है.

पैरामीटर

पैरामीटर ब्यौरा
extension_proxy module_extension_proxy; ज़रूरी है
यह use_extension कॉल से मिला, मॉड्यूल एक्सटेंशन प्रॉक्सी ऑब्जेक्ट है.
args ज़रूरी
इंपोर्ट किए जाने वाले रिपॉज़िटरी के नाम.
kwargs ज़रूरी है
मौजूदा मॉड्यूल के दायरे में, अलग-अलग नामों से इंपोर्ट करने के लिए कुछ रिपॉज़िटरी तय करता है. मौजूदा स्कोप में इस्तेमाल किए जाने वाले नाम, कुंजियों के तौर पर होने चाहिए. वहीं, वैल्यू के तौर पर, मॉड्यूल एक्सटेंशन से एक्सपोर्ट किए गए ओरिजनल नाम होने चाहिए.

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

एक प्रॉक्सी वैल्यू दिखाता है, जिसे MODULE.bazel फ़ाइल में एक या उससे ज़्यादा बार, रिपॉज़िटरी नियम के तौर पर सीधे तौर पर लागू किया जा सकता है. इस तरह से बनाए गए रिपॉज़िटरी, सिर्फ़ मौजूदा मॉड्यूल को दिखते हैं. ये रिपॉज़िटरी, प्रॉक्सी पर name एट्रिब्यूट का इस्तेमाल करके बताए गए नाम से दिखते हैं. प्रॉक्सी पर, इंप्लिसिट बूलियन dev_dependency एट्रिब्यूट का इस्तेमाल भी किया जा सकता है. इससे यह पता चलता है कि किसी खास रिपॉज़िटरी को सिर्फ़ तब बनाया जाना है, जब मौजूदा मॉड्यूल रूट मॉड्यूल हो.

पैरामीटर

पैरामीटर ब्यौरा
repo_rule_bzl_file स्ट्रिंग; ज़रूरी है
Starlark फ़ाइल का लेबल, जिसमें रिपॉज़िटरी के नियम के बारे में बताया गया हो.
repo_rule_name स्ट्रिंग; ज़रूरी है
इस्तेमाल किए जाने वाले repo नियम का नाम. इस नाम वाला सिंबल, Starlark फ़ाइल से एक्सपोर्ट किया जाना चाहिए.