अपना एक्सटेंशन पब्लिश करें

यह पृष्ठ बताता है कि आप एक्सटेंशन हब पर एक्सटेंशन कैसे प्रकाशित कर सकते हैं।

शुरू करने से पहले

किसी एक्सटेंशन को प्रकाशित करने के लिए, सबसे पहले आपको एक्सटेंशन प्रकाशक के रूप में पंजीकरण करना होगा।

सत्यापन योग्य स्रोत

एक्सटेंशन हब पर प्रकाशित सभी एक्सटेंशन का सार्वजनिक रूप से सत्यापन योग्य स्रोत होना चाहिए। अपने एक्सटेंशन स्रोत कोड को सीधे एक्सटेंशन हब पर अपलोड करने के बजाय, आप स्रोत स्थान निर्दिष्ट करें और एक्सटेंशन हब इसे डाउनलोड करेगा और वहां से इसका निर्माण करेगा।

वर्तमान में, इसका अर्थ है आपके एक्सटेंशन स्रोत कोड को सार्वजनिक GitHub रिपॉजिटरी पर उपलब्ध कराना।

सत्यापन योग्य स्रोत से अपलोड करने के कई लाभ हैं:

  • उपयोगकर्ता इंस्टॉल किए जाने वाले एक्सटेंशन के विशिष्ट संशोधन के स्रोत कोड का निरीक्षण कर सकते हैं।
  • आप यह सुनिश्चित कर सकते हैं कि आप केवल वही अपलोड करें जो आप अपलोड करना चाहते हैं, उदाहरण के लिए, कार्य प्रगति पर नहीं है, या विकास से बची हुई फ़ाइलें नहीं हैं।

अनुशंसित विकास चक्र

फायरबेस एक्सटेंशन डेवलपमेंट टूल आपके एक्सटेंशन के प्री-रिलीज़ संस्करण अपलोड करने का समर्थन करते हैं, जिससे आपके लिए अपने एक्सटेंशन और एक्सटेंशन इंस्टॉलेशन प्रक्रिया का उसी वातावरण में परीक्षण करना आसान हो जाता है जिसमें वे अंततः रिलीज़ होंगे।

यह क्षमता निम्नलिखित जैसे विकास चक्र को संभव बनाती है:

  1. फायरबेस एमुलेटर सूट का उपयोग करके अपने एक्सटेंशन को विकसित करें और तेजी से पुनरावृत्त करें।

  2. किसी वास्तविक प्रोजेक्ट में अपने एक्सटेंशन को स्थानीय स्रोत से इंस्टॉल करके उसका परीक्षण करें:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. एक्सटेंशन हब पर प्री-रिलीज़ संस्करण अपलोड करें (नीचे देखें)। व्यापक परीक्षण के लिए इंस्टॉलेशन लिंक वितरित करें, और आवश्यकतानुसार अधिक प्री-रिलीज़ संस्करण अपलोड करके पुनरावृत्त करें।

  4. अंतिम, स्थिर संस्करण को एक्सटेंशन हब पर अपलोड करें (नीचे देखें) और समीक्षा के लिए सबमिट करें। यदि एक्सटेंशन समीक्षा में पास हो जाता है, तो इसे एक्सटेंशन हब पर प्रकाशित किया जाएगा।

  5. extension.yaml में संस्करण संख्या बढ़ाएं और अपने एक्सटेंशन के अगले संस्करण के लिए इस चक्र को दोहराएं।

नया एक्सटेंशन अपलोड करें

