Opublikuj rozszerzenie

Na tej stronie wyjaśniono, w jaki sposób można opublikować rozszerzenie w Centrum rozszerzeń.

Zanim zaczniesz

Aby opublikować rozszerzenie, musisz najpierw zarejestrować się jako wydawca rozszerzeń .

Sprawdzone źródła

Wszystkie rozszerzenia publikowane w Extensions Hub muszą mieć publicznie weryfikowalne źródło. Zamiast przesyłać kod źródłowy rozszerzenia bezpośrednio do Extensions Hub, zamiast tego określasz lokalizację źródłową, a Extension Hub pobierze go i stamtąd zbuduje.

Obecnie oznacza to udostępnienie kodu źródłowego rozszerzenia w publicznym repozytorium GitHub.

Przesyłanie z weryfikowalnego źródła ma kilka zalet:

  • Użytkownicy mogą sprawdzić kod źródłowy konkretnej wersji rozszerzenia, które zostanie zainstalowane.
  • Możesz mieć pewność, że przesyłasz tylko to, co zamierzasz przesłać, a nie na przykład prace w toku lub niepotrzebne pliki pozostałe po opracowaniu.

Zalecany cykl rozwoju

Narzędzia programistyczne Firebase Extensions obsługują przesyłanie przedpremierowych wersji rozszerzeń, co ułatwia testowanie rozszerzeń i proces instalacji rozszerzeń w tym samym środowisku, w którym zostaną ostatecznie wydane.

Ta funkcja umożliwia cykl rozwoju podobny do następującego:

  1. Twórz i szybko wykonuj iteracje na swoim rozszerzeniu, korzystając z pakietu Firebase Emulator Suite .

  2. Przetestuj swoje rozszerzenie w prawdziwym projekcie, instalując je z lokalnego źródła:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. Prześlij wersję przedpremierową do Extensions Hub (patrz poniżej). Rozpowszechnij link instalacyjny w celu szerszego przetestowania i wykonaj iterację, przesyłając więcej wersji przedpremierowych, jeśli to konieczne.

  4. Prześlij ostateczną, stabilną wersję do Extensions Hub (patrz poniżej) i prześlij ją do sprawdzenia. Jeśli rozszerzenie przejdzie pomyślnie sprawdzenie, zostanie opublikowane w Extension Hub.

  5. Zwiększ numer wersji w extension.yaml i powtórz ten cykl dla następnej wersji rozszerzenia.

Prześlij nowe rozszerzenie

Aby przesłać rozszerzenie po raz pierwszy:

  1. Opcjonalnie : Zatwierdź swój kod w publicznym repozytorium GitHub.

  2. Uruchom polecenie ext:dev:upload interfejsu Firebase CLI:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Źródło lokalne

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

    W wywołaniu polecenia podajesz następujące informacje:

    • Zarejestrowany identyfikator wydawcy .

    • Ciąg identyfikacyjny, który będzie identyfikował rozszerzenie. Nazwij swoje rozszerzenia w następującym formacie: firebase-product - description-of-tasks-performed . Na przykład: firestore-bigquery-export

    Polecenie wyświetli monit o podanie dodatkowych informacji:

    • Jeśli przesyłasz z GitHub:

      • Adres URL repozytorium rozszerzenia w GitHub. Należy pamiętać, że repozytorium może zawierać wiele rozszerzeń, o ile każde rozszerzenie ma unikalny katalog główny.

        Gdy po raz pierwszy prześlesz nowe rozszerzenie, repozytorium zostanie zarejestrowane jako kanoniczne źródło Twojego rozszerzenia.

      • Katalog w repozytorium zawierający Twoje rozszerzenie.

      • Referencja Git dotycząca zatwierdzenia, z którego chcesz zbudować źródło wersji rozszerzenia. Może to być skrót zatwierdzenia, znacznik lub nazwa gałęzi.

    • Etap wydania przesyłanej wersji.

      Etapy alpha , beta i rc (kandydat do wydania) służą do przesyłania wersji przedpremierowych do zainstalowania przez testerów. Użyj jednego z tych etapów do wstępnego przesłania nowego rozszerzenia.

      Scena stable służy do publikacji publicznych wydań w Extensions Hub. Przesłanie wersji stable automatycznie zainicjuje recenzję i, jeśli się powiedzie, opublikuje rozszerzenie.

    Zwróć uwagę, że nie podajesz numeru wersji — ta wartość pochodzi z pliku extension.yaml . Gdy przesyłasz przedpremierową wersję rozszerzenia, do wersji dołączany jest numer etapu i przesyłania. Na przykład, jeśli plik extension.yaml określa wersję 1.0.1 i przesyłasz wersję Release Candidate, wynikiem będzie wersja 1.0.1-rc.0 ; przesłanie innego kandydata do wydania tej samej wersji spowodowałoby automatyczne zwiększenie liczby, co dałoby 1.0.1-rc.1 i tak dalej.

