Lansman Modeli

Sorun bildirin Kaynağı göster

Orijinal blog yayınında duyurulduğu gibi, Bazel 4.0 ve daha yeni sürümler iki sürüm kanalı için destek sağlar: yeni sürümler ve uzun süreli destek (LTS) sürümleri. Bu sayfada Bazel'ın sürüm modeliyle ilgili en son bilgiler yer almaktadır.

Sürüm oluşturma

Bazel, major.minor.patch Anlamsal Sürüm Oluşturma şemasını kullanır.

  • Ana sürüm, önceki sürümle geriye dönük uyumlu olmayan özellikler içerir. Her ana Bazel sürümü bir LTS sürümüdür.
  • Küçük sürüm, ana daldan geriye dönük olarak taşınan özellikler ve geriye dönük hata düzeltmeleri içerir.
  • Yama sürümü, kritik hata düzeltmelerini içerir.

Ayrıca, yayın öncesi sürümler, bir sonraki ana sürüm numarasına kısa çizgi ve tarih son eki eklenerek belirtilir.

Örneğin, her türün yeni bir sürümünde aşağıdaki sürüm numaraları elde edilir:

  • Birincil: 6.0.0
  • Küçük: 6.1.0
  • Yama: 6.1.2
  • Yayın öncesi: 7.0.0-pre.20230502.1

Destek aşamaları

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

  • Sürekli: Bu ana sürüm hâlâ yayın öncesi aşamadadır. Bazel ekibi, HEAD uygulamasından aşamalı sürümleri yayınlar.
  • Etkin: Bu ana sürüm, mevcut etkin LTS sürümüdür. Bazel ekibi, önemli özellikleri ve hata düzeltmelerini küçük sürümlerine geri aktarıyor.
  • Bakım: Bu ana sürüm, bakım modunda olan eski bir LTS sürümüdür. Bazel ekibi yalnızca güvenlik ve işletim sistemi uyumluluğu sorunlarına yönelik kritik hata düzeltmelerini bu LTS sürümüne geri aktarma sözü veriyor.
  • Kullanımdan kaldırıldı: Bazel ekibi artık bu ana sürüm için destek sağlamamaktadır. Tüm kullanıcılar daha yeni Bazel LTS sürümlerine geçmelidir.

Yayın sıklığı

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

Periyodik sürümler

  • Periyodik sürümler Google Blaze sürümüyle koordine edilir ve yaklaşık iki haftada bir HEAD üzerinden yayınlanır. Bir sonraki Bazel LTS sürümünün önizlemesidir.
  • Periyodik sürümler uyumlu olmayan değişiklikler gönderebilir. Zarar veren önemli değişiklikler için uyumsuz flag'ler ö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: Yeni bir LTS sürümünün yaklaşık 12 ayda bir HEAD'den kaldırılması beklenir. Yeni bir LTS sürümü çıktığında hemen Etkin aşamasına, önceki LTS sürümü de Bakım aşamasına geçer.
  • Küçük sürüm: Active LTS kanalındaki yeni küçük sürümlerin 2 ayda bir yayınlanması beklenir.
  • Yama sürümü: Kritik hata düzeltmeleri için, Etkin ve Bakım aşamalarındaki LTS sürümlerindeki yeni yama sürümlerinin isteğe bağlı olarak yayınlanması beklenir.
  • Bazel LTS sürümü, 2 yıl boyunca "Bakım" aşamasında olduktan sonra "Kullanımdan kaldırıldı" aşamasına geçer.

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

Destek matrisi

LTS sürümü Destek aşaması Son sürüm Destek sonu
Bazel 7 Daimi GitHub sürüm sayfasını kontrol et Yok
Bazel 6 Etkin 6.4.0 Aralık 2025
Bazel 5 Bakım 5.4.1 Ocak 2025
Bazel 4 Bakım 4.2.4 Ocak 2024

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

Yayın prosedürü ve politikaları

