Geriye Dönük Uyumluluk

Sorun bildir Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

  1. Kapsamlı değişiklikler için --incompatible_* işaretlerinin kullanılması önerilir.
  2. Her --incompatible_* işareti için GitHub sorunu, davranış değişikliğini açıklar ve taşıma tarifi sağlamayı amaçlar.
  3. Uyumsuz işaretlerin, varsayılan olarak etkinleştirilmeden en yeni LTS sürümüne geri aktarılması önerilir.
  4. --experimental_* işaretiyle korunan API'ler ve davranışlar herhangi bir zamanda değişebilir.
  5. Ü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 (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.