Bu sayfada, bir sürümden diğerine geçiş yapma ve uyumsuz değişiklikleri bildirme dahil olmak üzere geriye dönük uyumluluğun nasıl ele alınacağı hakkında bilgi verilmektedir.
Bazel gelişiyor. LTS ana sürümü kapsamında yayınlanan alt sürümler tamamen geriye dönük uyumludur. Yeni ana LTS sürümleri, bazı geçiş çalışmaları gerektiren uyumsuz değişiklikler içerebilir. Bazel'in yayın modeli hakkında daha fazla bilgi için lütfen Yayın Modeli sayfasını inceleyin.
Özet
- Kapsamlı değişiklikler için
--incompatible_*
işaretlerinin kullanılması önerilir. - Her
--incompatible_*
işareti için GitHub sorunu, davranış değişikliğini açıklar ve taşıma tarifi sağlamayı amaçlar. - Uyumsuz işaretlerin, varsayılan olarak etkinleştirilmeden en yeni LTS sürümüne geri aktarılması önerilir.
--experimental_*
işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değişebilir.- Üretim derlemelerini asla
--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: Uyumsuz değişikliklerle ilgili en iyi uygulamalar
- Yayın yöneticileri için: Sorun etiketlerini ve yayını güncelleme
Kararlı işlev nedir?
Genel olarak, --experimental_...
işaretleri olmayan API'ler veya davranışlar, Bazel'deki kararlı ve desteklenen özellikler olarak kabul edilir.
Bunlardan bazıları:
- Starlark dili ve API'ler
- Bazel ile birlikte gelen kurallar
- Remote Execution API'ler veya Build Event Protocol gibi Bazel API'leri
- Bayraklar ve anlamları
Uyumsuz değişiklikler ve taşıma tarifleri
Yeni bir sürümdeki her uyumsuz değişiklik için Bazel ekibi, kodunuzu (BUILD
ve .bzl
dosyaları, komut dosyalarındaki Bazel kullanımı, Bazel API kullanımı vb.) güncellemenize yardımcı olacak bir taşıma tarifi sunmayı amaçlar.
Uyumsuz değişikliklerle ilişkili bir --incompatible_*
işareti ve ilgili bir GitHub sorunu olmalıdır.
Uyumsuzluk işareti ve ilgili değişikliklerin, işareti varsayılan olarak etkinleştirmeden en son LTS sürümüne geri aktarılması önerilir. Bu sayede kullanıcılar, bir sonraki LTS sürümü kullanıma sunulmadan önce uyumsuz değişiklikler için taşıma işlemi yapabilir.
Uyumlu olmayan değişiklikleri bildirme
Uyumsuz değişikliklerle ilgili temel 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 işaretin adı
- Değişen işlevin açıklaması
- Taşıma tarifi
Uyumsuz bir değişiklik, HEAD'de Bazel ile taşınmaya hazır olduğunda (dolayısıyla bir sonraki Bazel sürekli sürümünde de) migration-ready
etiketiyle işaretlenmelidir. Uyumsuzluk işareti HEAD'de değiştirildiğinde uyumsuz değişiklik sorunu kapatılır.