MODULE.bazel फ़ाइलें

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; ज़रूरी है
उस मॉड्यूल का नाम जिसे सीधे तौर पर डिपेंडेंसी के तौर पर जोड़ा जाना है.
version string; डिफ़ॉल्ट रूप से ''
होता है मॉड्यूल का वह वर्शन जिसे सीधे तौर पर डिपेंडेंसी के तौर पर जोड़ा जाना है.
max_compatibility_level int; डिफ़ॉल्ट रूप से -1
होता है अब इस्तेमाल नहीं किया जा सकता. अब यह सुविधा काम नहीं करती और इसका कोई असर नहीं होता.
repo_name string या None; डिफ़ॉल्ट वैल्यू ''
है यह डिपेंडेंसी दिखाने वाले बाहरी रेपो का नाम है. यह डिफ़ॉल्ट रूप से मॉड्यूल का नाम होता है. इस डिपेंडेंसी को "nodep" डिपेंडेंसी बनाने के लिए, इसे None पर सेट किया जा सकता है: इस मामले में, इस bazel_dep स्पेसिफ़िकेशन का पालन सिर्फ़ तब किया जाता है, जब टारगेट मॉड्यूल पहले से ही किसी अन्य तरीके से डिपेंडेंसी ग्राफ़ में मौजूद हो.
dev_dependency bool; डिफ़ॉल्ट रूप से False
होता है अगर यह सही पर सेट है, तो इस डिपेंडेंसी को अनदेखा कर दिया जाएगा. ऐसा तब होगा, जब मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या --ignore_dev_dependency चालू है.

flag_alias

None flag_alias(*, name, starlark_flag)

यह कमांड-लाइन फ़्लैग --foo को Starlark फ़्लैग --@repo//defs:foo पर मैप करता है. Bazel, $ bazel build //target --foo के सभी इंस्टेंस को $ bazel build //target --@repo//defs:foo में बदल देता है.

पैरामीटर

पैरामीटर ब्यौरा
name string; ज़रूरी है
फ़्लैग का नाम.
starlark_flag string; ज़रूरी है
यह Starlark फ़्लैग का लेबल है, जिसे एलियास करना है.

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() का इस्तेमाल कर सकते हैं.

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

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 ज़रूरी है
एक्सटेंशन में इंजेक्ट किए जाने वाले नए रिपॉज़िटरी, जहां वैल्यू, मौजूदा मॉड्यूल के स्कोप में मौजूद रिपॉज़िटरी के नाम हैं. साथ ही, कुंजियां वे नाम हैं जिनके तहत वे एक्सटेंशन में दिखेंगी.

मान्य आइडेंटिफ़ायर नहीं हैं, उन्हें लिटरल डिक्शनरी के ज़रिए तय किया जा सकता है.इसे अतिरिक्त कीवर्ड आर्ग्युमेंट के तौर पर पास किया जाता है. उदाहरण के लिए, inject_repo(extension_proxy, **{"foo.2": "foo"}).

local_path_override

None local_path_override(*, module_name, path)

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

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

पैरामीटर

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

मॉड्यूल

None module(*, name='', version='', compatibility_level=-1, repo_name='', bazel_compatibility=[])

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

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

पैरामीटर

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

मान्य आइडेंटिफ़ायर नहीं हैं, उन्हें लिटरल डिक्शनरी के ज़रिए तय किया जा सकता है.इसे अतिरिक्त कीवर्ड आर्ग्युमेंट के तौर पर पास किया जाता है. उदाहरण के लिए, override_repo(extension_proxy, **{"foo.2": "foo"}).

register_execution_platforms

None register_execution_platforms(*platform_labels, dev_dependency=False)

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

पैरामीटर

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

register_toolchains

None register_toolchains(*toolchain_labels, dev_dependency=False)

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

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

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

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

patch_strip int; डिफ़ॉल्ट वैल्यू 0
है यह Unix patch के --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(extension_proxy, **{"foo.2": "foo"}).

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 फ़ाइल से एक्सपोर्ट किया जाना चाहिए.