Periyodik sürümler için süreç basittir: Yaklaşık iki haftada bir yeni sürüm oluşturulur. Bu sürüm, Google'ın kendi Blaze sürümüyle aynı temel çizgisiyle uyumludur. Hızlı yayın planı nedeniyle yeni sürümlerde yapılan değişiklikleri geri aktarmayız.

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

  1. Yayın için temel bir taahhüt belirleyin.
    • Yeni bir ana LTS sürümü için referans kaydetme, ana şubenin HEAD öğesidir.
    • Bir küçük sürüm veya yama sürümü için referans kaydetme, aynı LTS sürümünün güncel son sürümünün HEAD öğesidir.
  2. Temel kaydetmeden release-<version> adında bir sürüm dalı oluşturun.
  3. Backport, PR'ler aracılığıyla yayın dalına değiştirilir.
    • Topluluk, ilgili GitHub sorunlarında veya PR'lerde "@bazel-io flag" şeklinde bir yanıt göndererek belirli taahhütlerin geri taşınmasını önerebilir, bunları olası yayın engelleyiciler olarak işaretlemeleri için Bazel ekibi bunları önceliklendirir ve kaydetmelerin geriye dönük olarak aktarılıp aktarılmayacağına karar verir.
    • Yalnızca ana daldaki geriye dönük uyumlu taahhütler geriye dönük olarak aktarılabilir. Birleştirme çakışmalarını çözmek için ek küçük değişiklikler kabul edilir.
  4. Sürüm engelleyicileri tespit edip sürüm dalında bulunan sorunları düzeltin.
  5. Bilinen tüm sürüm engelleyiciler çözüldüğünde sürüm dalından yeni bir sürüm adayı oluşturun.
    • Yeni sürüm adayı bazel-caption'da duyuruluyor. Bazel ekibi, aday için topluluk hata raporlarını takip ediyor.
    • Yeni sürüm engelleyiciler tespit edilirse son adıma dönüp tüm sorunları giderdikten sonra yeni bir sürüm adayı oluşturun.
    • İlk sürüm adayı oluşturulduktan sonra sürüm dalına yeni özelliklerin eklenmesine izin verilmez.
  6. Başka yayın engelleyiciler bulunmazsa yayın adayını resmi sürüm olarak gönderebilirsiniz
    • Yama sürümlerinde, son sürüm adayı yayınlandıktan en az iki iş günü sonra sürümü yayınlayın.
    • Büyük ve küçük yayınlarda, son yayın adayı yayınlandıktan iki iş günü sonra ancak yayını, ilk yayın adayı yayınlandıktan en fazla bir hafta sonra yayınlayın.
    • Yayın yalnızca sonraki günün iş günü olduğu bir günde yayınlanır.
    • Sürüm bazel-caption'da duyuruldu. Bazel ekibi, yeni sürüm için topluluk hata raporlarını takip edip ele alıyor.

Regresyonları raporlayın

Kullanıcılar yeni Bazel sürümünde, yayın adayında ve hatta HEAD öğesinde Bazel'de regresyon bulursa lütfen GitHub'da hata bildiriminde bulunun. Suçlu kaydetme işlemini bölmek ve bu bilgiyi hata raporuna eklemek için Bazelisk'i kullanabilirsiniz.

Örneğin, derlemeniz Bazel 6.1.0 ile başarılı oluyor ancak ikinci sürüm adayı 6.2.0 ile başarısız oluyorsa şu komutu kullanarak ikiye bölebilirsiniz:

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

Sorunun yeniden oluşturulması için gerektiğinde derleme durumunu sıfırlamak amacıyla BAZELISK_SHUTDOWN veya BAZELISK_CLEAN ortam değişkenini karşılık gelen bazel komutlarını çalıştıracak şekilde ayarlayabilirsiniz. Daha ayrıntılı bilgi için Bazelisk bisect özelliği ile ilgili belgelere göz atın.

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

Kural uyumluluğu

Kural yazarıysanız ve farklı Bazel sürümleriyle uyumluluğu sürdürmek istiyorsanız lütfen Kural Uyumluluğu sayfasına göz atın.