Lansman Modeli

Sorun bildirme Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

İlk blog yazısında duyurulduğu gibi, Bazel 4.0 ve sonraki sürümler iki yayın kanalını destekler: sürekli yayınlar ve uzun süreli destek (LTS) yayınları. Bu sayfada, Bazel'in yayın modeliyle ilgili en son bilgiler yer almaktadır.

Destek matrisi

LTS sürümü Destek aşaması Son sürüm Artık desteklenmiyor
Bazel 9 Daimi Aşamalı yayın sayfasını kontrol etme Yok
Bazel 8 Etkin 8.3.0 Aralık 2027
Bazel 7 Bakım 7.6.1 Aralık 2026
Bazel 6 Bakım 6.5.0 Aralık 2025
Bazel 5 Kullanımdan kaldırıldı 5.4.1 Ocak 2025
Bazel 4 Kullanımdan kaldırıldı 4.2.4 Ocak 2024

Tüm Bazel LTS sürümlerini GitHub'daki sürüm sayfasında bulabilirsiniz.

Yayın sürümü oluşturma

Bazel, major.minor.patch anlamsal sürüm oluşturma şemasını kullanır.

  • Büyük sürümlerde, önceki sürümle geriye dönük uyumlu olmayan özellikler bulunur. Her ana Bazel sürümü bir LTS sürümüdür.
  • Ara sürüm, geriye dönük olarak uyumlu hata düzeltmeleri ve ana daldan geri aktarılan özellikleri içerir.
  • Yama sürümü, önemli hata düzeltmeleri içerir.

Ayrıca, yayın öncesi sürümler, bir sonraki ana sürüm numarasına tire ve tarih soneki eklenerek belirtilir.

Örneğin, her türden yeni bir sürüm şu sürüm numaralarını oluşturur:

  • Büyük: 6.0.0
  • Küçük: 6.1.0
  • Yama: 6.1.2
  • Lansman öncesi sürüm: 7.0.0-pre.20230502.1

Destek aşamaları

Her ana Bazel sürümü için dört destek aşaması vardır:

  • Rolling: Bu ana sürüm henüz yayın öncesi aşamasındadır. Bazel ekibi, HEAD'den rolling sürümler yayınlar.
  • Etkin: Bu ana sürüm, şu anda etkin olan LTS sürümüdür. Bazel ekibi, önemli özellikleri ve hata düzeltmelerini küçük sürümlerine geri aktarır.
  • Bakım: Bu ana sürüm, bakım modunda eski bir LTS sürümüdür. Bazel ekibi, yalnızca güvenlik sorunları ve işletim sistemi uyumluluğu sorunlarıyla ilgili kritik hata düzeltmelerini bu LTS sürümüne geri aktarmayı garanti eder.
  • Desteği sonlandırıldı: Bazel ekibi artık bu ana sürüm için destek sağlamıyor. Tüm kullanıcılar daha yeni Bazel LTS sürümlerine geçmelidir.

Yayın sıklığı

Bazel, düzenli olarak iki sürüm kanalı için sürümler yayınlar.

Periyodik yayınlar

  • Aşamalı sürümler, Google Blaze sürümüyle koordine edilir ve yaklaşık iki haftada bir HEAD'den yayınlanır. Bu, bir sonraki Bazel LTS sürümünün önizlemesidir.
  • Aşamalı yayınlar, uyumsuz değişiklikler içerebilir. Uyumsuzluk işaretleri, büyük ve uyumsuz değişiklikler için önerilir. Uyumsuz değişikliklerin kullanıma sunulması, geriye dönük uyumluluk politikamıza uygun olmalıdır.

LTS sürümleri

  • Ana sürüm: Yaklaşık 12 ayda bir HEAD'den yeni bir LTS sürümünün oluşturulması bekleniyor. Yeni bir LTS sürümü yayınlandığında hemen Etkin aşamasına girer ve önceki LTS sürümü Bakım aşamasına girer.
  • Küçük sürüm: Etkin LTS kanalındaki yeni küçük sürümlerin 2 ayda bir yayınlanması beklenir.
  • Yama sürümü: Aktif ve bakım aşamasındaki LTS sürümleri için yeni yama sürümlerinin, kritik hata düzeltmeleri için talep üzerine yayınlanması beklenmektedir.
  • Bazel LTS sürümü, 2 yıl boyunca Bakım aşamasında kaldıktan sonra Kullanımdan Kaldırıldı aşamasına girer.

Planlanan sürümler için lütfen GitHub'daki sürüm sorunlarımızı inceleyin.

Yayınlama prosedürü ve politikaları

Kademeli yayınlarda süreç basittir: Yaklaşık iki haftada bir, Google'ın dahili Blaze yayınıyla aynı temele uygun yeni bir yayın oluşturulur. Hızlı yayın takvimi nedeniyle, değişiklikleri sürekli yayınlara geri aktarmıyoruz.

