Bazel yol haritası

Genel bakış

Bazel projesi, ihtiyaçlarınıza göre sürekli olarak gelişir. Proje geliştirilirken ve destek verilirken aynı zamanda temel ürünün performansını sürdürür, yeniden düzenler ve iyileştirir.

Bu değişikliklerle, açık kaynak topluluğumuzu sürekli olarak bilgilendirmeyi ve sürece dahil etmeyi amaçlıyoruz. Bu yol haritası, Bazel'in gelişiminin geleceğine yönelik mevcut girişimleri ve tahminleri açıklayarak size mevcut öncelikler ve devam eden projeler hakkında bilgi verir.

Bu yol haritası, hedefleri gösterir ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşteri geri bildirimlerine veya yeni pazar fırsatlarına bağlı olarak değişebilir.

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

4. Çeyrek — Bazel 6.0 Sürümü

4. çeyrekte yeni uzun süreli destek (LTS) sürümü Bazel 6.0 geliyor. Bazel 6.0, bağımlılıkları yönetmek, Android ile uygulama geliştirmek ve daha pek çok şey için topluluğun istediği yeni güçlü özellikleri kullanıma sunmayı planlıyor.

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

Bzlmod geçişli bağımlılıkları otomatik olarak çözerek projelerin ölçeklendirilmesini sağlarken hızlı ve kaynak verimliliğinden ödün vermez. Bazel 5.0'da deneysel olarak kullanıma sunulan Bzlmod, genel kullanıma sunulacak ve elmas bağımlılık sorunu için bir çözüm sağlayacaktır.

  • Bzlmod "deneysel" olmaktan çıktı "genel kullanıma açık" oldu
  • Kullanıcıların Java projeleri için Maven bağımlılıklarını indirmesine olanak tanıyan rules\_jvm\_external desteğini içerir
  • Bzlmod Taşıma Kılavuzu, Bzlmod'u benimsemek isteyen ekipler için araçlar, komut dosyaları ve belgeler sağlar
  • Bazel merkezi deposu, temel Bazel BUILD kurallarını (rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) ve Bzlmod için gereken anahtar bağımlılıklarını barındırır

Bu geliştirme hakkında daha fazla bilgi için Bzlmod topluluğu güncellemesini izleyin veya orijinal tasarım dokümanını okuyun.

Bazel ile Android uygulaması derleme

Bazel 6.0'da gelişmiş araçlar ve birleştirilmiş topluluk özelliği katkıları bulunacaktır. Daha fazla benimsenmesini ve büyüyen bir kod tabanını tahmin eden Bazel ekibi, Android derleme araçlarının Bazel Android kurallarıyla entegrasyonuna öncelik verecektir.

  • D8'i v. 3.3.28 sürümüne günceller ve varsayılan dexer olarak ayarlar.
  • 5.X sürümünde eklenen ana topluluk özelliği katkılarıyla birleştirilir ve aşağıdakiler için destek sunulur:
    • D8'e sahip kalıcı çalışanlar
    • D8 kullanarak şeker giderme
    • Android manifest dosyalarında "uses-permissions" etiketlerini birleştirme
    • Android kaynak işlemede Multiplex çalışanları

İsteğe bağlı araç zincirleri

Geliştirici Memnuniyeti anketimiz, kural yazarlarının araç zincirinin daha fazla geliştirilmesi için destek istediğini göstermiştir. Bazel 6.0, diğer platformlar için yedek uygulama ile kullanılabilir olduğunda yazarların isteğe bağlı, yüksek performanslı bir araç zinciri kullanarak kural yazmasına olanak tanır.

Bazel-JetBrains* IntelliJ IDEA desteği

JetBrains, topluluğun güvenliğini artırma ve özellik istekleri ile geliştirme için kapasite açma hedeflerini desteklemek amacıyla, Bazel IntelliJ IDEA eklentisini birlikte yürütmek için Bazel ile iş ortaklığı yaptı.

  • IntelliJ eklentisi 2022.2 sürümü, JetBrains eklentisinin en son sürümü için destek sağlar
  • Uzaktan geliştirme ile uyumluluğu artırır
  • Scala desteği gibi hazırlık aşamasındaki özellikler için topluluk odaklı gelişimi ileri taşır

