نشر الإضافة

تشرح هذه الصفحة كيف يمكنك نشر ملحق على Extensions Hub.

قبل ان تبدأ

لنشر ملحق، يجب عليك أولاً التسجيل كناشر للامتدادات .

مصادر يمكن التحقق منها

يجب أن يكون لجميع الملحقات المنشورة على Extensions Hub مصدر يمكن التحقق منه بشكل عام. بدلاً من تحميل كود مصدر الامتداد مباشرة إلى Extensions Hub، يمكنك بدلاً من ذلك تحديد موقع المصدر وسيقوم Extension Hub بتنزيله وإنشائه من هناك.

ويعني هذا حاليًا إتاحة كود مصدر الامتداد الخاص بك في مستودع GitHub العام.

التحميل من مصدر يمكن التحقق منه له فوائد عديدة:

  • يمكن للمستخدمين فحص الكود المصدري للمراجعة المحددة للامتداد الذي سيتم تثبيته.
  • يمكنك التأكد من تحميل ما تنوي تحميله فقط، وليس، على سبيل المثال، العمل قيد التقدم أو الملفات الضالة المتبقية من التطوير.

دورة التطوير الموصى بها

تدعم أدوات تطوير ملحقات Firebase تحميل إصدارات ما قبل النشر لملحقاتك، مما يسهل عليك اختبار ملحقاتك وعملية تثبيت الملحقات في نفس البيئة التي سيتم إصدارها فيها في النهاية.

تتيح هذه الإمكانية دورة تطوير مثل ما يلي:

  1. قم بتطوير امتدادك وتكراره بسرعة باستخدام Firebase Emulator Suite .

  2. اختبر امتدادك في مشروع حقيقي عن طريق تثبيته من مصدر محلي:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. قم بتحميل نسخة تجريبية إلى Extensions Hub (انظر أدناه). قم بتوزيع رابط التثبيت للاختبار على نطاق أوسع، ثم كرره عن طريق تحميل المزيد من إصدارات ما قبل النشر حسب الضرورة.

  4. قم بتحميل الإصدار النهائي والمستقر إلى Extensions Hub (انظر أدناه) وأرسله للمراجعة. إذا اجتاز الملحق المراجعة، فسيتم نشره على Extension Hub.

  5. قم بزيادة رقم الإصدار في extension.yaml وكرر هذه الدورة للإصدار التالي من الامتداد الخاص بك.

تحميل ملحق جديد

لتحميل ملحق للمرة الأولى:

  1. اختياري : أرسل التعليمات البرمجية الخاصة بك إلى مستودع GitHub العام.

  2. قم بتشغيل الأمر ext:dev:upload الخاص بـ Firebase CLI:

    جيثب

    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:

      • عنوان URL لمستودع الامتداد في GitHub. لاحظ أن المستودع يمكن أن يحتوي على امتدادات متعددة طالما أن كل ملحق له جذر فريد.

        عندما تقوم بتحميل ملحق جديد لأول مرة، سيتم تسجيل المستودع كمصدر أساسي لامتدادك.

      • الدليل الموجود في المستودع الذي يحتوي على الامتداد الخاص بك.

      • مرجع Git للالتزام الذي تريد إنشاء مصدر إصدار الملحق منه. يمكن أن يكون هذا تجزئة التزام أو علامة أو اسم فرع.

    • مرحلة إصدار الإصدار الذي تقوم بتحميله.

      إن مراحل alpha و beta و rc (الإصدار المرشح) مخصصة لتحميل إصدارات ما قبل النشر ليتمكن المختبرون من تثبيتها. استخدم إحدى هذه المراحل للتحميل الأولي للامتداد الجديد.

      يتم استخدام المرحلة stable لنشر الإصدارات العامة على Extensions Hub. سيؤدي تحميل إصدار 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
    

تحميل نسخة محدثة

بعد تحميل الإصدار الأول من الإضافة، يمكنك تحميل التحديثات لإصلاح المشكلات أو إضافة ميزات أو التقدم في مرحلة الإصدار. عند تحميل إصدار جديد، ستتم مطالبة المستخدمين الذين لديهم إصدار قديم من ملحقك المثبت في وحدة تحكم Firebase بالترقية.

