Geriye Dönük Uyumluluk

Bu sayfada, bir sürümden diğerine geçiş yapma ve uyumsuz değişiklikleri bildirme de 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. Ana LTS sürümleri arasındaki değişiklikler, bazı taşıma işlemleri gerektiren uyumsuz değişiklikler içerebilir. Bazel'in yayın sıklığı hakkında daha fazla bilgi için Announcing Bazel Long Term Support (LTS) releases başlıklı makaleyi inceleyin.

Özet

  1. Kırıcı değişiklikler için --incompatible_* işaretlerinin kullanılması önerilir.
  2. Her --incompatible_* işareti için bir GitHub sorunu, davranış değişikliğini açıklar ve taşıma tarifi sağlamayı amaçlar.
  3. --experimental_* işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değişebilir.
  4. Üretim derlemelerini asla --experimental_* veya --incompatible_* işaretleriyle çalıştırmayın.

Bu politikaya uyma

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 güncellemenize yardımcı olacak bir taşıma tarifi sunmayı amaçlar (BUILD ve .bzl dosyaları, komut dosyalarındaki Bazel kullanımı, Bazel API'sinin kullanımı vb.).

Uyumsuz değişikliklerle ilişkili bir --incompatible_* işareti ve ilgili bir GitHub sorunu olmalıdır.

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, Bazel ile HEAD'de (dolayısıyla bir sonraki Bazel yayınında da) taşınmaya hazır olduğunda migration-ready etiketiyle işaretlenmelidir. Uyumsuzluk işareti HEAD'de değiştirildiğinde uyumsuz değişiklik sorunu kapatılır.