Questa pagina spiega come pubblicare un'estensione su Extensions Hub.
Prima di iniziare
Per pubblicare un'estensione, devi prima registrarti come editore di estensioni .
Fonti verificabili
Tutte le estensioni pubblicate su Extensions Hub devono avere una fonte pubblicamente verificabile. Invece di caricare il codice sorgente dell'estensione direttamente su Extensions Hub, specifichi invece la posizione di origine e Extension Hub lo scaricherà e lo creerà da lì.
Attualmente, ciò significa rendere disponibile il codice sorgente dell'estensione su un repository GitHub pubblico.
Il caricamento da una fonte verificabile presenta diversi vantaggi:
- Gli utenti possono controllare il codice sorgente della revisione specifica dell'estensione che verrà installata.
- Puoi assicurarti di caricare solo ciò che intendi caricare e non, ad esempio, lavori in corso o file vaganti rimanenti dallo sviluppo.
Ciclo di sviluppo consigliato
Gli strumenti di sviluppo delle estensioni Firebase supportano il caricamento di versioni pre-release delle tue estensioni, il che ti consente di testare facilmente le estensioni e il processo di installazione delle estensioni nello stesso ambiente in cui verranno eventualmente rilasciate.
Questa capacità rende possibile un ciclo di sviluppo come il seguente:
Sviluppa ed esegui rapidamente l'iterazione della tua estensione utilizzando Firebase Emulator Suite .
Metti alla prova la tua estensione in un progetto reale installandola dalla fonte locale:
firebase ext:install /path/to/extension
firebase deploy --only extensions
Carica una versione pre-release nell'hub delle estensioni (vedi sotto). Distribuisci il collegamento di installazione per test più ampi e ripeti caricando più versioni pre-release, se necessario.
Carica la versione finale, stabile, sull'Hub Estensioni (vedi sotto) e inviala per la revisione. Se l'estensione supera la revisione, verrà pubblicata su Extension Hub.
Incrementa il numero di versione in
extension.yaml
e ripeti questo ciclo per la versione successiva della tua estensione.
Carica una nuova estensione
Per caricare un'estensione per la prima volta:
Facoltativo : salva il tuo codice in un repository GitHub pubblico.
Esegui il comando
ext:dev:upload
della CLI di Firebase:GitHub
firebase ext:dev:upload your_publisher_id/your_extension_id
Fonte locale
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Nell'invocazione del comando, specifichi quanto segue:
L'ID editore che hai registrato .
Una stringa ID che identificherà l'estensione. Assegna un nome alle estensioni con il seguente formato:
firebase-product - description-of-tasks-performed
. Ad esempio:firestore-bigquery-export
Il comando richiederà ulteriori informazioni:
Se stai caricando da GitHub:
L'URL del repository dell'estensione in GitHub. Tieni presente che un repository può contenere più estensioni purché ciascuna estensione abbia una radice univoca.
Quando carichi una nuova estensione per la prima volta, il repository verrà registrato come origine canonica per la tua estensione.
La directory nel repository che contiene la tua estensione.
Il riferimento Git del commit da cui vuoi creare l'origine della versione dell'estensione. Può trattarsi di un hash di commit, di un tag o di un nome di ramo.
La fase di rilascio della versione che stai caricando.
Le fasi
alpha
,beta
erc
(release candidate) servono per caricare le versioni pre-release che i tester potranno installare. Utilizza una di queste fasi per il caricamento iniziale di una nuova estensione.La fase
stable
viene utilizzata per le versioni pubbliche da pubblicare su Extensions Hub. Il caricamento di una versionestable
avvierà automaticamente una revisione e, se superata, pubblicherà l'estensione.
Nota che non specifichi un numero di versione: questo valore proviene dal file
extension.yaml
. Quando carichi una versione di estensione pre-release, alla versione vengono aggiunti la fase e il numero di caricamento. Ad esempio, seextension.yaml
specifica la versione 1.0.1 e carichi una release candidate, il risultato sarà la versione1.0.1-rc.0
; caricare un'altra release candidate della stessa versione incrementerebbe automaticamente il conteggio, risultando in1.0.1-rc.1
e così via.
Ora che hai caricato una versione pre-release dell'estensione, puoi condividerla con altri per testarla. Gli utenti possono installare la tua estensione in due modi:
Con la console : gli utenti possono installare l'estensione facendo clic su un collegamento con il seguente formato:
https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version
Puoi condividere il collegamento diretto con i tuoi tester.
Con la CLI : gli utenti possono installare l'estensione passando la stringa dell'ID dell'estensione 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 aggiornamenti per risolvere problemi, aggiungere funzionalità o far avanzare la fase di rilascio. Quando carichi una nuova versione, agli utenti che hanno installato una versione precedente della tua estensione verrà richiesto nella console Firebase di eseguire l'aggiornamento.
Per caricare un aggiornamento:
Facoltativo : salva il tuo codice in un repository Git pubblico.
Esegui il comando
ext:dev:upload
della CLI 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 la directory root dell'estensione poiché sono già stati configurati per la tua estensione. Se da allora hai effettuato il refactoring della struttura del repository o la migrazione a un nuovo repository, puoi modificarli con gli argomenti del comando
--root
e--repo
.Fonte locale
cd /path/to/extension
firebase ext:dev:upload your_publisher_id/your_extension_id --local
Inviare un'estensione per la pubblicazione
Quando sei pronto per rilasciare pubblicamente la tua estensione:
Invia il tuo codice a un repository Git pubblico. (Obbligatorio per le versioni pubbliche.)
Esegui il comando
ext:dev:upload
della CLI di Firebase, specificandostable
come fase di rilascio:firebase ext:dev:upload your_publisher_id/your_extension_id
Se hai precedentemente pubblicato una versione della tua estensione, il caricamento di una nuova versione stabile invierà automaticamente l'estensione per la revisione.
Se hai caricato la prima versione stabile dell'estensione, trova l'estensione nella dashboard dell'editore e fai clic su Pubblica nell'hub delle estensioni .
Una volta inviato, la revisione può richiedere alcuni giorni. Se accettata, l'estensione verrà pubblicata nell'hub estensioni. In caso di rifiuto riceverai un messaggio che ne spiega il motivo; è quindi possibile risolvere i problemi segnalati e inviarli nuovamente per la revisione.
Per velocizzare la revisione e aumentare le possibilità di superarla al primo tentativo, prima di inviare, ricontrolla quanto segue:
- Hai testato a fondo la tua estensione e il processo di installazione.
- La documentazione è completa e corretta e viene visualizzata bene nella console Firebase.
- Il nome e il brand dell'editore ti identificano in modo chiaro e accurato come editore.
- Il nome, la descrizione e l'icona dell'estensione rappresentano in modo chiaro e accurato lo scopo dell'estensione.
- Hai applicato tag utili e precisi.
- Hai dichiarato in
extension.yaml
tutte le API Google e non Google che utilizzi e tutti i tipi di eventi emessi dalla tua estensione. - Stai richiedendo l'accesso solo ai ruoli necessari per il funzionamento dell'estensione e hai spiegato chiaramente agli utenti il motivo per cui hai bisogno di tale accesso.
- I tuoi file sorgente sono chiaramente concessi in licenza secondo i termini di
Apache-2.0
.
Gestisci le estensioni caricate e pubblicate
Elenca le estensioni caricate
Per elencare le estensioni che hai caricato sotto il tuo ID editore, esegui una delle seguenti operazioni:
Cruscotto dell'editore
Visualizzali sulla dashboard dell'editore .
CLI 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 che hai caricato con il tuo ID editore, esegui una delle seguenti operazioni:
Cruscotto dell'editore
La dashboard dell'editore presenta metriche di utilizzo cumulative per tutte le tue estensioni e metriche individuali per ciascuna estensione.
CLI di Firebase
Esegui il comando ext:dev:usage
:
firebase ext:dev:usage your_publisher_id
Deprecare una versione di un'estensione
Ad un certo punto, potresti voler deprecare una vecchia versione della tua estensione. Ad esempio, se rilasci una nuova versione che corregge un bug critico o aggiorna una dipendenza con un importante aggiornamento di sicurezza, è importante impedire ai nuovi utenti di installare una versione precedente e incoraggiare gli utenti esistenti a eseguire l'aggiornamento.
Per deprecare una versione di un'estensione, effettuare una delle seguenti operazioni:
Cruscotto dell'editore
- Nella dashboard dell'editore , fai clic sull'estensione per aprire la relativa visualizzazione dei dettagli.
- Seleziona la versione che desideri deprecare.
- Fai clic su Versione obsoleta .
CLI di Firebase
Esegui il comando ext:dev:deprecate
:
firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
[--message "deprecation_message"]
È possibile 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 estensioni e non possono essere installate. Gli utenti i cui progetti hanno una versione deprecata installata vedranno un messaggio che li incoraggia ad aggiornare; nel frattempo potranno comunque utilizzare e riconfigurare l'estensione.
Se ogni versione di un'estensione è deprecata, l'estensione sarà considerata deprecata e verrà rimossa dall'hub delle estensioni. Il caricamento di una nuova versione di un'estensione obsoleta avvierà automaticamente una revisione e, dopo l'accettazione, la pubblicherà nuovamente sull'hub delle estensioni.
Per annullare una deprecazione, utilizza il dashboard dell'editore o esegui il comando ext:dev:undeprecate
della CLI di Firebase:
firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions
Appendice: risoluzione dei problemi relativi agli errori di creazione
Quando carichi la tua estensione, il backend crea prima il tuo codice sorgente utilizzando il seguente processo:
Clona il tuo repository GitHub ed effettua il check-out del riferimento sorgente specificato.
Installa le dipendenze NPM eseguendo
npm clean-install
in ogni directory di origine della funzione specificata inextension.yaml
(vedisourceDirectory
nelle risorse Cloud Function ).Tieni presente quanto segue:
Ogni file
package.json
deve avere un filepackage-lock.json
corrispondente. Per ulteriori informazioni, vedere 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, esegui il refactoring prima del caricamento.
Crea il tuo codice eseguendo
npm run build
in ogni directory di origine della funzione specificata inextension.yaml
.
Solo la directory root della tua estensione verrà salvata nel pacchetto di estensione finale che verrà condiviso.
Se ricevi errori di creazione durante il caricamento dell'estensione, replica i passaggi di creazione precedenti localmente in una nuova directory finché non si verificano più errori, quindi prova a eseguire nuovamente il caricamento.