Pubblicare l'estensione

Questa pagina spiega come pubblicare un'estensione in Extensions Hub.

Prima di iniziare

Per pubblicare un'estensione, prima devi registrarsi come publisher di estensioni.

Fonti verificabili

Tutte le estensioni pubblicate nell'hub delle estensioni devono avere un elemento di prova verificabile pubblicamente sorgente. Anziché caricare il codice sorgente dell'estensione direttamente nelle estensioni Hub, devi specificare la località di origine e l'hub delle estensioni la scaricherà. e da lì a crearla.

Attualmente, ciò significa rendere disponibile il codice sorgente dell'estensione su un pubblico GitHub di ASL.

Il caricamento da una fonte verificabile presenta diversi vantaggi:

  • Gli utenti possono esaminare il codice sorgente della revisione specifica dell'estensione che verrà installato.
  • Puoi assicurarti di caricare solo ciò che intendi caricare e non, ad esempio, lavori in corso o file indesiderati rimanenti dallo sviluppo.

Ciclo di sviluppo consigliato

Gli strumenti di sviluppo di Firebase Extensions supportano il caricamento di versioni pre-release delle estensioni, il che semplifica il test delle estensioni e la procedura di installazione delle estensioni nello stesso ambiente in cui alla fine verrà rilasciato.

Questa funzionalità rende possibile un ciclo di sviluppo come il seguente:

  1. Sviluppa ed esegui rapidamente l'iterazione della tua estensione utilizzando il Firebase Emulator Suite.

  2. Testa l'estensione in un progetto reale installandola da un'origine locale:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
  3. Carica una versione pre-release in Extensions Hub (vedi di seguito). Distribuisci la link di installazione per eseguire test più ampi ed esegui l'iterazione caricandone versioni pre-release, se necessario.

  4. Carica la versione finale stabile nell'hub delle estensioni (vedi sotto) e inviala per la revisione. Se l'estensione supera la revisione, verrà pubblicata il giorno Hub delle estensioni.

  5. Aumenta il numero della versione in extension.yaml e ripeti questo ciclo per la versione successiva dell'estensione.

Carica una nuova estensione

Per caricare un'estensione per la prima volta:

  1. Facoltativo: esegui il commit del codice in un repository GitHub pubblico.

  2. Esegui il comando ext:dev:upload dell'interfaccia a riga di comando di Firebase:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Origine locale

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

    Nella chiamata del comando specifichi quanto segue:

    • L'ID publisher che hai registrato.

    • Una stringa ID che identifica l'estensione. Assegna alle estensioni il nome nel seguente formato: firebase-product-description-of-tasks-performed. Ad esempio: firestore-bigquery-export

    Il comando ti chiederà ulteriori informazioni:

    • Se esegui il caricamento da GitHub:

      • L'URL del repository dell'estensione in GitHub. Tieni presente che il repository può contenere più estensioni, purché ogni estensione abbia una radice univoca.

        Quando carichi una nuova estensione per la prima volta, il repository registrati come origine canonica della tua estensione.

      • La directory nel repository che contiene l'estensione.

      • Il riferimento Git del commit su cui vuoi creare la versione dell'estensione sorgente da. Può essere un hash di commit, un tag o il nome di un ramo.

    • La fase di rilascio della versione che stai caricando.

      Le fasi alpha, beta e rc (candidata alla release) possono essere caricate versioni di pre-release che i tester possono installare. Utilizza una di queste fasi per il caricamento iniziale di una nuova estensione.

      La fase stable viene utilizzata per pubblicare le release pubbliche su nell'hub delle estensioni. Il caricamento di una release stable avvierà automaticamente una e, se lo supera, pubblicherà l'estensione.

    Tieni presente che non devi specificare un numero di versione: questo valore proviene dal file extension.yaml. Quando carichi una versione dell'estensione pre-release, il parametro e il numero di caricamento vengono aggiunti alla versione. Ad esempio, se extension.yaml specifica la versione 1.0.1 e carichi una release candidata alla release, il risultato sarà la versione 1.0.1-rc.0; caricamento di un'altra release il candidato della stessa versione incrementerà automaticamente il conteggio, generando 1.0.1-rc.1 e così via.

Ora che hai caricato una versione pre-release dell'estensione, puoi condividere insieme ad altri a scopo di test. Gli utenti possono installare la tua estensione in due modi:

  • Con la console: gli utenti possono installare l'estensione facendo clic su un link con il seguente formato:

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

    Puoi condividere il link diretto con i tester.

  • Con l'interfaccia a riga di comando: gli utenti possono installare l'estensione trasmettendola Stringa ID al comando ext:install:

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

Carica una versione aggiornata

Dopo aver caricato la prima versione di un'estensione, puoi caricare gli aggiornamenti per risolvere i problemi, aggiungere funzionalità o avanzare nella fase di rilascio. Quando carichi una nuova versione, gli utenti che hanno una versione precedente verrà richiesto nella console Firebase di eseguire l'upgrade.

Per caricare un aggiornamento:

  1. Facoltativo: esegui il commit del codice in un repository Git pubblico.

  2. Esegui il comando ext:dev:upload dell'interfaccia a riga di comando di Firebase:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Questa volta non ti verrà chiesto di specificare il repository GitHub o della directory radice dell'estensione poiché sono già state configurate . Se successivamente hai eseguito il refactoring della struttura del repository hanno eseguito la migrazione a un nuovo repository, puoi modificarle con il comando argomenti --root e --repo.

    Origine locale

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

Inviare un'estensione per la pubblicazione

