बेज़ल रजिस्ट्री

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

इंडेक्स रजिस्ट्री

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

इंडेक्स रजिस्ट्री को इस फ़ॉर्मैट का पालन करना होगा:

  • /bazel_registry.json: रजिस्ट्री के मेटाडेटा वाली JSON फ़ाइल पसंद:
    • mirrors: स्रोत संग्रहों के लिए इस्तेमाल करने के लिए मिरर की सूची तय करना
    • module_base_path: मॉड्यूल के लिए बुनियादी पाथ तय करना source.json फ़ाइल में local_repository टाइप
  • /modules: एक डायरेक्ट्री, जिसमें हर मॉड्यूल की सबडायरेक्ट्री होती है रजिस्ट्री
  • /modules/$MODULE: एक डायरेक्ट्री, जिसमें हर वर्शन की सबडायरेक्ट्री होती हैं आपको ये बदलाव दिखेंगे:
    • metadata.json: एक JSON फ़ाइल जिसमें मॉड्यूल के बारे में जानकारी होती है, इसमें ये फ़ील्ड शामिल होंगे:
      • homepage: प्रोजेक्ट के होम पेज का यूआरएल
      • maintainers: JSON ऑब्जेक्ट की एक सूची, जो कि हर ऑब्जेक्ट से जुड़ी है रजिस्ट्री में मॉड्यूल के मेंटेनर की जानकारी. ध्यान दें कि यह आवश्यक रूप से लेखकों के प्रोजेक्ट
      • versions: यहां मिलने वाले इस मॉड्यूल के सभी वर्शन की सूची इस रजिस्ट्री
      • yanked_versions: यांक हुआ का मैप वर्शन दिए गए हैं. कुंजियां यैंक करने के लिए वर्शन होने चाहिए और मान वर्शन को यैंक किया गया है, जबकि आम तौर पर इसमें एक अन्य जानकारी
  • /modules/$MODULE/$VERSION: नीचे दी गई फ़ाइलों वाली एक डायरेक्ट्री:
    • MODULE.bazel: इस मॉड्यूल वर्शन की MODULE.bazel फ़ाइल
    • source.json: एक JSON फ़ाइल जिसमें, इस मॉड्यूल वर्शन का सोर्स
      • डिफ़ॉल्ट टाइप "संग्रह" होता है, जो http_archive रेपो को दिखाता है. इसमें ये फ़ील्ड शामिल होंगे:
        • url: सोर्स संग्रह का यूआरएल
        • integrity: सबरिसॉर्स इंटेग्रिटी संग्रह का चेकसम
        • strip_prefix: एक्सट्रैक्ट करते समय स्ट्रिप करने के लिए डायरेक्ट्री प्रीफ़िक्स सोर्स संग्रह
        • patches: एक मैप जिसमें पैच फ़ाइलें मौजूद हैं, जिन्हें एक्सट्रैक्ट किया गया संग्रह. पैच फ़ाइलें इसके नीचे मौजूद होती हैं: /modules/$MODULE/$VERSION/patches डायरेक्ट्री. इसके लिए, ज़रूरी है कि पैच फ़ाइल नाम और मान हैं, इंटेग्रिटी चेकसम पैच फ़ाइलें
        • patch_strip: Unix patch के --strip आर्ग्युमेंट की तरह ही.
        • archive_type: डाउनलोड की गई फ़ाइल का संग्रह टाइप (http_archive पर मौजूद type की तरह). डिफ़ॉल्ट रूप से, संग्रह का टाइप, यूआरएल के फ़ाइल एक्सटेंशन से तय होता है. अगर फ़ाइल में कोई एक्सटेंशन नहीं, तो आप इनमें से किसी एक को साफ़ तौर पर बता सकते हैं: "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", "tar.zst", "tzst", tar.bz2, "ar" या "deb".
      • इन फ़ील्ड के साथ एक git रिपॉज़िटरी का इस्तेमाल करने के लिए टाइप बदला जा सकता है:
        • type: git_repository
        • नीचे दिए गए फ़ील्ड, जिनके बारे में https://bazu.build/rules/lib/repo/git पर बताया गया है:
          • remote
          • commit
          • shallow_since
          • tag
          • init_submodules
          • verbose
          • strip_prefix
      • टाइप को ऐसे लोकल पाथ का इस्तेमाल करने के लिए बदला जा सकता है जो इन फ़ील्ड वाला local_repository रेपो:
        • type: local_path
        • path: डेटा स्टोर करने की जगह का लोकल पाथ, इस तरह से कैलकुलेट किया जाता है:
          • अगर path एक ऐब्सलूट पाथ है, तो वह पहले जैसा ही रहता है
          • अगर path एक रिलेटिव पाथ है और module_base_path एक रिलेटिव पाथ है ऐब्सलूट पाथ, यानी कि <module_base_path>/<path> से कट जाता है
          • अगर path और module_base_path दोनों मिलते-जुलते पाथ हैं, तो <registry_path>/<module_base_path>/<path> में बदल जाता है. रजिस्ट्री को स्थानीय तौर पर होस्ट किया जाना चाहिए और इसका इस्तेमाल किया जाना चाहिए --registry=file://<registry_path>. अगर ऐसा नहीं किया जाता है, तो बेज़ल ये काम कर पाएंगे गड़बड़ी करो
    • patches/: पैच फ़ाइलों वाली एक वैकल्पिक डायरेक्ट्री, जिसका इस्तेमाल सिर्फ़ तब किया जाता है, जब source.json के पास "संग्रह" है टाइप

