Bazel yol haritası

Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Genel Bakış

Bazel projesi ihtiyaçlarınız doğrultusunda gelişmeye devam ederken biz de size yardımcı olmak için 2024 güncellememizi paylaşın.

Bu yol haritasında, Yeşil Ofis’in geleceğine ilişkin mevcut girişimler ve tahminler Bazel geliştirme sistemi; mevcut öncelikler ve süregelen bilgi edinmenizi sağlar.

Bazel 8.0 Sürümü

Bazel 8.0'a uzun vadeli destek sunmayı planlıyoruz (LTS) sizinle iletişime geçilecektir. Aşağıdaki özelliklerin uygulanması planlanmaktadır.

Bzlmod: dış bağımlılık yönetim sistemi

Bzlmod geçişli URL'yi otomatik olarak çözümler projelerin hızlı ve sürdürülebilir bir şekilde ölçeklendirilmesine olanak tanıdığından kaynak açısından verimli bir yöntem.

Bazel 8 ile birlikte WORKSPACE desteğini varsayılan olarak devre dışı bırakacağız ( --enable_workspace kullanarak etkinleştirebilirsiniz); Bazel 9 WORKSPACE ile desteği kaldırılacaktır. Bazel 7.1'den başlayarak, şunları ayarlayabilirsiniz: Yeni davranışı etkinleştirmek için --noenable_workspace.

Bazel 8.0, Bazel'in dış bağımlılık yönetimi Aşağıdakiler dahil olmak üzere:

  • --enable_workspace yeni işareti tamamen false olarak ayarlanabilir WORKSPACE işlevini devre dışı bırakın.
  • Yeni dizin izleme API'si (bkz. #21435, Bazel'de gönderildi 7.1).
  • Daha iyi kullanım için standart depo adları oluşturmaya yönelik iyileştirilmiş şema Bağımlılık sürümü güncellemelerindeki işlemlerin önbelleğe alınabilirliği. (#21316, Bazel'de gönderildi 7.1)
  • Gelişmiş bir paylaşılan depo önbelleği (bkz. #12227).
  • Tedarikçi firma ve çevrimdışı mod desteği: Kullanıcıların derlemeleri bağımlılıkları (bkz. #19563).
  • Kilit dosyalarında daha az birleştirme çakışmaları (#20396).
  • Segmentlere ayrılmış MODULE.bazel (#17880)
  • Modül uzantısı tarafından oluşturulan deponun geçersiz kılınmasına izin ver (#19301)
  • Geliştirilmiş belgeler (ör. #18030, #15821) ve taşıma hakkında bilgi edindiniz.

Uzaktan yürütme iyileştirmeleri

  • Eşzamansız yürütme için destek ekleyerek uzaktan yürütmeyi --jobs işaretiyle benzerlik arttı.
  • Yeni bir kompakt yürütme günlüğü sayesinde önbelleklerdeki hataları ayıklamayı kolaylaştırın, ve çalışma zamanı ek yükünü önemli ölçüde azalttığından (bkz. #18643).
  • Disk önbelleği için atık toplamayı uygulayın (bkz. #5139).
  • Rastgele derlemenin geç indirilmesine olanak tanımak için uzak çıkış hizmetini uygulayın çıkışlar (bkz. #20933).

Android, C++, Java, Python ve Proto kurallarının taşınması

Android, C++, Java ve Python kural kümelerinin özel ve bunları Bazel sürümlerinden ayırmaktadır. Bu çaba sayesinde Bazel kullanıcılarını ve kural yazarlarını

  • Kuralları Bazel'den bağımsız olarak güncelleyin.
  • Kuralları gerektiği şekilde güncelleyin ve özelleştirin.

Kural kümelerinin yeni konumu bazelbuild/rules_android olur. rules_cc, rules_java, rules_python ve google/protobuf. rules_proto desteği sonlandırılacaktır.

Bazel 8, otomatik olarak kural kümelerini kullanır. Tümü Bu kural kümelerinin kullanıcılarının, nihayetinde bu kurallara bağlı depolar ve bunları, daha önce hiç katılmamış diğer kural kümelerine benzer şekilde yükler Bazel.

Bazel 8 ayrıca mevcut genişletme kurallarını ve alt kural API'lerini iyileştirecek ve "deneysel değil" olarak işaretleyebilirsiniz.

Starlark iyileştirmeleri

  • Sembolik Makrolar, kullanımı daha kolay olan makrolar yazmanın yeni bir yoludur. BUILD kullanıcıları, makro yazarları ve araçlar. Dinamik Arama Ağı Reklamları'nın Bazel'in sahip olduğu bilgiler sınırlıdır, sembolik makrolar kullanıcıların yaygın ve en iyi uygulamaları yapmanıza yardımcı olur.
  • Paket sonlandırıcılar, mantığına geçmelisiniz. Bunlar, desteğimizi sonlandırmamıza yardımcı olmak için native.existing_rules()

Yapılandırılabilirlik

  • Çıkış yolu eşlemesi sabitlenmeye devam ediyor: Daha iyi uzak önbellek umudu daha yüksek performans ve derleme hızı elde etti.
  • Belirli bir --platforms için uygun derleme işaretlerini otomatik olarak ayarlayın.
  • Proje tarafından desteklenen işaret kombinasyonlarını tanımlayın ve hedefleri otomatik olarak oluşturun bazelrc'leri ayarlamak zorunda kalmadan varsayılan bayraklarla ayarlayabilirsiniz.
  • Derleme işaretleri her değiştiğinde derleme analizini yeniden yapmayın.

Skyfocus Projesi - saklanan veri yapılarını en aza indirme

Bazel, hızlı artımlı derlemeler için RAM'de birçok duruma sahiptir. Ancak, geliştiriciler genellikle kaynak dosyaların küçük bir alt kümesini değiştirir (ör. dış bağımlılıklardan biri) olduğunu varsayalım. Skyfocus ile Bazel, resimlere ve uygulamalara Gereksiz artımlı durumu düşürmenin ve Bazel'ın belleğini azaltmanın deneysel yöntemi aynı hızlı artımlı derleme deneyimini sunmaya devam ediyor.

İlk kapsam, yalnızca tutulan yığın metriğini iyileştirmeyi amaçlar. En yüksek yığın azaltmak mümkündür, ancak bu ilk kapsama dahil edilmemiştir.

Çeşitli

  • Mobil yükleme v3, artımlı yükleme yapmaya yönelik daha basit ve daha iyi bakımlı bir yaklaşım Android uygulamalarını dağıtabilirsiniz.
  • Depo önbellekleri ve Bazel install_base için çöp toplama.
  • Daha düşük korumalı alan kullanımı ek yükü.

Bazel-JetBrains* IntelliJ IDEA desteği

En son JetBrains eklentisini desteklemek için artımlı IntelliJ eklentisi güncellemeleri kullanabilirsiniz.

Bu yol haritası, hedeflerin anlık görüntüsünü verir ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşteriye göre değişebilir veya yeni pazar fırsatları sunmaktır.

Bu yol haritasındaki güncellemeler de dahil olmak üzere yeni özelliklerden haberdar olmak için Google Grubu topluluğu.

*Telif hakkı © 2022 JetBrains s.r.o. JetBrains ve IntelliJ, JetBrains s.r.o'nun tescilli ticari markalarıdır