Bu geliştirme hakkında daha fazla bilgi için Bazel-JetBrains blog duyurusunu okuyun.

Gelecekteki gelişim

Bazel ekibi geleceğe yönelik geliştirme çalışmalarına başladı veya 2023 ve sonrasında aşağıdaki özelliklere öncelik vermeyi planlıyor.

Bazel'in Android derleme kurallarını iyileştirme

Derleme, test etme ve dağıtım yoluyla iş akışına odaklanarak Android uygulaması geliştirme deneyimine yatırım yapmaya devam edin.

  • R8'e geçiş ve destek
  • Starlark diline çeviri de dahil olmak üzere Android kurallarında yapılan güncellemeler
  • App Bundle desteği
  • Son NDK sürümleri için destek
  • Test kodu kapsamı

OSS lisans uygunluk araçları

Geliştiriciler, dahil edilen paketlerin kullanılabilirliğini ve güvenliğini sağlamak için güçlü bir lisans uygunluğu denetleyicisi talep etti. Bu proje, belirli bir yazılım bileşeniyle ilişkili uygunluk ve lisans risklerini tespit edip azaltmaya yardımcı olacak bir dizi kural ve araç sağlar. Hedef özellikler arasında şunlar bulunur:

  • Belirli bir hedef tarafından kullanılan paketleri denetleyebilme
  • Kuruluşa özel lisans uygunluk denetimleri oluşturma olanağı.

GitHub'da devam etmekte olan rules_Lisans uygulamasını inceleyin.

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

Bzlmod, kullanıma sunulduğunda geçişli bağımlılıkların ölçeklenebilirliğini ve güvenilirliğini iyileştiriyor. Bzlmod, önümüzdeki üç yıl içinde WORKSPACE adlı ürünü varsayılan Bazel çalışma alanı bağımlılık yönetimi alt sistemi olarak değiştirmeyi amaçlıyor. Hedeflenen özellikler arasında şunlar yer alır:

  • Hermetik yapı desteği
  • Satıcı/çevrimdışı modu sabitleme kuralları yerel bir kopyaya referans veriyor
  • Bazel Merkezi Tescil Kuruluşu düzenli topluluk katkılarını ve önemli Bazel kural ve projelerinin benimsenmesini içerir
  • Bzlmod, Bazel projeleri oluşturmak için varsayılan araç haline geldi

İmzalanmış derlemeler

Bazel, Windows ve Mac için Google anahtarlarıyla imzalanmış güvenilir ikili programlar sağlar. Bu özellik, birden çok platforma sahip geliştiricilerin/geliştirici işlemlerinin Bazel ikili programlarının kaynağını belirlemesini ve sistemlerini kötü amaçlı, doğrulanmamış ikili programlardan korumasını sağlar.

Standartlaştırılmış Platformlar API'si

Yeni Platforms API'si çok dilli ve çok platformlu derlemeler için mimari yapılandırmasını standart hale getirecektir. Bu özellik sayesinde geliştiriciler, büyük derlemelerinde yüksek maliyetli geliştirme süresi hatalarını ve karmaşıklığı azaltabilir.

Analiz metrikleri oluşturma

Bazel telemetrisi, analiz aşaması zaman metrikleri sağlayarak geliştiricilerin kendi derleme performanslarını optimize etmesini sağlar.

"Baytlar olmadan derlemeler" ile uzaktan yürütme

Bayt içermeyen derlemeler, yalnızca Bazel'ın gerekli yapıları indirmesine izin vererek performansı optimize eder. Böylece, derlemelerin ağ bant genişliğinde performans kısıtlaması olmasını önler. Uzaktan derlemelere eklenen özellikler:

  • Yerel ve uzak işlemlerin bağımlı çıkışlarını indirir indirmez başlamasını sağlamak için eşzamansız indirmeyi kullanın
  • Symlinks desteği ekleme
  • Bir derleme tamamlandığında uzak işlemlerden ara çıkışları alın

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