MODULE.bazel फ़ाइलें

समस्या की शिकायत करें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

सदस्य

archive_override

None archive_override(module_name, **kwargs)

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

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

पैरामीटर

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

bazel_dep

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

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

पैरामीटर

पैरामीटर ब्यौरा
name string; required
उस मॉड्यूल का नाम जिसे सीधे तौर पर डिपेंडेंसी के तौर पर जोड़ा जाना है.
version string; डिफ़ॉल्ट रूप से ''
होता है मॉड्यूल का वह वर्शन जिसे सीधे तौर पर डिपेंडेंसी के तौर पर जोड़ा जाना है.
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 repo नियम को फ़ॉरवर्ड किए जाते हैं. ध्यान दें कि name एट्रिब्यूट की वैल्यू नहीं दी जानी चाहिए. इसके बजाय, module_name का इस्तेमाल करें.

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

None include(label)

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

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

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

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

पैरामीटर

पैरामीटर ब्यौरा
label string; required
The label pointing to the file to include. लेबल, मुख्य रेपो में मौजूद किसी फ़ाइल की ओर ले जाना चाहिए. दूसरे शब्दों में कहें, तो यह डबल स्लैश (//) से शुरू होना चाहिए. फ़ाइल का नाम .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 string; ज़रूरी है
यह उस डायरेक्ट्री का पाथ है जिसमें यह मॉड्यूल मौजूद है.

मॉड्यूल

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

यह Bazel मॉड्यूल की कुछ प्रॉपर्टी के बारे में बताता है. यह मॉड्यूल, मौजूदा 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 string; डिफ़ॉल्ट रूप से ''
होता है इस मॉड्यूल को दिखाने वाली रिपॉज़िटरी का नाम, जैसा कि मॉड्यूल में दिखता है. डिफ़ॉल्ट रूप से, रेपो का नाम मॉड्यूल का नाम होता है. इसे उन प्रोजेक्ट के लिए तय किया जा सकता है जो अपने लिए ऐसे रेपो के नाम का इस्तेमाल कर रहे हैं जो उसके मॉड्यूल के नाम से अलग है. इससे माइग्रेशन की प्रोसेस आसान हो जाती है.
bazel_compatibility strings का इटरेबल; डिफ़ॉल्ट रूप से []
होता है यह 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 strings का इटरेबल; ज़रूरी है
इससे साफ़ तौर पर यह पता चलता है कि कौनसे वर्शन एक साथ इस्तेमाल किए जा सकते हैं. ये वर्शन, डिपेंडेंसी ग्राफ़ में पहले से मौजूद होने चाहिए. इस मॉड्यूल पर निर्भरता रखने वाले मॉड्यूल को, उसी कंपैटिबिलिटी लेवल पर, अनुमति वाले सबसे नए वर्शन में "अपग्रेड" कर दिया जाएगा. वहीं, जिन मॉड्यूल का वर्शन, उसी कंपैटिबिलिटी लेवल पर अनुमति वाले किसी भी वर्शन से ज़्यादा है उनमें गड़बड़ी होगी.
registry string; डिफ़ॉल्ट रूप से ''
होता है यह मॉड्यूल के लिए रजिस्ट्री को बदलता है. रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए.

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 sequence of strings; ज़रूरी है
रजिस्टर करने के लिए टारगेट पैटर्न.

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

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

पैरामीटर

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

single_version_override

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

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

पैरामीटर

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

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

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

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

patch_strip int; डिफ़ॉल्ट तौर पर 0
होता है यह Unix पैच के --strip आर्ग्युमेंट की तरह ही होता है.

use_extension

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

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

पैरामीटर

पैरामीटर ब्यौरा
extension_bzl_file string; ज़रूरी है
यह मॉड्यूल एक्सटेंशन को तय करने वाली Starlark फ़ाइल का लेबल है.
extension_name string; ज़रूरी है
इस्तेमाल किए जाने वाले मॉड्यूल एक्सटेंशन का नाम. इस नाम वाले सिंबल को 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 string; ज़रूरी है
यह Starlark फ़ाइल का लेबल है. इसमें रिपॉज़िटरी के नियम की जानकारी होती है.
repo_rule_name string; required
इस्तेमाल किए जाने वाले रेपो नियम का नाम. इस नाम वाले सिंबल को Starlark फ़ाइल से एक्सपोर्ट किया जाना चाहिए.