Geriye Dönük Uyumluluk

Sorun bildirme Kaynağı görüntüleme Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

  1. Kullanıcı deneyimini bozan değişiklikler için --incompatible_* işaretleri kullanılması önerilir.
  2. 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.
  3. --experimental_* işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değiştirilebilir.
  4. Üretim derlemelerini hiçbir zaman --experimental_* veya --incompatible_* işaretleriyle çalıştırmayın.

Bu politikaya uyma

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.