Uzantınızı yayınlayın

Bu sayfada, Uzantı Merkezi'nde uzantı yayınlama hakkında bilgi verilmektedir.

Başlamadan önce

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

Doğrulanabilir kaynaklar

Uzantı Merkezi'nde yayınlanan tüm uzantıların herkese açık olarak doğrulanabilir bir kaynağı olmalıdır. Uzantı kaynak kodunuzu doğrudan Extensions Hub'a yüklemek yerine kaynak konumunu belirtirsiniz. Extension Hub, kodu indirip buradan oluşturur.

Şu anda bu, uzantı kaynak kodunuzu herkese açık bir GitHub deposunda kullanıma sunmanız anlamına gelir.

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

  • Kullanıcılar, yüklenecek uzantının belirli bir sürümünün kaynak kodunu inceleyebilir.
  • Yalnızca yüklemek istediğiniz içerikleri yüklediğinizden emin olabilirsiniz. Örneğin, devam eden çalışmaları veya geliştirme sürecinden kalan gereksiz dosyaları yüklemezsiniz.

Önerilen geliştirme döngüsü

Firebase Uzantıları geliştirme araçları, uzantılarınızın yayın öncesi sürümlerini yüklemeyi destekler. Bu sayede, uzantılarınızı ve uzantı yükleme sürecini nihayetinde yayınlanacakları ortamda kolayca test edebilirsiniz.

Bu özellik, 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ızlı bir şekilde 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. Yayın öncesi sürümü Uzantı Merkezi'ne yükleyin (aşağıya bakın). Daha kapsamlı test için yükleme bağlantısını dağıtın ve gerektiğinde daha fazla yayın öncesi sürüm yükleyerek yineleme yapın.

  4. Son kararlı sürümü Uzantı Merkezi'ne yükleyin (aşağıya bakın) ve incelemeye gönderin. İncelemeyi geçen uzantılar, Uzantı Merkezi'nde yayınlanır.

  5. extension.yaml içinde sürüm numarasını artırın ve bu döngüyü uzantınızın bir sonraki sürümü için 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 gönderin.

  2. Firebase CLI'nı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:

    • Kaydettiğiniz yayıncı kimliği.

    • Uzantıyı tanımlayan bir kimlik dizesi. Uzantılarınızı şu biçimde adlandırın: firebase-product-description-of-tasks-performed. Örneğin: firestore-bigquery-export

    Komut, sizden ek bilgi ister:

    • GitHub'dan yüklüyorsanız:

      • Uzantının GitHub'daki deposunun URL'si. Her uzantının benzersiz bir kökü olduğu sürece bir depoda birden fazla uzantı bulunabileceğini unutmayın.

        İlk kez yeni bir uzantı yüklediğinizde, depo uzantınızın kanonik kaynağı olarak kaydedilir.

      • Depoda uzantınızı içeren dizin.

      • Uzantı sürümünüzün kaynak olarak alınmasını istediğiniz commit'in Git referansı. Bu, bir commit karması, etiket veya dal adı olabilir.

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

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

      stable aşaması, Uzantı Merkezi'nde yayınlanacak herkese açık sürümler için kullanılır. stable sürümünün yüklenmesiyle inceleme otomatik olarak başlatılır ve incelemeyi geçen uzantı yayınlanır.

    Sürüm numarası belirtmediğinizi fark edeceksiniz. Bu değer, extension.yaml dosyasından alınır. Yayın öncesi uzantı sürümü yüklediğinizde sürüme aşama ve yükleme numarası eklenir. Örneğin, extension.yaml sürüm 1.0.1'i belirtiyorsa ve yayın adayı yüklerseniz sürüm 1.0.1-rc.0 olur. Aynı sürümün başka bir yayın adayını yüklediğinizde sayı otomatik olarak artar ve 1.0.1-rc.1 olur.

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

  • Konsol ile: Kullanıcılar, aşağıdaki biçimde 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.

  • CLI 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ükleme

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

Güncelleme yüklemek için:

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

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

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Bu kez, GitHub deposunu veya uzantı kök dizinini belirtmeniz istenmez. Çünkü bunlar uzantınız için daha önce yapılandırılmıştır. Depo yapınızı yeniden düzenlediyseniz veya yeni bir depoya taşıdıysanız --root ve --repo komut bağımsız değişkenleriyle bunları değiştirebilirsiniz.

    Yerel kaynak

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