Po przesłaniu przedpremierowej wersji rozszerzenia możesz udostępnić ją innym w celu przetestowania. Użytkownicy mogą zainstalować rozszerzenie na dwa sposoby:

  • Za pomocą konsoli : Użytkownicy mogą zainstalować rozszerzenie, klikając łącze w następującym formacie:

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

    Możesz udostępnić bezpośredni link swoim testerom.

  • Za pomocą interfejsu CLI : użytkownicy mogą zainstalować rozszerzenie, przekazując ciąg identyfikacyjny rozszerzenia do polecenia ext:install :

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

Prześlij zaktualizowaną wersję

Po przesłaniu pierwszej wersji rozszerzenia możesz przesłać aktualizacje, aby rozwiązać problemy, dodać funkcje lub przyspieszyć etap wydawania. Gdy prześlesz nową wersję, użytkownicy, którzy mają zainstalowaną starszą wersję Twojego rozszerzenia, zostaną poproszeni w konsoli Firebase o dokonanie aktualizacji.

Aby przesłać aktualizację:

  1. Opcjonalnie : Zatwierdź swój kod w publicznym repozytorium Git.

  2. Uruchom polecenie ext:dev:upload interfejsu Firebase CLI:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Tym razem nie zostaniesz poproszony o określenie repozytorium GitHub ani katalogu głównego rozszerzenia, ponieważ zostały one już skonfigurowane dla Twojego rozszerzenia. Jeśli od tego czasu dokonałeś refaktoryzacji struktury repozytorium lub przeprowadziłeś migrację do nowego repozytorium, możesz je zmienić za pomocą argumentów poleceń --root i --repo .

    Źródło lokalne

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

Prześlij rozszerzenie do publikacji

Kiedy będziesz gotowy, aby publicznie udostępnić swoje rozszerzenie:

  1. Zatwierdź swój kod w publicznym repozytorium Git. (Wymagane w przypadku publikacji publicznych.)

  2. Uruchom polecenie ext:dev:upload interfejsu Firebase CLI, określając stable jako etap wydania:

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. Jeśli już opublikowałeś wersję swojego rozszerzenia, przesłanie nowej wersji stabilnej spowoduje automatyczne przesłanie rozszerzenia do sprawdzenia.

    Jeśli przesłałeś pierwszą stabilną wersję rozszerzenia, znajdź je w panelu wydawcy i kliknij Opublikuj w Centrum rozszerzeń .

Po przesłaniu sprawdzenie może zająć kilka dni. Jeśli zostanie zaakceptowane, rozszerzenie zostanie opublikowane w Centrum rozszerzeń. W przypadku odrzucenia otrzymasz wiadomość wyjaśniającą przyczynę; możesz następnie rozwiązać zgłoszone problemy i przesłać je ponownie do sprawdzenia.

Aby przyspieszyć weryfikację i zwiększyć swoje szanse na zdanie za pierwszym podejściem, przed przesłaniem sprawdź dwukrotnie następujące elementy:

  • Dokładnie przetestowałeś swoje rozszerzenie i proces instalacji.
  • Twoja dokumentacja jest kompletna i poprawna oraz dobrze wyświetla się w konsoli Firebase.
  • Nazwa wydawcy i marka wyraźnie i dokładnie identyfikują Cię jako wydawcę.
  • Nazwa, opis i ikona Twojego rozszerzenia wyraźnie i dokładnie przedstawiają jego cel.
  • Zastosowałeś pomocne i dokładne tagi.
  • Zadeklarowałeś w extension.yaml wszystkie używane przez Ciebie interfejsy API Google i innych firm oraz wszystkie typy zdarzeń emitowane przez Twoje rozszerzenie.
  • Żądasz dostępu tylko do ról niezbędnych do działania rozszerzenia i jasno wyjaśniłeś użytkownikom, dlaczego potrzebujesz takiego dostępu.
  • Twoje pliki źródłowe są wyraźnie licencjonowane zgodnie z warunkami Apache-2.0 .

