פרסום התוסף

בדף הזה נסביר איך לפרסם תוסף במרכז התוספים.

לפני שמתחילים

כדי לפרסם תוסף, קודם צריך להירשם כבעלים של תוספי Chrome.

מקורות שניתנים לאימות

לכל התוספים שפורסמו ב-Extensions Hub חייב להיות מקור שאפשר לאמת באופן ציבורי. במקום להעלות את קוד המקור של התוסף ישירות ל-Extensions Hub, מציינים את מיקום המקור, ו-Extensions Hub מוריד אותו ויוצר אותו משם.

בשלב הזה, המשמעות היא שקוד המקור של התוסף צריך להיות זמין במאגר ציבורי ב-GitHub.

להעלאה ממקור שאפשר לאמת יש כמה יתרונות:

  • המשתמשים יכולים לבדוק את קוד המקור של הגרסה הספציפית של התוסף שתתקין.
  • כך תוכלו לוודא שאתם מעלים רק את מה שאתם מתכוונים להעלות, ולא, למשל, עבודה בתהליך או קבצים שנותרו מהפיתוח.

מחזור הפיתוח המומלץ

כלי הפיתוח של תוספים ל-Firebase תומכים בהעלאה של גרסאות טרום-השקה של התוספים. כך תוכלו לבדוק בקלות את התוספים ואת תהליך ההתקנה שלהם באותה סביבה שבה הם יושקעו בסופו של דבר.

היכולת הזו מאפשרת מחזור פיתוח כמו זה:

  1. פיתוח של התוסף וביצוע שינויים בו במהירות באמצעות חבילת הכלים לאמולטור ב-Firebase.

  2. כדי לבדוק את התוסף בפרויקט אמיתי, מתקינים אותו ממקור מקומי:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. מעלים גרסה לקדם-הפצה למרכז התוספים (ראו בהמשך). אפשר להפיץ את הקישור להתקנה כדי לבצע בדיקות נוספות, ולהעלות גרסאות נוספות של טרום-ההפצה לפי הצורך.

  4. מעלים את הגרסה הסופית והיציבה למרכז התוספים (ראו בהמשך) ושולחים אותה לבדיקה. אם התוסף יעבור את הבדיקה, הוא יפורסם ב-Extension Hub.

  5. מוסיפים מספר אחד למספר הגרסה ב-extension.yaml וחוזר על המחזור הזה לגרסה הבאה של התוסף.

העלאת תוסף חדש

כדי להעלות תוסף בפעם הראשונה:

  1. אופציונלי: שומרים את הקוד במאגר ציבורי ב-GitHub.

  2. מריצים את הפקודה ext:dev:upload ב-CLI של Firebase:

    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:

      • כתובת ה-URL של המאגר של התוסף ב-GitHub. חשוב לזכור שמאגר יכול להכיל כמה תוספים, כל עוד לכל תוסף יש שורש ייחודי.

        כשאתם מעלים תוסף חדש בפעם הראשונה, המאגר יירשם כמקור הקנוני של התוסף.

      • הספרייה במאגר שמכילה את התוסף.

      • ההפניה ל-Git של השמירה (commit) שממנה רוצים ליצור את קוד המקור של גרסת התוסף. זה יכול להיות גיבוב של השמירה, תג או שם ההסתעפות.

    • שלב ההשקה של הגרסה שאתם מעלים.

      השלבים alpha,‏ beta ו-rc (גרסה מועמדת להשקה) מיועדים להעלאה של גרסאות טרום-השקה להתקנה על ידי הבודקים. מומלץ להשתמש באחד מהשלבים האלה להעלאה הראשונית של תוסף חדש.

      השלב stable משמש לפרסום גרסאות ציבוריות ב-Extensions Hub. העלאת גרסה של stable תגרום להתחלת בדיקה באופן אוטומטי, ואם היא תעבור, התוסף יפורסם.

    שימו לב שלא מציינים מספר גרסה – הערך הזה מגיע מקובץ extension.yaml. כשאתם מעלים גרסת טרום-השקה של תוסף, השלב ומספר ההעלאה מצורפים לגרסה. לדוגמה, אם הערך של extension.yaml הוא 1.0.1 ומעלים גרסה מועמדת להשקה, הערך של 1.0.1-rc.0 יהיה 1.0.1. העלאה של גרסה מועמדת נוספת לאותה גרסה תגדיל את המספר באופן אוטומטי, והערך של 1.0.1-rc.1 יהיה 1.0.2, וכן הלאה.

עכשיו, אחרי שהעליתם גרסת טרום-השקה של התוסף, תוכלו לשתף אותו עם אנשים אחרים לצורך בדיקה. המשתמשים יכולים להתקין את התוסף בשתי דרכים:

  • דרך המסוף: המשתמשים יכולים להתקין את התוסף בלחיצה על קישור בפורמט הבא:

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

    אתם יכולים לשתף את הקישור הישיר עם הבודקים.

  • באמצעות ה-CLI: משתמשים יכולים להתקין את התוסף על ידי העברת מחרוזת מזהה התוסף לפקודה ext:install:

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

