Uzantınızı yayınlama

Bu sayfada, Extensions Hub'da uzantıları nasıl yayınlayabileceğiniz açıklanmaktadır.

Başlamadan önce

Bir uzantı yayınlamak için önce uzantı yayıncısı olarak kaydolmanız gerekir.

Doğrulanabilir kaynaklar

Extensions Hub'da yayınlanan tüm uzantıların herkes tarafından doğrulanabilir bir kaynağı olmalıdır. Uzantı kaynak kodunuzu doğrudan Extensions Hub'a yüklemek yerine kaynak konumunu belirtirsiniz. Extension Hub, uzantıyı indirip oradan oluşturur.

Şu anda bu, uzantı kaynak kodunuzun herkese açık bir GitHub deposunda kullanıma sunulması anlamına geliyor.

Doğrulanabilir bir kaynaktan yüklemenin çeşitli avantajları vardır:

  • Kullanıcılar, yüklenecek uzantının ilgili düzeltmesinin kaynak kodunu inceleyebilir.
  • Yalnızca yüklemek istediğiniz öğeleri yüklediğinizden ve örneğin devam eden çalışmalar veya geliştirmede kalan dosyaları silmediğinizden emin olabilirsiniz.

Önerilen geliştirme döngüsü

Firebase Extensions geliştirme araçları, uzantılarınızın yayın öncesi sürümlerinin yüklenmesini destekler. Böylece, uzantılarınızı ve uzantı yükleme işlemini en sonunda yayınlanacakları ortamda kolayca test edebilirsiniz.

Bu olanak, aşağıdaki gibi bir geliştirme döngüsünü mümkün kılar:

  1. Firebase Emulator Suite'i kullanarak uzantınızı geliştirin ve hızla yineleyin.

  2. Uzantınızı yerel kaynaktan yükleyerek gerçek bir projede test edin:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
    
  3. Uzantı Merkezi'ne yayın öncesi bir sürüm yükleyin (aşağıya bakın). Daha kapsamlı testler için yükleme bağlantısını dağıtın ve gerektiğinde daha fazla yayın öncesi sürüm yükleyerek tekrarlayın.

  4. Uzantıların kararlı olan son sürümünü Extensions Hub'a yükleyin (aşağıya bakın) ve incelemeye gönderin. Uzantı, incelemeyi geçerse Extension Hub'da yayınlanır.

  5. Sürüm numarasını extension.yaml üzerinde artırın ve uzantınızın bir sonraki sürümü için bu döngüyü tekrarlayın.

Yeni uzantı yükleme

Bir uzantıyı ilk kez yüklemek için:

  1. İsteğe bağlı: Kodunuzu herkese açık bir GitHub deposuna kaydedin.

  2. Firebase CLI'ın ext:dev:upload komutunu çalıştırın:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Yerel kaynak

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

    Komut çağrınızda aşağıdakileri belirtirsiniz:

    • Kaydolduğunuz yayıncı kimliği.

    • Uzantıyı tanımlayan bir kimlik dizesi. Uzantılarınızı aşağıdaki biçimi kullanarak adlandırın: firebase-product-description-of-tasks-performed. Örnek: firestore-bigquery-export

    Komut, ek bilgi sağlamanızı ister:

    • GitHub'dan yükleme yapıyorsanız:

      • Uzantının GitHub'daki deposunun URL'si. Her uzantı benzersiz bir köke sahip olduğu sürece bir deponun birden fazla uzantı içerebileceğini unutmayın.

        İlk kez yeni bir uzantı yüklediğinizde kod deposu, uzantınız için standart kaynak olarak kaydedilir.

      • Kod deposundaki, uzantınızı içeren dizin.

      • Uzantı sürüm kaynağınızı oluşturmak istediğiniz kaydetmenin Git referansı. Bu bir kaydetme karması, etiket veya dal adı olabilir.

    • Yüklediğiniz sürümün yayınlama aşaması.

      alpha, beta ve rc (sürüm adayı) aşamaları, test kullanıcılarının yüklemesi için yayın öncesi sürümleri yüklemek amacıyla kullanılır. Yeni bir uzantının ilk kez yüklenmesi için bu aşamalardan birini kullanın.

      stable aşaması, Extensions Hub'da yayınlanacak herkese açık sürümler için kullanılır. Bir stable sürümü yüklendiğinde otomatik olarak inceleme başlatılır ve inceleme başarılı olursa uzantı yayınlanır.

    Sürüm numarası belirtmediğinizi unutmayın. Bu değer, extension.yaml dosyasından gelir. Yayın öncesi bir uzantı sürümü yüklediğinizde aşama ve yükleme numarası sürüme eklenir. Örneğin, extension.yaml, 1.0.1 sürümünü belirtiyorsa ve bir sürüm adayı yüklerseniz 1.0.1-rc.0 sürümü oluşturulur. Aynı sürümü başka bir aday yüklemek, bu sayıyı otomatik olarak artırır. Bu da 1.0.1-rc.1 sonucunu verir.