पहली बार कोई एक्सटेंशन अपलोड करने के लिए:

  1. वैकल्पिक : अपना कोड सार्वजनिक GitHub रिपॉजिटरी में जमा करें।

  2. फायरबेस सीएलआई का ext:dev:upload कमांड चलाएँ:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    स्थानीय स्रोत

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local
    

    अपने आदेश मंगलाचरण में, आप निम्नलिखित निर्दिष्ट करते हैं:

    • आपके द्वारा पंजीकृत प्रकाशक आईडी।

    • एक आईडी स्ट्रिंग जो एक्सटेंशन की पहचान करेगी। अपने एक्सटेंशन को निम्नलिखित प्रारूप में नाम दें: firebase-product - description-of-tasks-performed । उदाहरण के लिए: firestore-bigquery-export

    आदेश आपको अतिरिक्त जानकारी के लिए संकेत देगा:

    • यदि आप GitHub से अपलोड कर रहे हैं:

      • GitHub में एक्सटेंशन के भंडार का URL। ध्यान दें कि एक रिपॉजिटरी में कई एक्सटेंशन हो सकते हैं, जब तक कि प्रत्येक एक्सटेंशन का एक अद्वितीय रूट हो।

        जब आप पहली बार कोई नया एक्सटेंशन अपलोड करते हैं, तो रिपॉजिटरी आपके एक्सटेंशन के लिए कैनोनिकल स्रोत के रूप में पंजीकृत हो जाएगी।

      • रिपॉजिटरी में वह निर्देशिका जिसमें आपका एक्सटेंशन है।

      • उस कमिट का Git संदर्भ जिससे आप अपना एक्सटेंशन संस्करण स्रोत बनाना चाहते हैं। यह एक प्रतिबद्ध हैश, टैग या शाखा नाम हो सकता है।

    • आपके द्वारा अपलोड किए जा रहे संस्करण का रिलीज़ चरण।

      alpha , beta और rc (रिलीज़ उम्मीदवार) चरण परीक्षकों को इंस्टॉल करने के लिए प्री-रिलीज़ संस्करण अपलोड करने के लिए हैं। किसी नए एक्सटेंशन के प्रारंभिक अपलोड के लिए इनमें से किसी एक चरण का उपयोग करें।

      एक्सटेंशन हब पर प्रकाशित होने वाली सार्वजनिक रिलीज़ के लिए stable चरण का उपयोग किया जाता है। एक stable रिलीज़ अपलोड करने से स्वचालित रूप से एक समीक्षा शुरू हो जाएगी, और, यदि यह पारित हो जाती है, तो एक्सटेंशन प्रकाशित कर दिया जाएगा।

    ध्यान दें कि आप कोई संस्करण संख्या निर्दिष्ट नहीं करते हैं—यह मान extension.yaml फ़ाइल से आता है। जब आप प्री-रिलीज़ एक्सटेंशन संस्करण अपलोड करते हैं, तो चरण और अपलोड संख्या संस्करण में जोड़ दी जाती है। उदाहरण के लिए, यदि extension.yaml संस्करण 1.0.1 निर्दिष्ट करता है और आप एक रिलीज़ उम्मीदवार अपलोड करते हैं, तो इसका परिणाम संस्करण 1.0.1-rc.0 होगा; उसी संस्करण के किसी अन्य रिलीज़ उम्मीदवार को अपलोड करने से स्वचालित रूप से गिनती बढ़ जाएगी, जिसके परिणामस्वरूप 1.0.1-rc.1 , इत्यादि।

अब जब आपने एक्सटेंशन का प्री-रिलीज़ संस्करण अपलोड कर लिया है, तो आप इसे परीक्षण के लिए दूसरों के साथ साझा कर सकते हैं। उपयोगकर्ता आपके एक्सटेंशन को दो तरीकों से इंस्टॉल कर सकते हैं:

  • कंसोल के साथ : उपयोगकर्ता निम्नलिखित प्रारूप वाले लिंक पर क्लिक करके एक्सटेंशन इंस्टॉल कर सकते हैं:

    https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version

    आप अपने परीक्षकों के साथ सीधा लिंक साझा कर सकते हैं।

  • सीएलआई के साथ : उपयोगकर्ता एक्सटेंशन आईडी स्ट्रिंग को ext:install कमांड में पास करके एक्सटेंशन इंस्टॉल कर सकते हैं:

    firebase ext:install your_publisher_id/your_extension_id@version \
        --project=destination_project_id
    

एक अद्यतन संस्करण अपलोड करें

किसी एक्सटेंशन का पहला संस्करण अपलोड करने के बाद, आप समस्याओं को ठीक करने, सुविधाएँ जोड़ने या रिलीज़ चरण को आगे बढ़ाने के लिए अपडेट अपलोड कर सकते हैं। जब आप एक नया संस्करण अपलोड करते हैं, तो जिन उपयोगकर्ताओं के पास आपके एक्सटेंशन का पुराना संस्करण स्थापित है, उन्हें फायरबेस कंसोल में अपग्रेड करने के लिए प्रेरित किया जाएगा।

अपडेट अपलोड करने के लिए:

  1. वैकल्पिक : अपना कोड सार्वजनिक Git रिपॉजिटरी में जमा करें।

  2. फायरबेस सीएलआई का ext:dev:upload कमांड चलाएँ:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    इस बार आपको GitHub रिपॉजिटरी या एक्सटेंशन रूट डायरेक्टरी निर्दिष्ट करने के लिए नहीं कहा जाएगा क्योंकि वे पहले ही आपके एक्सटेंशन के लिए कॉन्फ़िगर किए जा चुके हैं। यदि आपने तब से अपनी रिपॉजिटरी संरचना को दोबारा तैयार कर लिया है या किसी नए रिपॉजिटरी में स्थानांतरित कर दिया है, तो आप उन्हें कमांड तर्कों --root और --repo के साथ बदल सकते हैं।

    स्थानीय स्रोत

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local
    

