MODULE.bazel फ़ाइलें

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

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

सदस्य

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

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

पैरामीटर

पैरामीटर ब्यौरा
module_name ज़रूरी है
यह Bazel मॉड्यूल डिपेंडेंसी का नाम है, जिस पर इस ओवरराइड को लागू करना है.
urls string; या strings का इटरेबल; ज़रूरी है
संग्रह के यूआरएल; ये http(s):// या file:// यूआरएल हो सकते हैं.
integrity डिफ़ॉल्ट वैल्यू ''
है यह संग्रह की फ़ाइल का अनुमानित चेकसम है. यह सब-रिसोर्स इंटिग्रिटी फ़ॉर्मैट में होता है.
strip_prefix डिफ़ॉल्ट वैल्यू ''
है यह डायरेक्ट्री का ऐसा प्रीफ़िक्स होता है जिसे निकाली गई फ़ाइलों से हटा दिया जाता है.
patches string का इटरेटबल; डिफ़ॉल्ट रूप से []
होता है यह उन लेबल की सूची होती है जो इस मॉड्यूल के लिए लागू किए जाने वाले पैच फ़ाइलों की ओर इशारा करते हैं. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये नियम, सूची में दिए गए क्रम के हिसाब से लागू होते हैं.
patch_cmds strings का इटरेबल; डिफ़ॉल्ट रूप से []
होता है पैच लागू होने के बाद, Linux/Macos पर लागू की जाने वाली बैश कमांड का क्रम.
patch_strip डिफ़ॉल्ट वैल्यू 0
है यह Unix patch के --strip आर्ग्युमेंट के बराबर है.

bazel_dep

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

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

पैरामीटर

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

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')

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

पैरामीटर

पैरामीटर ब्यौरा
module_name ज़रूरी है
यह Bazel मॉड्यूल डिपेंडेंसी का नाम है, जिस पर इस ओवरराइड को लागू करना है.
remote ज़रूरी है
रिमोट Git रिपॉज़िटरी का यूआरएल.
commit डिफ़ॉल्ट वैल्यू ''
वह कमिट है जिसे चेक आउट किया जाना चाहिए.
patches string का इटरेटबल; डिफ़ॉल्ट रूप से []
होता है यह उन लेबल की सूची होती है जो इस मॉड्यूल के लिए लागू किए जाने वाले पैच फ़ाइलों की ओर इशारा करते हैं. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये नियम, सूची में दिए गए क्रम के हिसाब से लागू होते हैं.
patch_cmds strings का इटरेबल; डिफ़ॉल्ट रूप से []
होता है पैच लागू होने के बाद, Linux/Macos पर लागू की जाने वाली बैश कमांड का क्रम.
patch_strip डिफ़ॉल्ट वैल्यू 0
है यह Unix patch के --strip आर्ग्युमेंट के बराबर है.
init_submodules डिफ़ॉल्ट वैल्यू False
है इससे यह तय होता है कि फ़ेच किए गए रेपो में मौजूद git सबमॉड्यूल को बार-बार शुरू किया जाना चाहिए या नहीं.
strip_prefix डिफ़ॉल्ट वैल्यू ''
है यह डायरेक्ट्री का ऐसा प्रीफ़िक्स होता है जिसे निकाली गई फ़ाइलों से हटा दिया जाता है. इसका इस्तेमाल, git repo की किसी सबडायरेक्ट्री को टारगेट करने के लिए किया जा सकता है. ध्यान दें कि सबडायरेक्ट्री में अपनी `MODULE.bazel` फ़ाइल होनी चाहिए. साथ ही, उसका मॉड्यूल का नाम वही होना चाहिए जो `git_override` को पास किए गए `module_name` आर्ग्युमेंट का नाम है.

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

None include(label)

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

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

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

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

पैरामीटर

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

inject_repo

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

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

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

पैरामीटर

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

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

local_path_override

None local_path_override(module_name, path)

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

पैरामीटर

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

मॉड्यूल

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

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

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

पैरामीटर

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

override_repo

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

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

नई रेपो जोड़ने के लिए, inject_repo का इस्तेमाल करें.

पैरामीटर

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

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

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

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

पैरामीटर

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

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

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

पैरामीटर

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

single_version_override

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

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

पैरामीटर

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

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

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

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

patch_strip डिफ़ॉल्ट वैल्यू 0
है यह Unix patch के --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 डिफ़ॉल्ट वैल्यू False
है अगर सही पर सेट है, तो मॉड्यूल एक्सटेंशन के इस इस्तेमाल को अनदेखा कर दिया जाएगा. ऐसा तब होगा, जब मौजूदा मॉड्यूल रूट मॉड्यूल न हो या `--ignore_dev_dependency` चालू हो.
isolate डिफ़ॉल्ट रूप से False
होता है एक्सपेरिमेंट के तौर पर उपलब्ध है. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इसके भरोसे न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, ---experimental_isolated_extension_usages
को सेट करना होगा. अगर यह सही है, तो मॉड्यूल एक्सटेंशन का यह इस्तेमाल, इस और अन्य मॉड्यूल में, इस्तेमाल के अन्य सभी तरीकों से अलग रहेगा. इस सुविधा के लिए बनाए गए टैग, अन्य सुविधाओं पर असर नहीं डालते. साथ ही, इस सुविधा के लिए एक्सटेंशन से जनरेट की गई रिपॉज़िटरी, एक्सटेंशन से जनरेट की गई अन्य सभी रिपॉज़िटरी से अलग होगी.

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

use_repo

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

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

पैरामीटर

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

मान्य आइडेंटिफ़ायर नहीं होने वाली कुंजियों को, लिटरल dict के ज़रिए तय किया जा सकता है.इसे अतिरिक्त कीवर्ड आर्ग्युमेंट के तौर पर पास किया जाता है. उदाहरण के लिए, 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 ज़रूरी है
यह repo नियम को तय करने वाली Starlark फ़ाइल का लेबल है.
repo_rule_name ज़रूरी है
इस्तेमाल किए जाने वाले रेपो नियम का नाम. इस नाम वाले सिंबल को Starlark फ़ाइल से एक्सपोर्ट किया जाना चाहिए.