Uzantının yayın öncesi sürümünü yüklediğinize göre bunu test için başkalarıyla paylaşabilirsiniz. Kullanıcılar, uzantınızı iki yöntemden biriyle yükleyebilir:

  • Konsol ile: Kullanıcılar, aşağıdaki biçime sahip bir bağlantıyı tıklayarak uzantıyı yükleyebilir:

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

    Doğrudan bağlantıyı test kullanıcılarınızla paylaşabilirsiniz.

  • KSA ile: Kullanıcılar, uzantı kimliği dizesini ext:install komutuna ileterek uzantıyı yükleyebilir:

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

Güncellenmiş bir sürümü yükleyin

Bir uzantının ilk sürümünü yükledikten sonra sorunları düzeltmek, özellik eklemek veya sürüm aşamasını ilerletmek için güncellemeleri yükleyebilirsiniz. Yeni bir sürüm yüklediğinizde, Firebase konsolunda uzantınızın daha eski bir sürümünü yüklemiş olan kullanıcılardan yeni sürüme geçmeleri istenir.

Güncelleme yüklemek için:

  1. İsteğe bağlı: Kodunuzu herkese açık bir Git deposuna kaydedin.

  2. Firebase CLI'ın ext:dev:upload komutunu çalıştırın:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Uzantınız için zaten yapılandırılmış olduklarından bu kez GitHub deposunu veya uzantı kök dizinini belirtmeniz istenmez. Bu tarihten sonra depo yapınızı yeniden düzenlediyseniz veya yeni bir depoya taşındıysanız bunları --root ve --repo komut bağımsız değişkenleriyle değiştirebilirsiniz.

    Yerel kaynak

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

Yayınlanmak üzere uzantı gönderme

Uzantınızı herkese açık olarak yayınlamaya hazır olduğunuzda:

  1. Kodunuzu herkese açık bir Git deposuna kaydedin. (Herkese açık sürümler için gereklidir.)

  2. Firebase CLI'ın, sürüm aşaması olarak stable değerini belirterek Firebase CLI'sının ext:dev:upload komutunu çalıştırın:

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. Uzantınızın daha önce bir sürümünü yayınladıysanız yeni bir kararlı sürüm yüklediğinizde uzantı otomatik olarak incelemeye gönderilir.

    Uzantının ilk kararlı sürümünü yüklediyseniz yayıncı kontrol panelinizde uzantıyı bulun ve Uzantılar Merkezi'nde Yayınla'yı tıklayın.

Gönderilen incelemenin tamamlanması birkaç gün sürebilir. Uzantı kabul edilirse Extensions Hub'da yayınlanır. İtirazın reddedilmesinin nedenini açıklayan bir mesaj alırsınız. Ardından, bildirilen sorunları giderebilir ve incelenmesi için yeniden gönderebilirsiniz.

İncelemeyi hızlandırmak ve ilk denemeyi geçme şansınızı artırmak için göndermeden önce aşağıdakileri bir kez daha kontrol edin:

  • Uzantınızı ve yükleme işlemini baştan sona test ettiniz.
  • Belgeleriniz eksiksiz ve doğru olmalı, Firebase konsolunda iyi bir şekilde oluşturulmalıdır.
  • Yayıncı adınız ve markanız, sizi yayıncı olarak açık ve doğru bir şekilde tanımlar.
  • Uzantınızın adı, açıklaması ve simgesi açık ve doğru bir şekilde uzantınızın amacını temsil etmektedir.
  • Faydalı ve doğru etiketler uyguladınız.
  • Kullandığınız tüm Google ve Google dışı API'leri ve uzantınızın yayınladığı tüm etkinlik türlerini extension.yaml içinde beyan ettiniz.
  • Yalnızca uzantının çalışması için gerekli olan rollere erişim istiyorsunuz ve kullanıcılara bu tür bir erişime neden ihtiyaç duyduğunuzu net bir şekilde açıkladınız.
  • Kaynak dosyalarınız, Apache-2.0 şartlarına göre açık bir şekilde lisanslanmıştır.

