MODULE.bazel फ़ाइलें

समस्या की शिकायत करें

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

पैसे चुकाकर बने सदस्यों के लिए

archive_override

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

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

पैरामीटर

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

bazel_dep

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

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

पैरामीटर

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

git_override

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

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

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
module_name ज़रूरी है
इस बदलाव को लागू करने के लिए, Baze मॉड्यूल की डिपेंडेंसी का नाम.
remote ज़रूरी है
रिमोट Git रिपॉज़िटरी का यूआरएल.
commit ''डिफ़ॉल्ट है
तय की गई कम से कम वैल्यू, जिसकी जांच की जानी चाहिए.
patches स्ट्रिंग में बदलाव किया जा सकता है. डिफ़ॉल्ट रूप से []
लेबल की ऐसी सूची होती है जो पैच फ़ाइलों के बारे में बताती है, ताकि इस मॉड्यूल को लागू किया जा सके. पैच फ़ाइलें टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू किए जाते हैं.
patch_cmds string में बदलाव किया जा सकता है. डिफ़ॉल्ट रूप से []
पैच लागू होने के बाद, Linux/Macos पर Bash कमांड का क्रम लागू होता है.
patch_strip डिफ़ॉल्ट है 0
यह यूनिक्स पैच के --स्ट्रिप आर्ग्युमेंट की तरह है.

local_path_override

None local_path_override(module_name, path)

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

पैरामीटर

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

मॉड्यूल

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

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

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

पैरामीटर

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

multiple_version_override

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

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

पैरामीटर

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

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

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

पैरामीटर

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

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

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

पैरामीटर

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

single_version_override

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

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

पैरामीटर

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

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

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

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

पैरामीटर

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