Orijinal blog yayınında açıklandığı gibi, Bazel 4.0 ve sonraki sürümler iki sürüm kanalı için destek sağlar: sürekli 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.
- Büyük sürümler, önceki sürümle geriye dönük uyumlu olmayan özellikler içerir. Her büyük Bazel sürümü LTS sürümüdür.
- Ara sürümler, geriye dönük uyumlu hata düzeltmeleri ve ana daldan geri bağlanan özellikleri 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 gösterilir.
Örneğin, her türün yeni bir sürümü aşağıdaki sürüm numaralarına neden olur:
- Büyük: 6.0.0
- Küçük: 6.1.0
- Yama: 6.1.2
- Lansman öncesi: 7.0.0-pre.20230502.1
Destek aşamaları
Her büyük Bazel sürümü için dört destek aşaması vardır:
- Devamlı: Bu ana sürüm hâlâ ön sürüm aşamasındadır. Bazel ekibi, HEAD'den sürekli sürümler 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 taşır.
- 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 sorunları ve işletim sistemi uyumluluğu sorunlarına yönelik kritik hata düzeltmelerini bu LTS sürümüne geriye dönük olarak taşıyacağını taahhüt etmektedir.
- Desteği sonlandırıldı: Bazel ekibi artık bu büyük sürüm için destek sağlamıyor. Tüm kullanıcıların yeni Bazel LTS sürümlerine geçmesi gerekiyor.
Sürüm yayınlama sıklığı
Bazel, iki sürüm kanalı için düzenli olarak sürüm yayınlar.
Periyodik sürümler
- Devamlı 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.
- 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
- Büyük sürüm: Yeni bir LTS sürümünün, HEAD'den yaklaşık 12 ayda bir çıkarılması bekleniyor. Yeni bir LTS sürümü kullanıma sunulduğunda hemen Etkin aşamaya girer ve önceki LTS sürümü Bakım aşamasına girer.
- Küçük sürüm: Etkin LTS kanalında yeni küçük sürümlerin 2 ayda bir yayınlanması beklenir.
- Yama sürümü: Etkin ve Bakım aşamalarındaki LTS sürümleri için kritik hata düzeltmeleriyle ilgili 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 kaldıktan sonra Desteği sonlandırılan aşamaya girer.
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 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ınlama 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ından dolayı 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:
- Sürüm için bir referans değer gönderimi belirleyin.
- Yeni bir ana LTS sürümü için ana dalın HEAD'i temel taahhüttür.
- Küçük veya yama sürümlerinde ana hat taahhüt, aynı LTS sürümünün mevcut en son sürümünün HEAD'idir.
- Temel hatalı taahhütten
release-<version>
adlı bir sürüm dalı oluşturun. - Değişiklikleri, yayın dalına PR'ler aracılığıyla geri taşıyın.
- Topluluk, ilgili GitHub sorunlarına veya PR'lere "
@bazel-io flag
" yanıtı vererek belirli taahhütlerin geri bağlanmasını önerebilir. Bu öneriler, potansiyel sürüm engelleyici olarak işaretlenir. Bazel ekibi, bu önerileri önceliklendirir ve taahhütlerin geri bağlanıp bağlanmayacağına karar verir. - Yalnızca ana daldaki geriye dönük uyumlu taahhütler geriye aktarılabilir. Birleştirme çakışmalarını çözmek için yapılan küçük ek değişiklikler kabul edilir.
- Topluluk, ilgili GitHub sorunlarına veya PR'lere "
- Sürüm yayınlamayı engelleyen sorunları tespit edin ve sürüm dalında bulunan sorunları düzeltin.
- Sürüm dalı, Bazel CI'de postsubmit ve aşağı akış test ardışık düzeninde aynı test paketiyle test edilir. Bazel ekibi, sürüm dalının test sonuçlarını izler ve bulunan tüm gerileme sorunlarını 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.
- Yayın adayı bazel-talk bölümünde duyurulur, Bazel ekibi aday için topluluk hata raporlarını takip eder.
- 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ümleri için, 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 sürümler için sürümü, son sürüm adayı yayınlandıktan iki iş günü sonra yayınlayın ancak ilk sürüm adayı yayınlandıktan bir haftadan önce yayınlamayın.
- Sürüm yalnızca bir sonraki günün iş günü olduğu bir günde yayınlanır.
- Sürüm bazel-discuss'te duyurulur. Bazel ekibi, yeni sürümle ilgili topluluktaki hata raporlarını izler ve ele alır.
Geriye gidişleri bildirme
Kullanıcılar yeni bir Bazel sürümünde, sürüm adayında veya hatta HEAD'deki Bazel'de gerileme bulursa lütfen GitHub'da hata kaydı oluşturun. 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ı olur ancak 6.2.0'ın ikinci sürüm adayı ile başarısız olursa
bazelisk --bisect=6.1.0..release-6.2.0rc2 build //foo:bar
Sorunu yeniden oluşturmak için gerekirse BAZELISK_SHUTDOWN
veya BAZELISK_CLEAN
ortam değişkenini, ilgili bazel komutlarını çalıştıracak şekilde ayarlayarak derleme durumunu sıfırlayabilirsiniz. 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 son 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ına göz atın.