Yüklenen ve yayınlanan uzantıları yönetme

Yüklediğiniz uzantıları listeleme

Yayıncı kimliğiniz altında yüklediğiniz uzantıları listelemek için aşağıdakilerden birini yapın:

Yayıncı kontrol paneli

Bunları yayıncı kontrol panelinde görüntüleyebilirsiniz.

Firebase CLI

ext:dev:list komutunu çalıştırın:

firebase ext:dev:list your_publisher_id

Yüklediğiniz uzantıların kullanımını görüntüleme

Yayıncı kimliğiniz altında yüklediğiniz uzantıların kullanımını görüntülemek için aşağıdakilerden birini yapın:

Yayıncı kontrol paneli

Yayıncı kontrol panelinde tüm uzantılarınız için kümülatif kullanım metrikleri ve her uzantı için ayrı metrikler bulunur.

Firebase CLI

ext:dev:usage komutunu çalıştırın:

firebase ext:dev:usage your_publisher_id

Bir uzantının sürümünü kullanımdan kaldırma

Bir noktada uzantınızın eski bir sürümünü kullanımdan kaldırmak isteyebilirsiniz. Örneğin, kritik bir hatayı düzelten yeni bir sürüm yayınlarsanız veya bir bağımlılığı önemli bir güvenlik güncellemesiyle güncellerseniz yeni kullanıcıların eski bir sürümü yüklemesini engellemek ve mevcut kullanıcıları yeni sürüme geçmeye teşvik etmek önemlidir.

Bir uzantının sürümünü kullanımdan kaldırmak için aşağıdakilerden birini yapın:

Yayıncı kontrol paneli

  1. Yayıncı kontrol panelinde uzantıyı tıklayarak ayrıntılar görünümünü açın.
  2. Kullanımdan kaldırmak istediğiniz sürümü seçin.
  3. Sürümü kullanımdan kaldır'ı tıklayın.

Firebase CLI

ext:dev:deprecate komutunu çalıştırın:

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

Tek bir sürüm veya sürüm aralığı belirtebilirsiniz. Örnekler:

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

Uzantıların kullanımdan kaldırılmış sürümleri Extensions Hub'da listelenmez ve yüklenemez. Projelerinde desteği sonlandırılmış bir sürüm yüklü olan kullanıcılar, yeni sürüme geçmelerini teşvik eden bir mesaj görürler. Bu süre zarfında uzantıyı kullanmaya ve yeniden yapılandırmaya devam edebilirler.

Bir uzantının tüm sürümleri kullanımdan kaldırılırsa uzantı, kullanımdan kaldırılmış olarak kabul edilir ve Extensions Hub'da liste dışı bırakılır. Kullanımdan kaldırılmış bir uzantının yeni bir sürümünü yüklediğinizde otomatik olarak inceleme başlatılır ve kabul edildikten sonra bu uzantının Extensions Hub'da tekrar yayınlanması gerekir.

Desteğin sonlandırılması işlemini geri almak için yayıncı kontrol panelini kullanın veya Firebase KSA'sının ext:dev:undeprecate komutunu çalıştırın:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Ek: Yapı hatalarını giderme

Uzantınızı yüklediğinizde arka uç, önce aşağıdaki işlemi kullanarak kaynak kodunuzu oluşturur:

  1. GitHub deponuzu klonlar ve belirtilen kaynak referansını kontrol eder.

  2. extension.yaml politikasında belirtilen her işlev kaynağı dizininde npm clean-install çalıştırarak NPM bağımlılıklarını yükler (Cloud Function kaynakları bölümünde sourceDirectory bölümüne bakın).

    Aşağıdakileri göz önünde bulundurun:

    • Her package.json dosyasına karşılık gelen bir package-lock.json dosyası olmalıdır. Daha fazla bilgi için npm-ci'ye bakın.

    • Yükleme sonrası komut dosyaları, bağımlılık yüklemesi sırasında çalıştırılmaz. Kaynak kodu derlemeniz yükleme sonrası komut dosyalarına dayanıyorsa yüklemeden önce kodu yeniden düzenleyin.

  3. extension.yaml politikasında belirtilen her işlev kaynağı dizininde npm run build komutunu çalıştırarak kodunuzu oluşturur.

Paylaşılacak son uzantı paketine yalnızca uzantınızın kök dizini kaydedilir.

Uzantınızı yüklerken derleme hataları alırsanız yukarıdaki derleme adımlarını yerel olarak yeni bir dizinde çoğaltıp hata olmayana kadar yeniden yüklemeyi deneyin.