Quando è tutto pronto per rilasciare pubblicamente l'estensione:

  1. Esegui il commit del codice in un repository Git pubblico. (Obbligatorio per le uscite pubbliche).

  2. Esegui il comando ext:dev:upload dell'interfaccia a riga di comando di Firebase, specificando stable come fase di rilascio:

    firebase ext:dev:upload your_publisher_id/your_extension_id
  3. Se hai già pubblicato una versione dell'estensione, il caricamento di una nuova release stabile invierà automaticamente l'estensione per la revisione.

    Se hai caricato la prima release stabile dell'estensione, trova l'estensione su la tua dashboard per publisher, e fai clic su Pubblica nell'hub delle estensioni.

Una volta inviata la richiesta, potrebbero essere necessari alcuni giorni. Se accettata, l'estensione sarà pubblicato nell'hub delle estensioni. In caso di rifiuto, riceverai un messaggio che spiega ragione; puoi risolvere i problemi segnalati e inviare nuovamente la richiesta di revisione.

Per velocizzare la revisione e aumentare le probabilità di superare il primo tentativo, prima dell'invio, controlla attentamente quanto segue:

  • Hai testato a fondo l'estensione e la procedura di installazione.
  • La documentazione è completa e corretta e viene visualizzata correttamente nella console Firebase.
  • Il nome e il branding del publisher ti identificano in modo chiaro e preciso come publisher.
  • Il nome, la descrizione e l'icona dell'estensione rappresentano in modo chiaro e preciso lo scopo dell'estensione.
  • Hai applicato tag utili e precisi.
  • In extension.yaml hai dichiarato tutte le API Google e non Google che utilizzi e tutti i tipi di eventi emessi dall'estensione.
  • Richiedi l'accesso solo ai ruoli necessari per il funzionamento dell'estensione e hai spiegato chiaramente agli utenti perché hai bisogno di questo accesso.
  • I tuoi file di origine sono chiaramente concessi in licenza ai sensi dei termini di Apache-2.0.

Gestisci le estensioni caricate e pubblicate

Elenca le estensioni caricate

Per elencare le estensioni caricate sotto il tuo ID publisher, esegui una delle seguenti:

Dashboard del publisher

Visualizzale sulla dashboard del publisher.

interfaccia a riga di comando di Firebase

Esegui il comando ext:dev:list:

firebase ext:dev:list your_publisher_id

Visualizza l'utilizzo delle estensioni caricate

Per visualizzare l'utilizzo delle estensioni caricate con il tuo ID publisher, procedi nel seguente modo: uno dei seguenti:

Dashboard del publisher

La dashboard del publisher offre metriche di utilizzo cumulative per tutti i tuoi estensioni e metriche individuali per ogni estensione.

interfaccia a riga di comando di Firebase

Esegui il comando ext:dev:usage:

firebase ext:dev:usage your_publisher_id

Ritirare una versione di un'estensione

A un certo punto, potresti decidere di ritirare una versione precedente dell'estensione. Per Ad esempio, se rilasci una nuova versione che corregge un bug critico o aggiorna un la dipendenza da un importante aggiornamento per la sicurezza, è importante evitare che agli utenti di installare una versione precedente e di incoraggiare quelli esistenti a eseguire l'upgrade.

Per ritirare una versione di un'estensione, esegui una delle seguenti operazioni:

Dashboard del publisher

  1. Nella dashboard del publisher, fai clic sull'estensione per aprire la relativa visualizzazione dei dettagli.
  2. Seleziona la versione che vuoi ritirare.
  3. Fai clic su Ritira versione.

interfaccia a riga di comando di Firebase

Esegui il comando ext:dev:deprecate:

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

Puoi specificare una singola versione o un intervallo di versioni. Esempi:

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

Le versioni deprecate di un'estensione non sono elencate nell'hub delle estensioni e non possono . Gli utenti i cui progetti hanno una versione deprecata installata vedranno gli utenti un messaggio che li invita a eseguire l'upgrade; possono ancora utilizzare e riconfigurare nel frattempo.

Se ogni versione di un'estensione è deprecata, l'estensione viene considerata è deprecata e verrà rimossa dall'hub delle estensioni. Caricamento di una nuova versione di un'estensione deprecata avvierà automaticamente una revisione e, l'accettazione, pubblicala di nuovo nell'hub delle estensioni.

Per annullare un ritiro, utilizza la dashboard del publisher o esegui l'interfaccia a riga di comando di Firebase Comando ext:dev:undeprecate:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Appendice: risoluzione dei problemi relativi agli errori di build

Quando carichi l'estensione, il backend crea innanzitutto il codice sorgente utilizzando la seguente procedura:

  1. Clona il repository GitHub e esegue il check-out del riferimento di origine specificato.

  2. Installa le dipendenze della gestione dei partner di rete eseguendo npm clean-install in ogni funzione directory di origine specificata in extension.yaml (vedi sourceDirectory in risorse della funzione Cloud Functions).

    Tieni presente quanto segue:

    • Ogni file package.json deve avere un file package-lock.json corrispondente. Per ulteriori informazioni, vedi npm-ci.

    • Gli script post-installazione non verranno eseguiti durante l'installazione delle dipendenze. Se la build del codice sorgente si basa su script post-installazione, eseguire il refactoring prima del caricamento.

  3. Crea il tuo codice eseguendo npm run build nell'origine di ogni funzione specificata in extension.yaml.

Nell'estensione finale verrà salvata solo la directory root dell'estensione pacchetto che verrà condiviso.

Se ricevi errori di build durante il caricamento dell'estensione, replica la build i passaggi precedenti in locale in una nuova directory finché non ci sono errori, quindi caricamento di nuovo.