העלאת גרסה מעודכנת

אחרי שתעלו את הגרסה הראשונה של התוסף, תוכלו להעלות עדכונים כדי לתקן בעיות, להוסיף תכונות או לקדם את שלב ההשקה. כשתעלו גרסה חדשה, משתמשים שמותקנת אצלם גרסה ישנה יותר של התוסף יקבלו בקשה לשדרג במסוף Firebase.

כדי להעלות עדכון:

  1. אופציונלי: מאגרים את הקוד במאגר Git ציבורי.

  2. מריצים את הפקודה ext:dev:upload ב-CLI של Firebase:

    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. מריצים את הפקודה ext:dev:upload ב-CLI של Firebase, ומציינים את stable בתור שלב השחרור:

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. אם כבר פרסמתם גרסה של התוסף, העלאת גרסה יציבה חדשה תשלוח את התוסף לבדיקה באופן אוטומטי.

    אם העליתם את הגרסה היציבה הראשונה של התוסף, מאתרים את התוסף במרכז הבקרה של בעלי האפליקציות ולוחצים על פרסום ב-Extensions Hub.

לאחר שליחת הבקשה, הבדיקה עשויה להימשך כמה ימים. אם הבקשה תאושר, התוסף יפורסם במרכז התוספים. אם הבקשה תידחה, תקבלו הודעה עם הסבר על הסיבה. לאחר מכן תוכלו לטפל בבעיות שדווחו ולשלוח את הבקשה לבדיקה מחדש.

כדי לזרז את הבדיקה ולהגדיל את הסיכויים לעבור בפעם הראשונה, לפני שליחת הבקשה כדאי לבדוק את הפרטים הבאים:

  • בדקתם היטב את התוסף ואת תהליך ההתקנה.
  • המסמכים מלאים ומדויקים, והם מוצגים בצורה תקינה במסוף Firebase.
  • שם בעל התוכן הדיגיטלי והמיתוג שלו מזהים אתכם כבעלים של התוכן הדיגיטלי באופן ברור ומדויק.
  • השם, התיאור והסמל של התוסף מייצגים בבירור ובאופן מדויק את המטרה של התוסף.
  • החלתם תגים שימושיים ומדויקים.
  • הוצהרו ב-extension.yaml כל ממשקי ה-API של Google וממשקי ה-API שאינם של 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. לוחצים על Deprecate version.

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

גרסאות של תוספים שהוצאו משימוש לא מופיעות במרכז התוספים ואי אפשר להתקין אותן. משתמשים שהפרויקטים שלהם מותקנת בהם גרסה שהוצאה משימוש יראו הודעה עם המלצה לשדרג. בינתיים, הם עדיין יכולים להשתמש בתוסף ולהגדיר אותו מחדש.

אם כל הגרסאות של תוסף מסוים הוצאו משימוש, התוסף נחשב ללא תמיכה והוא יוסר מרשימת התוספים במרכז התוספים. העלאה של גרסה חדשה של תוסף שהוצא משימוש תגרום לבדיקה אוטומטית, ואחרי האישור, התוסף יפורסם שוב במרכז התוספים.

כדי לבטל הוצאה משימוש, אפשר להשתמש בלוח הבקרה של בעלי האפליקציות או להריץ את הפקודה ext:dev:undeprecate ב-CLI של Firebase:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

נספח: פתרון בעיות בשגיאות build

כשאתם מעלים את התוסף, הקצה העורפי יוצר קודם את קוד המקור באמצעות התהליך הבא:

  1. הקוד משכפל את המאגר ב-GitHub ובודק את הפניה למקור שצוינה.

  2. התקנת יחסי התלות של NPM על ידי הפעלת npm clean-install בכל ספריית המקור של הפונקציה שצוינה ב-extension.yaml (ראו sourceDirectory במשאבי Cloud Function).

    שימו לב לנקודות הבאות:

    • לכל קובץ package.json צריך להיות קובץ package-lock.json תואם. מידע נוסף זמין במאמר npm-ci.

    • סקריפטים שלאחר ההתקנה לא יפעלו במהלך התקנת התלות. אם ה-build של קוד המקור מסתמך על סקריפטים לאחר ההתקנה, צריך לבצע בו refactoring לפני ההעלאה.

  3. הפקודה יוצרת את הקוד על ידי הפעלת npm run build בכל ספריית מקור של פונקציה שצוינה ב-extension.yaml.

רק ספריית הבסיס של התוסף תישמר בחבילת התוסף הסופית שתשותף.

אם מוצגות שגיאות build במהלך העלאת התוסף, צריך לחזור על השלבים של build שמפורטים למעלה באופן מקומי בספרייה חדשה עד שלא יהיו יותר שגיאות, ואז לנסות להעלות שוב.