Yayınlanacak bir 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ın ext:dev:upload komutunu çalıştırın ve yayın aşaması olarak stable değerini belirtin:

    firebase ext:dev:upload your_publisher_id/your_extension_id
  3. Daha önce uzantınızın 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 uzantıyı yayıncı kontrol panelinizde bulun ve Uzantı Merkezi'nde yayınla'yı tıklayın.

Gönderildikten sonra inceleme işlemi birkaç gün sürebilir. Kabul edilirse uzantı, Uzantı Merkezi'nde yayınlanır. Reddedilirse nedeni açıklayan bir mesaj alırsınız. Ardından bildirilen sorunları düzeltebilir ve inceleme için yeniden gönderebilirsiniz.

İnceleme sürecini hızlandırmak ve ilk denemede onay alma şansınızı artırmak için göndermeden önce aşağıdakileri tekrar kontrol edin:

  • Uzantınızı ve yükleme sürecini ayrıntılı bir şekilde test etmiş olmanız gerekir.
  • Dokümanlarınız eksiksiz ve doğru olmalı, Firebase konsolunda iyi şekilde oluşturulmalıdır.
  • Yayıncı adınız ve markanız, sizi yayıncı olarak net ve doğru bir şekilde tanımlar.
  • Uzantınızın adı, açıklaması ve simgesi, uzantınızın amacını net ve doğru bir şekilde yansıtıyor.
  • Yararlı ve doğru etiketler uyguladınız.
  • extension.yaml içinde, kullandığınız tüm Google ve Google dışı API'leri ve uzantınızın yayınladığı tüm etkinlik türlerini beyan etmiş olmanız gerekir.
  • Yalnızca uzantının çalışması için gerekli olan rollere erişim isteğinde bulunuyorsunuz ve kullanıcılara neden bu tür bir erişime ihtiyacınız olduğunu açıkça açıklıyorsunuz.
  • Kaynak dosyalarınızın Apache-2.0 şartları kapsamında açıkça lisanslanmış olması gerekir.

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

Yüklediğiniz uzantıları listeleme

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

Yayıncı kontrol paneli

Bu bilgileri 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

Uzantının bir sürümünü kullanımdan kaldırma

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

Bir uzantı sürümünün desteğini sonlandı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. Desteğini sonlandırmak istediğiniz sürümü seçin.
  3. Sürüm desteğini sonlandı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 bir sürüm aralığı belirtebilirsiniz. Örnekler:

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

Bir uzantının desteği sonlandırılan sürümleri, Uzantı Merkezi'nde listelenmez ve yüklenemez. Projelerinde desteği sonlandırılmış bir sürüm yüklü olan kullanıcılar, yükseltme yapmalarını teşvik eden bir mesaj görür. Bu kullanıcılar, bu süre zarfında uzantıyı kullanmaya ve yeniden yapılandırmaya devam edebilir.

Bir uzantının her sürümü kullanımdan kaldırılırsa uzantı kullanımdan kaldırılmış olarak kabul edilir ve Uzantı Merkezi'nden kaldırılır. Kullanımdan kaldırılan bir uzantının yeni sürümünü yüklediğinizde otomatik olarak inceleme başlatılır ve kabul edildikten sonra uzantı, Uzantı Merkezi'nde tekrar yayınlanır.

Kullanımdan kaldırma işlemini geri almak için yayıncı kontrol panelini kullanın veya Firebase CLI'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ç, kaynak kodunuzu aşağıdaki işlemi kullanarak oluşturur:

  1. GitHub deponuzu kopyalar ve belirtilen kaynak referansını kullanır.

  2. npm clean-install komutunu extension.yaml içinde belirtilen her işlev kaynak dizininde çalıştırarak NPM bağımlılıklarını yükler (Cloud Functions kaynakları bölümündeki sourceDirectory'ye bakın).

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

    • Her package.json dosyasının karşılık gelen bir package-lock.json dosyası olmalıdır. Daha fazla bilgi için npm-ci sayfasına 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 yeniden düzenleyin.

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

Paylaşılacak nihai 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 hatasız şekilde tekrarlayın, ardından tekrar yüklemeyi deneyin.