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 GitHub'daki sürüm sorunlarını gözden geçirin.
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:
- 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.
- Temel kaydetmeden
release-<version>
adında bir sürüm dalı oluşturun. - 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.
- Topluluk, ilgili GitHub sorunlarında veya PR'lerde "
- Sürüm engelleyicileri tespit edip sürüm dalında bulunan sorunları düzeltin.
- Sürüm dalı, Bazel CI'da postsubmit ve downstream test ardışık düzeninde aynı test paketi ile test edilir. Bazel ekibi, yayın kolunun test sonuçlarını izler ve bulunan regresyonları düzeltir.
- 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.
- 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.