प्रकाशन हेतु एक्सटेंशन सबमिट करें

जब आप अपना एक्सटेंशन सार्वजनिक रूप से जारी करने के लिए तैयार हों:

  1. अपना कोड सार्वजनिक Git रिपॉजिटरी में जमा करें। (सार्वजनिक रिलीज़ के लिए आवश्यक।)

  2. रिलीज़ चरण के रूप में stable निर्दिष्ट करते हुए, फायरबेस सीएलआई का ext:dev:upload कमांड चलाएँ:

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. यदि आपने पहले अपने एक्सटेंशन का एक संस्करण प्रकाशित किया है, तो एक नई स्थिर रिलीज़ अपलोड करने से एक्सटेंशन स्वचालित रूप से समीक्षा के लिए सबमिट हो जाएगा।

    यदि आपने एक्सटेंशन की पहली स्थिर रिलीज़ अपलोड की है, तो अपने प्रकाशक डैशबोर्ड पर एक्सटेंशन ढूंढें, और एक्सटेंशन हब पर प्रकाशित करें पर क्लिक करें।

एक बार सबमिट करने के बाद, समीक्षा में कुछ दिन लग सकते हैं। यदि स्वीकार किया जाता है, तो एक्सटेंशन एक्सटेंशन हब पर प्रकाशित किया जाएगा। यदि अस्वीकार कर दिया जाता है, तो आपको कारण बताने वाला एक संदेश मिलेगा; फिर आप रिपोर्ट किए गए मुद्दों का समाधान कर सकते हैं और समीक्षा के लिए पुनः सबमिट कर सकते हैं।

समीक्षा में तेजी लाने और पहले प्रयास में उत्तीर्ण होने की संभावना बढ़ाने के लिए, सबमिट करने से पहले निम्नलिखित की दोबारा जांच करें:

  • आपने अपने एक्सटेंशन और इंस्टॉलेशन प्रक्रिया का पूरी तरह से परीक्षण कर लिया है।
  • आपका दस्तावेज़ पूर्ण और सही है, और फ़ायरबेस कंसोल में अच्छी तरह से प्रस्तुत होता है।
  • आपका प्रकाशक नाम और ब्रांडिंग स्पष्ट और सटीक रूप से आपको प्रकाशक के रूप में पहचानती है।
  • आपके एक्सटेंशन का नाम, विवरण और आइकन स्पष्ट रूप से और सटीक रूप से आपके एक्सटेंशन के उद्देश्य को दर्शाते हैं।
  • आपने उपयोगी और सटीक टैग लगाए हैं.
  • आपने extension.yaml में आपके द्वारा उपयोग किए जाने वाले सभी Google और गैर-Google API और आपके एक्सटेंशन द्वारा उत्सर्जित सभी ईवेंट प्रकारों की घोषणा की है।
  • आप केवल एक्सटेंशन के कार्य करने के लिए आवश्यक भूमिकाओं तक पहुंच का अनुरोध कर रहे हैं, और आपने उपयोगकर्ताओं को स्पष्ट रूप से समझाया है कि आपको ऐसी पहुंच की आवश्यकता क्यों है।
  • आपकी स्रोत फ़ाइलें स्पष्ट रूप से Apache-2.0 की शर्तों के तहत लाइसेंसीकृत हैं।

अपलोड किए गए और प्रकाशित एक्सटेंशन प्रबंधित करें

अपने अपलोड किए गए एक्सटेंशन सूचीबद्ध करें

अपने प्रकाशक आईडी के अंतर्गत आपके द्वारा अपलोड किए गए एक्सटेंशन को सूचीबद्ध करने के लिए, निम्न में से कोई एक कार्य करें:

प्रकाशक डैशबोर्ड

उन्हें प्रकाशक डैशबोर्ड पर देखें.

फायरबेस सीएलआई

ext:dev:list कमांड चलाएँ:

firebase ext:dev:list your_publisher_id

अपने अपलोड किए गए एक्सटेंशन का उपयोग देखें

अपने प्रकाशक आईडी के अंतर्गत आपके द्वारा अपलोड किए गए एक्सटेंशन का उपयोग देखने के लिए, निम्न में से कोई एक कार्य करें:

प्रकाशक डैशबोर्ड

