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

इस पेज पर, एक्सटेंशन हब पर एक्सटेंशन पब्लिश करने का तरीका बताया गया है.

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

एक्सटेंशन पब्लिश करने के लिए, सबसे पहले आपको एक्सटेंशन पब्लिशर के तौर पर रजिस्टर करें.

पुष्टि किए जा सकने वाले सोर्स

एक्सटेंशन हब पर पब्लिश किए गए सभी एक्सटेंशन की सार्वजनिक तौर पर पुष्टि की जा सकती हो स्रोत. अपने एक्सटेंशन सोर्स कोड को सीधे एक्सटेंशन पर अपलोड करने के बजाय हब है, तो आपको सोर्स लोकेशन की जानकारी देनी होती है और एक्सटेंशन हब उसे डाउनलोड कर लेगा और वहीं से उसे बनाएं.

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

ऐसे सोर्स से वीडियो अपलोड करने के कई फ़ायदे हैं जिनकी पुष्टि की जा सकती है:

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

सुझाया गया डेवलपमेंट साइकल

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

इस सुविधा की मदद से, कुछ इस तरह का डेवलपमेंट साइकल बनाया जा सकता है:

  1. इसका इस्तेमाल करके अपने एक्सटेंशन को डेवलप करें और उसे तेज़ी से दोहराएं Firebase एम्युलेटर सुइट.

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

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. एक्सटेंशन हब पर, रिलीज़ से पहले का वर्शन अपलोड करें (नीचे देखें). टेस्ट करने के लिए इंस्टॉल करने का लिंक दें. साथ ही, ज़्यादा टेस्ट अपलोड करके इसे दोहराएं रिलीज़ से पहले वाले वर्शन शामिल हैं.

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

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

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

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

  1. ज़रूरी नहीं: GitHub की सार्वजनिक जगह पर अपना कोड डालें.

  2. Firebase सीएलआई का 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 में एक्सटेंशन की रिपॉज़िटरी का यूआरएल. ध्यान दें कि रिपॉज़िटरी में कई एक्सटेंशन हो सकते हैं, बशर्ते हर एक्सटेंशन में एक यूनीक रूट डालें.

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

      • रिपॉज़िटरी की वह डायरेक्ट्री जिसमें आपका एक्सटेंशन मौजूद है.

      • उस प्रतिबद्धता का 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

    टेस्टर के साथ सीधे तौर पर लिंक शेयर किया जा सकता है.

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

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

अपडेट किया गया वर्शन अपलोड करें

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

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

  1. ज़रूरी नहीं: अपना कोड किसी सार्वजनिक Git रिपॉज़िटरी में सेव करें.

  2. Firebase सीएलआई का 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. अगर आपने पहले ही अपने एक्सटेंशन का कोई वर्शन पब्लिश किया है, तो स्थिर रिलीज़, एक्सटेंशन को समीक्षा के लिए अपने-आप सबमिट कर देगी.

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

सबमिट करने के बाद, समीक्षा में कुछ दिन लग सकते हैं. अगर इसे स्वीकार किया जाता है, तो एक्सटेंशन एक्सटेंशन हब पर पब्लिश किए गए हैं. अस्वीकार कर दिए जाने पर, आपको कारण; रिपोर्ट की गई समस्याओं को ठीक करके, उसे समीक्षा के लिए फिर से सबमिट किया जा सकता है.

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

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

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

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

आपने पब्लिशर आईडी के तहत जो एक्सटेंशन अपलोड किए हैं उन्हें सूची में शामिल करने के लिए, इनमें से कोई एक काम करें फ़ॉलो किया जा रहा है:

पब्लिशर डैशबोर्ड

इन्हें पब्लिशर डैशबोर्ड पर देखें.

Firebase CLI

ext:dev:list निर्देश चलाएं:

firebase ext:dev:list your_publisher_id

अपने अपलोड किए गए एक्सटेंशन का इस्तेमाल देखना

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

पब्लिशर डैशबोर्ड

पब्लिशर डैशबोर्ड में कुल इस्तेमाल की मेट्रिक मौजूद होती हैं और हर एक्सटेंशन के लिए अलग-अलग मेट्रिक देख सकते हैं.

Firebase CLI

ext:dev:usage निर्देश चलाएं:

firebase ext:dev:usage your_publisher_id

एक्सटेंशन के किसी वर्शन का इस्तेमाल बंद करना

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

किसी एक्सटेंशन के वर्शन का इस्तेमाल बंद करने के लिए, इनमें से कोई एक काम करें:

पब्लिशर डैशबोर्ड

  1. प्रकाशक डैशबोर्ड पर, एक्सटेंशन पर क्लिक करके ज़्यादा जानकारी वाला व्यू.
  2. वह वर्शन चुनें जिसका अब इस्तेमाल नहीं करना है.
  3. वर्शन का इस्तेमाल बंद करें पर क्लिक करें.

Firebase CLI

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.*

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

अगर किसी एक्सटेंशन के हर एक वर्शन के इस्तेमाल पर रोक लगा दी गई है, तो उसकी बंद कर दिया गया है और इसे एक्सटेंशन हब से हटा दिया जाएगा. नया वर्शन अपलोड करना जो एक्सटेंशन काम नहीं करता है उसकी समीक्षा अपने-आप हो जाएगी. इसके बाद, स्वीकार करें, इसे एक बार फिर से एक्सटेंशन हब पर पब्लिश करें.

बंद करने की प्रक्रिया को पहले जैसा करने के लिए, पब्लिशर डैशबोर्ड का इस्तेमाल करें या Firebase सीएलआई ext:dev:undeprecate निर्देश:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

अपेंडिक्स: बिल्ड से जुड़ी गड़बड़ियों को ठीक करना

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

  1. अपने GitHub रिपॉज़िटरी को क्लोन करता है और बताए गए सोर्स रेफ़रंस की जांच करता है.

  2. हर फ़ंक्शन में npm clean-install चलाकर, एनपीएम डिपेंडेंसी इंस्टॉल करता है extension.yaml में बताई गई सोर्स डायरेक्ट्री (इसमें sourceDirectory देखें Cloud Function के संसाधन).

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

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

    • डिपेंडेंसी इंस्टॉल करने के दौरान, पोस्ट-इंस्टॉल स्क्रिप्ट नहीं चलेंगी. अगर आपका सोर्स कोड बिल्ड, पोस्ट-इंस्टॉल स्क्रिप्ट पर निर्भर है, तो अपलोड करने से पहले उसे रीफ़ैक्टर करें.

  3. हर फ़ंक्शन सोर्स में npm run build को चलाकर, आपका कोड बनाता है extension.yaml में बताई गई डायरेक्ट्री के बारे में बताया गया है.

फ़ाइनल एक्सटेंशन में, आपके एक्सटेंशन की सिर्फ़ रूट डायरेक्ट्री सेव की जाएगी शेयर किया जाएगा.

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