Bu sayfada, geriye dönük uyumluluğun nasıl işleneceği ve ve bu bilgilerin nasıl kullanılacağını uyumsuz değişiklikler var.
Bazel gelişiyor. LTS ana planı kapsamında yayınlanan küçük sürümler sürümü tamamen geriye dönük uyumludur. Yeni ana LTS sürümler, taşıma işlemi gerektiren uyumsuz değişiklikler içerebilir. Bazel'in sürüm modeli hakkında daha fazla bilgi için lütfen Sürüm Modeli sayfasına göz atın.
Özet
- Değişiklikleri zarar vermek için
--incompatible_*
işaretinin 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. - Uyumlu olmayan işaretlerin, varsayılan olarak etkinleştirilmeden en son LTS sürümüne geri bağlanması önerilir.
--experimental_*
işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değişebilir.- Üretim derlemelerini hiçbir zaman
--experimental_*
veya--incompatible_*
ile çalıştırma işaretidir.
Bu politikaya uyma
- Bazel kullanıcıları için: Bazel'i güncelleme
- Katkıda bulunanlar için - Uyumsuz 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'ler
- 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 bir sürümdeki her uyumsuz değişiklik için
taşıma tarifini kullanabilirsiniz (BUILD
ve .bzl
dosyaları,
komut dosyalarındaki Bazel kullanımı, Bazel API kullanımı vb.).
Uyumlu olmayan değişikliklerin ilişkili bir --incompatible_*
işareti ve ilgili bir GitHub sorunu olmalıdır.
Uyumsuz işaretin ve ilgili değişikliklerin en son LTS sürümünü yayınlar. Bu sayede kullanıcılar son LTS sürümüne geçmeden önce uyumlu olmayan değişiklikleri kullanılabilir.
Uyumlu olmayan değişiklikleri bildirme
Uyumsuz değişikliklerle ilgili birincil bilgi kaynağı, "incompatible-change" etiketiyle işaretlenmiş GitHub sorunlarıdır.
Her uyumsuz değişiklik için sorun aşağıdakileri belirtir:
- Uyumsuz değişikliği kontrol eden bayrağın 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. Uyumsuz değişiklik sorunu,
uyumsuz işaret HEAD konumunda döndürüldü.