बेज़ल सेंट्रल रजिस्ट्री

https://bcr.bazel.build/ पर मौजूद Basel Central Registry (BCR) एक इंडेक्स है GitHub के रेपो की मदद से काम करने वाली रजिस्ट्री bazelbuild/bazel-central-registry. आप वेब फ़्रंटएंड का इस्तेमाल करके, यहां दिए गए कॉन्टेंट को ब्राउज़ कर सकते हैं: https://registry.bazel.build/.

बेज़ल समुदाय, बीसीआर को बनाए रखता है और योगदान देने वाले लोग, सबमिट कर सकते हैं पुल करने के अनुरोध शामिल हैं. बीसीआर योगदान देखें दिशा-निर्देशों के मुताबिक होना चाहिए.

सामान्य इंडेक्स रजिस्ट्री के फ़ॉर्मैट का पालन करने के अलावा, बीसीआर को हर मॉड्यूल वर्शन के लिए एक presubmit.yml फ़ाइल (/modules/$MODULE/$VERSION/presubmit.yml). यह फ़ाइल कुछ ज़रूरी एलिमेंट के बारे में बताती है ऐसे टारगेट बनाएं और टेस्ट करें जिनका इस्तेमाल आप इस मॉड्यूल की वैधता की जांच करने के लिए कर सकें वर्शन है. बीसीआर की सीआई पाइपलाइन भी इसका इस्तेमाल इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करना) पक्का करने के लिए करती हैं मॉड्यूल के बीच में.

रजिस्ट्री चुनी जा रही हैं

दोहराए जा सकने वाले बेज़ल फ़्लैग --registry का इस्तेमाल, मॉड्यूल का अनुरोध करने के लिए रजिस्ट्री, ताकि आप फ़ेच करने के लिए अपने प्रोजेक्ट को सेट अप कर सकें ये आपके डोमेन, तीसरे पक्ष या इंटरनल रजिस्ट्री से डिपेंडेंसी होती हैं. पहले की रजिस्ट्री लेने पर प्राथमिकता. सुविधा के लिए, आप इसमें --registry फ़्लैग की सूची आपके प्रोजेक्ट की .bazelrc फ़ाइल.

अगर आपकी रजिस्ट्री को GitHub पर होस्ट किया गया है, तो bazelbuild/bazel-central-registry) तो आपकी --registry वैल्यू को रॉ वैल्यू की ज़रूरत है raw.githubusercontent.com में GitHub पता. उदाहरण के लिए, main पर my-org फ़ोर्क की शाखा हो, तो आपको --registry=https://raw.githubusercontent.com/my-org/bazel-central-registry/main/.

--registry फ़्लैग का इस्तेमाल करने से Basel Central Registry का इस्तेमाल करना बंद हो जाता है डिफ़ॉल्ट तौर पर, लेकिन --registry=https://bcr.bazel.build को जोड़कर इसे फिर से जोड़ा जा सकता है.