Bu sayfada, bir sürümden diğerine geçiş ve uyumlu olmayan değişikliklerin nasıl iletileceği de dahil olmak üzere geriye dönük uyumluluğun nasıl ele alınacağı hakkında bilgiler verilmektedir.
Bazel gelişiyor. LTS ana sürümü kapsamında yayınlanan alt sürümler tamamen geriye dönük uyumludur. Büyük LTS sürümleri arasındaki değişiklikler, bazı taşıma çalışmaları gerektiren uyumsuz değişiklikler içerebilir. Bazel sürüm yayınlama aralığının işleyiş şekli hakkında daha fazla bilgi için Bazel Uzun Süreli Destek (LTS) sürümlerinin duyurusu başlıklı makaleyi inceleyin.
Özet
- Kullanıcı deneyimini bozan değişiklikler için
--incompatible_*
işaretleri kullanılması önerilir. - Her
--incompatible_*
işareti için, davranıştaki değişikliği açıklayan ve taşıma tarifi sunmayı amaçlayan bir GitHub sorunu oluşturulur. --experimental_*
işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değiştirilebilir.- Üretim derlemelerini hiçbir zaman
--experimental_*
veya--incompatible_*
işaretleriyle çalıştırmayın.
Bu politikaya uyma
- Bazel kullanıcıları için: Bazel'i güncelleme
- Katkıda bulunanlar için: Uyumlu olmayan değişikliklerle ilgili en iyi uygulamalar
- Sürüm yöneticileri için: Sorun etiketlerini güncelleme ve sürüm yayınlama
Kararlı işlevsellik nedir?
Genel olarak, --experimental_...
işareti olmayan API'ler veya davranışlar Bazel'de kararlı ve desteklenen özellikler olarak kabul edilir.
Bunlardan bazıları:
- Starlark dili ve API'leri
- Bazel ile birlikte sunulan kurallar
- Remote Execution API'ler veya Build Event Protocol gibi Bazel API'leri
- Bayraklar ve anlamları
Uyumsuz değişiklikler ve taşıma tarifleri
Bazel ekibi, yeni sürümdeki her uyumsuz değişiklik için kodunuzu (BUILD
ve .bzl
dosyalarının yanı sıra komut dosyalarında Bazel kullanımı, Bazel API'nin kullanımı vb.) güncellemenize yardımcı olacak bir taşıma tarifi sunmayı amaçlar.
Uyumlu olmayan değişikliklerin ilişkili bir --incompatible_*
işareti ve ilgili bir GitHub sorunu olmalıdır.
Uyumlu olmayan değişiklikleri bildirme
Uyumlu olmayan değişikliklerle ilgili birincil bilgi kaynağı, "incompatible-change" etiketiyle işaretlenmiş GitHub sorunlarıdır.
Uyumlu olmayan her değişiklik için sorunda aşağıdakiler belirtilir:
- Uyumlu olmayan değişikliği kontrol eden işaretin adı
- Değiştirilen işlevin açıklaması
- Taşıma tarifi
Uyumlu olmayan bir değişiklik, HEAD'deki Bazel ile (dolayısıyla bir sonraki Bazel yayınıyla da) taşımaya hazır olduğunda migration-ready
etiketiyle işaretlenmelidir. Uyumlu olmayan değişiklik sorunu, HEAD'de uyumlu olmayan işareti çevrildiğinde kapatılır.