MODULE.bazel फ़ाइलें

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

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; या string के दोहराव वाले; ज़रूरी हैं
संग्रह के यूआरएल; http(s):// या file:// वाले यूआरएल हो सकते हैं.
integrity डिफ़ॉल्ट तौर पर यह '' पर सेट होता है
यह सबरिसॉर्स इंटिग्रिटी फ़ॉर्मैट में संग्रहित फ़ाइल का सही चेकसम होता है.
strip_prefix यह डिफ़ॉल्ट रूप से '' पर सेट होती है
यह एक डायरेक्ट्री प्रीफ़िक्स होती है, जो निकाली गई फ़ाइलों से हट जाती है.
patches स्ट्रिंग में बदलाव किया जा सकता है; डिफ़ॉल्ट तौर पर यह []
इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों पर ले जाने वाले लेबल की सूची होती है. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. इन्हें सूची के क्रम में लागू किया जाता है.
patch_cmds स्ट्रिंग में बदलाव किया जा सकता है. []
पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले बैश निर्देशों का क्रम डिफ़ॉल्ट रूप से लागू होता है.
patch_strip डिफ़ॉल्ट 0 है
Unix पैच के --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 जोड़े जा सकते हैं. मॉड्यूल के वर्शन का मतलब है, काम करने वाला कम से कम काम करने वाला लेवल. साथ ही, अगर इस एट्रिब्यूट की वैल्यू नहीं दी गई है, तो ज़्यादा से ज़्यादा वैल्यू को भी कैलकुलेट किया जा सकता है.
repo_name डिफ़ॉल्ट तौर पर यह '' पर सेट होता है
इस डिपेंडेंसी को दिखाने वाले एक्सटर्नल रिपो का नाम. डिफ़ॉल्ट रूप से यह मॉड्यूल का नाम होता है.
dev_dependency यह वैल्यू डिफ़ॉल्ट तौर पर False पर सेट होती है
सही होने पर, अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या `--ignore_dev_डिपेंडेंसी` चालू है, तो इस डिपेंडेंसी को अनदेखा कर दिया जाएगा.

git_override

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

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

पैरामीटर

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

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

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

पैरामीटर

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

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

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

पैरामीटर

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

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 ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल डिपेंडेंसी का नाम.
version '' डिफ़ॉल्ट पर सेट है
यह डिपेंडेंसी ग्राफ़ में, इस मॉड्यूल के एलान किए गए वर्शन को बदल देता है. दूसरे शब्दों में, इस मॉड्यूल को बदलने वाले इस वर्शन में "पिन" किया जाएगा. अगर कोई व्यक्ति रजिस्ट्री या पैच को बदलना चाहता है, तो इस एट्रिब्यूट को छोड़ा जा सकता है.
registry '' डिफ़ॉल्ट पर सेट है
इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए.
patches स्ट्रिंग में बदलाव किया जा सकता है; डिफ़ॉल्ट तौर पर यह []
इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों पर ले जाने वाले लेबल की सूची होती है. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. इन्हें सूची के क्रम में लागू किया जाता है.
patch_cmds स्ट्रिंग में बदलाव किया जा सकता है. []
पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले बैश निर्देशों का क्रम डिफ़ॉल्ट रूप से लागू होता है.
patch_strip डिफ़ॉल्ट 0 है
Unix पैच के --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 ज़रूरी
अलग-अलग नामों वाले मौजूदा मॉड्यूल के स्कोप में इंपोर्ट करने के लिए, डेटा स्टोर करने की कुछ जगहों के बारे में बताता है. कुंजियों को मौजूदा दायरे में इस्तेमाल करने के लिए नाम होना चाहिए, जबकि वैल्यू, मॉड्यूल एक्सटेंशन से एक्सपोर्ट किए गए मूल नाम होने चाहिए.

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 ज़रूरी है
इस्तेमाल करने के लिए, डेटा स्टोर करने के नियम का नाम. इस नाम के चिह्न को Starlark फ़ाइल के ज़रिए एक्सपोर्ट किया जाना चाहिए.