لتحميل تحديث:

  1. اختياري : أرسل التعليمات البرمجية الخاصة بك إلى مستودع Git العام.

  2. قم بتشغيل الأمر ext:dev:upload الخاص بـ Firebase CLI:

    جيثب

    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. قم بتشغيل الأمر ext:dev:upload الخاص بـ Firebase CLI، مع تحديد stable كمرحلة الإصدار:

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. إذا كنت قد نشرت سابقًا إصدارًا من إضافتك، فإن تحميل إصدار ثابت جديد سيؤدي تلقائيًا إلى إرسال الإضافة للمراجعة.

    إذا قمت بتحميل أول إصدار ثابت للملحق، فابحث عن الامتداد في لوحة تحكم الناشر ، ثم انقر فوق نشر إلى Extensions Hub .

بمجرد إرسالها، يمكن أن تستغرق المراجعة بضعة أيام. إذا تم قبول الامتداد، فسيتم نشره على Extensions Hub. في حالة الرفض، ستصلك رسالة توضح السبب؛ يمكنك بعد ذلك معالجة المشكلات التي تم الإبلاغ عنها وإعادة إرسالها للمراجعة.

لتسريع عملية المراجعة وزيادة فرص نجاحك في المحاولة الأولى، قبل الإرسال، تحقق مرة أخرى مما يلي:

  • لقد قمت باختبار الامتداد الخاص بك وعملية التثبيت بدقة.
  • وثائقك كاملة وصحيحة، ويتم عرضها بشكل جيد في وحدة تحكم 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.*

لا يتم إدراج الإصدارات المهملة من الامتداد في Extensions Hub ولا يمكن تثبيتها. سيرى المستخدمون الذين تم تثبيت إصدار مهمل لمشاريعهم رسالة تشجعهم على الترقية؛ لا يزال بإمكانهم استخدام الامتداد وإعادة تكوينه في هذه الأثناء.

إذا تم إهمال كل إصدار من الامتداد، فسيتم اعتبار الامتداد مهملاً وسيتم حذفه من Extensions Hub. سيؤدي تحميل إصدار جديد من الإضافة الموقوفة إلى بدء المراجعة تلقائيًا، وعند القبول، سيتم نشرها على Extensions Hub مرة أخرى.

لعكس الإيقاف، استخدم لوحة تحكم الناشر، أو قم بتشغيل الأمر ext:dev:undeprecate الخاص بـ Firebase CLI:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

الملحق: استكشاف أخطاء البناء وإصلاحها

عندما تقوم بتحميل ملحقك، تقوم الواجهة الخلفية أولاً بإنشاء كود المصدر الخاص بك باستخدام العملية التالية:

  1. استنساخ مستودع GitHub الخاص بك والتحقق من مرجع المصدر المحدد.

  2. تثبيت تبعيات NPM عن طريق تشغيل npm clean-install في كل دليل مصدر وظيفة محدد في extension.yaml (راجع sourceDirectory في Cloud Function Resources ).

    لاحظ ما يلي:

    • يجب أن يحتوي كل ملف package.json على ملف package-lock.json مطابق. لمزيد من المعلومات، راجع npm-ci .

    • لن يتم تشغيل البرامج النصية بعد التثبيت أثناء تثبيت التبعية. إذا كان بناء التعليمات البرمجية المصدر الخاص بك يعتمد على البرامج النصية لمرحلة ما بعد التثبيت، فقم بإعادة هيكلتها قبل التحميل.

  3. ينشئ التعليمات البرمجية الخاصة بك عن طريق تشغيل npm run build في كل دليل مصدر دالة محدد في extension.yaml .

سيتم حفظ الدليل الجذر لامتدادك فقط في حزمة الامتداد النهائية التي ستتم مشاركتها.

إذا حصلت على أخطاء في البناء أثناء تحميل ملحقك، فقم بتكرار خطوات البناء المذكورة أعلاه محليًا في دليل جديد حتى لا توجد أخطاء، ثم حاول التحميل مرة أخرى.