Orijinal blog yayınında duyurulduğu gibi Bazel 4.0 ve daha sonraki sürümler, iki sürüm kanalı için destek sağlar: süreli sürümler ve uzun süreli destek (LTS) sürümleri. Bu sayfada Bazel'in sürüm modeliyle ilgili en son bilgiler yer alıyor.
Sürüm oluşturma
Bazel, bir major.minor.patch Anlamsal Sürüm Oluşturma şeması 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, geriye dönük olarak uyumlu hata düzeltmeleri ve ana daldan geriye doğru taşınan özellikler 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 ekleyerek de belirtilir.
Örneğin, her türün yeni bir sürümü aşağıdaki sürüm numaralarıyla sonuçlanır:
- Büyük: 6.0.0
- Küçük: 6.1.0
- Yama: 6.1.2
- Yayın öncesi: 7.0.0-20230502.1 öncesi
Destek aşamaları
Her ana Bazel sürümü için dört destek aşaması vardır:
- Hareketli: Bu ana sürüm hâlâ yayın öncesi aşamadadır. Bazel ekibi HEAD'den periyodik sürümleri 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 bağlantılandırıyor.
- Bakım: Bu ana sürüm, bakım modundaki eski bir LTS sürümüdür. Bazel ekibi yalnızca güvenlik sorunları ve işletim sistemi uyumluluk sorunları için kritik hata düzeltmelerini bu LTS sürümüne geri taşıma 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 iki haftada bir HEAD sayfasından yayınlanır. Bu, bir sonraki Bazel LTS sürümünün önizlemesidir.
- Periyodik sürümler uyumsuz değişiklikler gönderebilir. Büyük çaplı değişiklikler için uyumsuz işaretler önerilir. Uyumsuz değişiklikleri kullanıma sunmak ise geriye dönük uyumluluk politikamıza uygun olmalıdır.
LTS sürümleri
- Önemli sürüm: Yeni bir LTS sürümünün yaklaşık 12 ayda bir HEAD'den kesilmesi beklenmektedir. Yeni bir LTS sürümü çıktığında hemen Etkin aşamasına geçer ve önceki LTS sürümü Bakım aşamasına girer.
- Küçük sürüm: Active LTS kanalında yeni küçük sürümlerin 2 ayda bir yayınlanması beklenmektedir.
- Yama sürümü: Etkin ve Bakım aşamalarındaki LTS sürümleri için yeni yama sürümlerinin, kritik hata düzeltmeleri için isteğe bağlı olarak 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 geçer.
Planlanan sürümler için lütfen GitHub'daki sürüm sorunlarımıza göz atın.
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 edin | 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ı
Kullanıma sunulan sürümler için süreç basittir: Yaklaşık iki haftada bir, Google'ın dahili Blaze sürümüyle aynı temel çizgiye uygun yeni bir sürüm oluşturulur. Hızlı sürüm planı nedeniyle, kullanıma sunulan sürümlerde yapılan hiçbir değişikliği geri yüklemeyiz.
LTS sürümleri için aşağıdaki prosedür ve politikalar uygulanır:
- Sürüm için temel bir kayıt belirleyin.
- Yeni bir ana LTS sürümü için temel kaydetme, ana şubenin HEAD değeridir.
- Küçük çaplı veya yama sürümü için temel kayıt, aynı LTS sürümünün mevcut en son sürümünün HEAD değeridir.
- Temel taahhütten
release-<version>
adında bir sürüm dalı oluşturun. - PR'ler aracılığıyla sürüm dalına yapılan geri yükleme değişiklikleri.
- Topluluk, ilgili GitHub sorunları veya PR'lerde "
@bazel-io flag
" yanıtını göndererek belirli kayıtların geri taşınmasını önerebilir. Bu sayede, söz konusu sorunlar veya PR'ler olası yayın engeli olarak işaretlenir. Bazel ekibi bunları önceliklendirir ve kayıtları geri taşıyıp taşımamaya karar verir. - Yalnızca ana daldaki geriye dönük uyumlu kaydetmeler geri taşınabilir. Birleştirme çakışmalarını çözmek için yapılacak ek küçük değişiklikler kabul edilebilir.
- Topluluk, ilgili GitHub sorunları veya PR'lerde "
- Sürüm engelleyicileri belirleyin ve sürüm dalında bulunan sorunları düzeltin.
- Sürüm dalı, Bazel CI'da postsubmit (gönderme sonrası) ve aşağı akış test ardışık düzeni ile aynı test paketi ile test edilir. Bazel ekibi, yayın kolunun test sonuçlarını izler ve bulunan regresyonları düzeltir.
- Bilinen tüm yayın engelleyiciler çözüldüğünde sürüm dalından yeni bir sürüm adayı oluşturun.
- Yayın adayı bazel-discuss'da duyurulur. Bazel ekibi adayla ilgili topluluk hata raporlarını izler.
- Yeni sürüm engelleyiciler tespit edilirse son adıma dönün ve tüm sorunları çözdükten 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.
- Yayını engelleyen başka bir şey bulunamazsa yayın adayını resmi yayın olarak tanıtın
- Yama sürümleri için, sürümü son sürüm adayı yayınlandıktan en az iki iş günü sonra yayınlayın.
- Ana ve küçük sürümler için, son yayın adayının çıkış tarihinden iki iş günü sonra sürümü yayınlayıp ilk yayın adayının çıkarıldığı tarihten en fazla bir hafta sonra yayınlayın.
- Sürüm yalnızca sonraki günün iş günü olduğu bir günde yayınlanır.
- Sürüm bazel-talk'da duyurulur. Bazel ekibi yeni sürümle ilgili topluluk hata raporlarını izler ve ele alır.
Regresyonları bildirme
Bir kullanıcı yeni Bazel sürümünde, sürüm adayında veya hatta HEAD'de Bazel'da regresyon bulursa lütfen GitHub'da hata bildiriminde bulunun. Suçlu kaydı ikiye ayırmak için Bazelisk'i kullanabilir ve bu bilgiyi hata raporuna ekleyebilirsiniz.
Örneğin, derlemeniz Bazel 6.1.0 ile başarılı, ancak ikinci sürüm adayı olan 6.2.0 ile başarısız olursa,
bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar
BAZELISK_SHUTDOWN
veya BAZELISK_CLEAN
ortam değişkenini, sorunun yeniden oluşturulması gerekiyorsa derleme durumunu sıfırlamak için ilgili Bazel komutlarını çalıştıracak şekilde ayarlayabilirsiniz. Daha fazla bilgi için Bazelisk bölme ö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 yazarsı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.