LTS sürümlerinde aşağıdaki prosedür ve politikalar uygulanır:

  1. Yayın için temel bir commit belirleyin.
    • Yeni bir ana LTS sürümünde, temel taahhüt ana dalın HEAD'idir.
    • Küçük veya yama sürümü için temel commit, aynı LTS sürümünün mevcut en son sürümünün HEAD'idir.
  2. Temel alınan commit'ten release-<version> adına bir yayın dalı oluşturun.
  3. Çekme istekleri aracılığıyla değişiklikleri yayın dalına geri aktarın.
    • Topluluk, ilgili GitHub sorunlarına veya PR'lere "@bazel-io flag" yanıtını vererek belirli commit'lerin geri taşınmasını önerebilir. Bu yanıt, commit'leri potansiyel yayın engelleyici olarak işaretler. Bazel ekibi, bu commit'leri önceliklendirir ve geri taşınıp taşınmayacağına karar verir.
    • Yalnızca ana daldaki geriye dönük uyumlu işlemeler geri aktarılabilir. Birleştirme çakışmalarını çözmek için yapılan ek küçük değişiklikler kabul edilebilir.
  4. Bazel bakımcıları için Cherry-Pick Request Issue'yu kullanarak değişiklikleri geri taşıyın.

    • Bazel'in bakımını yapanlar, belirli commit'lerin bir yayın dalına seçilmesini isteyebilir. Bu işlem, GitHub'da bir cherry-pick isteği oluşturularak başlatılır. Bunu nasıl yapacağınız aşağıda açıklanmıştır.

      1. Cherry-pick isteğini açın.
      2. İstek ayrıntılarını doldurun.
        • Başlık: İsteğe kısa ve açıklayıcı bir başlık verin.
        • Commit kimlikleri: Cherry-pick yapmak istediğiniz commit'lerin kimliklerini girin. Birden fazla commit varsa bunları virgülle ayırın.
        • Kategori: İsteğin kategorisini belirtin.
        • İnceleyenler: Birden fazla inceleyen varsa GitHub kimliklerini virgülle ayırın.
      3. Ara hedefi ayarlayın.
        • "Dönüm noktası" bölümünü bulun ve ayarı tıklayın.
        • Uygun X.Y.Z sürümünü engelleyen sorunları seçin. Bu işlem, "release-X.Y.Z" dalı için isteğinizi işlemek üzere cherry-pick botunu tetikler.
      4. Sorunu Gönderme
        • Tüm ayrıntılar doldurulup dönüm noktası ayarlandıktan sonra sorunu gönderin.
    • Cherry-pick bot, isteği işler ve commit'lerin cherry-pick için uygun olup olmadığını bildirir. Commit'ler cherry-pickable ise (yani commit'i cherry-pick yaparken birleştirme çakışması yoksa) bot yeni bir çekme isteği oluşturur. Çekme isteği Bazel ekibinin bir üyesi tarafından onaylandığında, işlemeler seçilerek yayın dalıyla birleştirilir. Tamamlanmış bir cherry-pick isteğinin görsel örneği için bu örneğe bakın .

  5. Yayınlanmayı engelleyen sorunları belirleyin ve yayınlanma dalında bulunan sorunları düzeltin.

    • Sürüm dalı, Bazel CI'da postsubmit ve downstream test pipeline'daki aynı test paketiyle test edilir. Bazel ekibi, yayın dalının test sonuçlarını izler ve bulunan gerilemeleri düzeltir.
  6. Bilinen tüm sürüm engelleyicileri çözüldüğünde sürüm dalından yeni bir yayın adayı oluşturun.

    • Yayın adayı bazel-discuss listesinde duyurulur. Bazel ekibi, aday için topluluk tarafından gönderilen hata raporlarını izler.
    • Yeni yayın engelleme sorunları tespit edilirse son adıma geri dönün ve tüm sorunları çözdükten sonra yeni bir yayın adayı oluşturun.
    • İlk sürüm adayı oluşturulduktan sonra sürüm dalına yeni özellikler eklenemez. Cherry-pick'ler yalnızca kritik düzeltmelerle sınırlıdır. Bir cherry-pick işlemi gerekiyorsa istekte bulunan kişi aşağıdaki soruları yanıtlamalıdır: Bu değişiklik neden kritik öneme sahip ve ne gibi avantajlar sunuyor? Bu değişikliğin gerilemeye yol açma olasılığı nedir?
  7. Başka sürüm engelleyici bulunmazsa sürüm adayını resmi sürüm olarak yayınlama

    • Yama sürümleri için, son sürüm adayı yayınlandıktan en az iki iş günü sonra sürümü yayınlayın.
    • Ana ve küçük sürümlerde, son sürüm adayı yayınlandıktan iki iş günü sonra sürümü yayınlayın. Ancak ilk sürüm adayı yayınlandıktan bir hafta geçmeden sürümü yayınlamayın.
    • Yayın yalnızca ertesi günün iş günü olduğu günlerde gönderilir.
    • Yayın, bazel-discuss adresinde duyurulur. Bazel ekibi, yeni yayınla ilgili topluluk tarafından bildirilen hata raporlarını izler ve ele alır.

Regresyonları bildirme

Kullanıcılar yeni bir Bazel sürümünde, yayın adayında veya HEAD'deki Bazel'de gerileme tespit ederse lütfen GitHub'da hata bildiriminde bulunun. Suçlu commit'i ikiye bölmek ve bu bilgileri hata raporuna eklemek için Bazelisk'i kullanabilirsiniz.

Örneğin, derlemeniz Bazel 6.1.0 ile başarılı olurken 6.2.0'ın ikinci yayın adayıyla başarısız olursa aşağıdaki komutla ikiye bölme işlemi yapabilirsiniz:

bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar

Sorunu yeniden üretmek gerekirse derleme durumunu sıfırlamak için ilgili Bazel komutlarını çalıştırmak üzere BAZELISK_SHUTDOWN veya BAZELISK_CLEAN ortam değişkenini ayarlayabilirsiniz. Daha fazla bilgi için Bazelisk bisect özelliği ile ilgili dokümanlara göz atın.

Bisect özelliğini kullanmak için Bazelisk'i en yeni sürüme yükseltmeyi unutmayın.

Kural uyumluluğu

Kural yazarıysanız ve farklı Bazel sürümleriyle uyumluluğu korumak istiyorsanız lütfen Kural Uyumluluğu sayfasını inceleyin.