MODULE.bazel फ़ाइलें

समस्या की शिकायत करें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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 का Iterable; ज़रूरी है
संग्रह के यूआरएल; ये http(s):// या file:// यूआरएल हो सकते हैं.
integrity डिफ़ॉल्ट रूप से ''
होता है सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, संग्रह फ़ाइल का अनुमानित चेकसम.
strip_prefix डिफ़ॉल्ट तौर पर ''
होता है निकाली गई फ़ाइलों से हटाने के लिए डायरेक्ट्री प्रीफ़िक्स.
patches स्ट्रिंग का Iterable; डिफ़ॉल्ट []
है इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं.
patch_cmds स्ट्रिंग का Iterable; डिफ़ॉल्ट []
है पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash कमांड का क्रम.
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 इस्तेमाल किया जा सकता है. मॉड्यूल के वर्शन से पता चलता है कि कम से कम compatibility_level क्या है. साथ ही, अगर इस एट्रिब्यूट की वैल्यू नहीं दी गई है, तो ज़्यादा से ज़्यादा 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 ज़रूरी है
इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम.
remote ज़रूरी है
रिमोट Git डेटा स्टोर करने की जगह का यूआरएल.
commit डिफ़ॉल्ट रूप से, ''
होता है वह कमिट जिसे चेक आउट करना है.
patches स्ट्रिंग का Iterable; डिफ़ॉल्ट []
है इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं.
patch_cmds स्ट्रिंग का Iterable; डिफ़ॉल्ट []
है पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash कमांड का क्रम.
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 repo से दिखाए गए Bazel मॉड्यूल की कुछ प्रॉपर्टी के बारे में बताता है. ये प्रॉपर्टी, मॉड्यूल के ज़रूरी मेटाडेटा (जैसे, नाम और वर्शन) होती हैं या मौजूदा मॉड्यूल और उस पर निर्भर मॉड्यूल के व्यवहार पर असर डालती हैं.

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

पैरामीटर

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