Zarządzaj przesłanymi i opublikowanymi rozszerzeniami

Lista przesłanych rozszerzeń

Aby wyświetlić listę rozszerzeń przesłanych pod swoim identyfikatorem wydawcy, wykonaj jedną z następujących czynności:

Panel wydawcy

Wyświetl je w panelu wydawcy .

Interfejs wiersza polecenia Firebase

Uruchom polecenie ext:dev:list :

firebase ext:dev:list your_publisher_id

Zobacz wykorzystanie przesłanych rozszerzeń

Aby wyświetlić wykorzystanie rozszerzeń przesłanych pod identyfikatorem wydawcy, wykonaj jedną z następujących czynności:

Panel wydawcy

Panel wydawcy zawiera zbiorcze dane dotyczące wykorzystania wszystkich rozszerzeń oraz indywidualne dane dotyczące każdego rozszerzenia.

Interfejs wiersza polecenia Firebase

Uruchom polecenie ext:dev:usage :

firebase ext:dev:usage your_publisher_id

Wycofywanie wersji rozszerzenia

W pewnym momencie możesz chcieć wycofać starą wersję rozszerzenia. Na przykład, jeśli wypuścisz nową wersję, która naprawia krytyczny błąd lub aktualizuje zależność ważną aktualizacją zabezpieczeń, ważne jest, aby uniemożliwić nowym użytkownikom instalowanie starej wersji i zachęcić istniejących użytkowników do aktualizacji.

Aby wycofać wersję rozszerzenia, wykonaj jedną z następujących czynności:

Panel wydawcy

  1. W panelu wydawcy kliknij rozszerzenie, aby otworzyć jego widok szczegółów.
  2. Wybierz wersję, którą chcesz wycofać.
  3. Kliknij opcję Wycofana wersja .

Interfejs wiersza polecenia Firebase

Uruchom polecenie ext:dev:deprecate :

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

Można określić pojedynczą wersję lub zakres wersji. Przykłady:

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

Przestarzałe wersje rozszerzeń nie są wymienione w Centrum rozszerzeń i nie można ich zainstalować. Użytkownicy, których projekty mają zainstalowaną przestarzałą wersję, zobaczą komunikat zachęcający ich do aktualizacji; w międzyczasie mogą nadal używać i ponownie konfigurować rozszerzenie.

Jeśli każda wersja rozszerzenia stanie się przestarzała, rozszerzenie zostanie uznane za przestarzałe i zostanie usunięte z Centrum rozszerzeń. Przesłanie nowej wersji przestarzałego rozszerzenia automatycznie zainicjuje sprawdzenie, a po akceptacji ponowne opublikowanie go w Centrum rozszerzeń.

Aby cofnąć wycofanie, użyj panelu wydawcy lub uruchom polecenie ext:dev:undeprecate interfejsu CLI Firebase:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Dodatek: Rozwiązywanie problemów z błędami kompilacji

Kiedy przesyłasz rozszerzenie, backend najpierw tworzy kod źródłowy, korzystając z następującego procesu:

  1. Klonuje repozytorium GitHub i sprawdza określony odnośnik źródłowy.

  2. Instaluje zależności NPM, uruchamiając npm clean-install w każdym katalogu źródeł funkcji określonym w pliku extension.yaml (zobacz sourceDirectory w zasobach Cloud Function ).

    Zwróć uwagę na następujące kwestie:

    • Każdy plik package.json musi mieć odpowiadający mu plik package-lock.json . Aby uzyskać więcej informacji, zobacz npm-ci .

    • Skrypty poinstalacyjne nie będą uruchamiane podczas instalacji zależności. Jeśli kompilacja kodu źródłowego opiera się na skryptach poinstalacyjnych, przeprowadź jego refaktoryzację przed przesłaniem.

  3. Kompiluje kod, uruchamiając npm run build w każdym katalogu źródeł funkcji określonym w extension.yaml .

Tylko katalog główny Twojego rozszerzenia zostanie zapisany w ostatecznym pakiecie rozszerzeń, który zostanie udostępniony.

Jeśli podczas przesyłania rozszerzenia wystąpią błędy kompilacji, powtórz powyższe kroki kompilacji lokalnie w nowym katalogu, aż nie będzie żadnych błędów, a następnie spróbuj przesłać ponownie.