प्रकाशक डैशबोर्ड में आपके सभी एक्सटेंशन के लिए संचयी उपयोग मेट्रिक्स और प्रत्येक एक्सटेंशन के लिए अलग-अलग मेट्रिक्स हैं।

फायरबेस सीएलआई

ext:dev:usage कमांड चलाएँ:

firebase ext:dev:usage your_publisher_id

किसी एक्सटेंशन के संस्करण को अस्वीकृत करें

किसी बिंदु पर, आप अपने एक्सटेंशन के पुराने संस्करण को अप्रचलित करना चाह सकते हैं। उदाहरण के लिए, यदि आप एक नया संस्करण जारी करते हैं जो एक महत्वपूर्ण बग को ठीक करता है या एक महत्वपूर्ण सुरक्षा अद्यतन के साथ निर्भरता को अद्यतन करता है, तो नए उपयोगकर्ताओं को पुराने संस्करण को स्थापित करने से रोकना और मौजूदा उपयोगकर्ताओं को अपग्रेड करने के लिए प्रोत्साहित करना महत्वपूर्ण है।

किसी एक्सटेंशन के संस्करण को अस्वीकृत करने के लिए, निम्न में से कोई एक कार्य करें:

प्रकाशक डैशबोर्ड

  1. प्रकाशक डैशबोर्ड पर, उसका विवरण दृश्य खोलने के लिए एक्सटेंशन पर क्लिक करें।
  2. वह संस्करण चुनें जिसे आप अस्वीकृत करना चाहते हैं.
  3. संस्करण को अस्वीकार करें पर क्लिक करें.

फायरबेस सीएलआई

ext:dev:deprecate कमांड चलाएँ:

firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
    [--message "deprecation_message"]

आप एकल संस्करण या संस्करणों की श्रेणी निर्दिष्ट कर सकते हैं. उदाहरण:

  • 1.0.2
  • 1.1.0-1.1.7
  • <1.2.0
  • 1.1.*

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

यदि किसी एक्सटेंशन का प्रत्येक संस्करण अप्रचलित है, तो एक्सटेंशन को अप्रचलित माना जाएगा और इसे एक्सटेंशन हब से हटा दिया जाएगा। अप्रचलित एक्सटेंशन का नया संस्करण अपलोड करने से स्वचालित रूप से एक समीक्षा शुरू हो जाएगी और स्वीकृति पर, इसे एक्सटेंशन हब पर एक बार फिर से प्रकाशित किया जाएगा।

किसी बहिष्करण को उलटने के लिए, प्रकाशक डैशबोर्ड का उपयोग करें, या फायरबेस सीएलआई का ext:dev:undeprecate कमांड चलाएँ:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

परिशिष्ट: निर्माण त्रुटियों का समस्या निवारण

जब आप अपना एक्सटेंशन अपलोड करते हैं, तो बैकएंड पहले निम्नलिखित प्रक्रिया का उपयोग करके आपका स्रोत कोड बनाता है:

  1. आपके GitHub रिपॉजिटरी को क्लोन करता है और निर्दिष्ट स्रोत रेफरी की जांच करता है।

  2. extension.yaml में निर्दिष्ट प्रत्येक फ़ंक्शन स्रोत निर्देशिका में npm clean-install चलाकर एनपीएम निर्भरता स्थापित करता है ( क्लाउड फ़ंक्शन संसाधनों में sourceDirectory देखें)।

    निम्नलिखित पर ध्यान दें:

    • प्रत्येक package.json फ़ाइल में एक संगत package-lock.json फ़ाइल होनी चाहिए। अधिक जानकारी के लिए, npm-ci देखें।

    • निर्भरता स्थापना के दौरान पोस्ट-इंस्टॉल स्क्रिप्ट नहीं चलाई जाएंगी। यदि आपका सोर्स कोड बिल्ड पोस्ट-इंस्टॉल स्क्रिप्ट पर निर्भर करता है, तो अपलोड करने से पहले इसे दोबारा तैयार करें।

  3. extension.yaml में निर्दिष्ट प्रत्येक फ़ंक्शन स्रोत निर्देशिका में npm run build चलाकर आपका कोड बनाता है।

साझा किए जाने वाले अंतिम एक्सटेंशन पैकेज में केवल आपके एक्सटेंशन की रूट निर्देशिका सहेजी जाएगी।

यदि आपको अपना एक्सटेंशन अपलोड करते समय बिल्ड त्रुटियां मिलती हैं, तो उपरोक्त बिल्ड चरणों को स्थानीय रूप से एक नई निर्देशिका में दोहराएं जब तक कि कोई त्रुटि न हो, फिर से अपलोड करने का प्रयास करें।