Bazel yol haritası

Sorun bildirin Kaynağı göster

Genel bakış

İhtiyaçlarınız doğrultusunda Bazel projesi sürekli olarak gelişiyor. Temel ürünün performansını sürdürürken, yeniden düzenleyerek ve iyileştirirken özellikler geliştiriyor ve destek sunarken bu Bazel projesinde de değişiklikler yapıyoruz.

Bu değişikliklerle, açık kaynak topluluğumuzu bilgilendirmeyi ve dahil etmeyi amaçlıyoruz. Bu yol haritası, Bazel'in gelişiminin geleceğiyle ilgili mevcut girişimleri ve tahminleri açıklayarak mevcut öncelikler ve devam eden projeler hakkında bilgi edinmenizi sağlar.

Bu yol haritası, hedeflerin anlık görüntüsünü verir ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşterilerden gelen geri bildirimlere veya yeni pazar fırsatlarına göre 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 kullanıma sunuldu. Bazel 6.0, bağımlılıkları yönetme, Android ile geliştirme ve daha fazlası için topluluğun istediği, güçlü ve yeni özellikleri eklemeyi planlıyor.

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

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

  • Bzlmod "deneysel"den "genel kullanıma açık" oldu
  • rules\_jvm\_external desteği içerir ve kullanıcıların Java projeleri için Maven bağımlılıklarını indirmesine olanak tanır.
  • Bzlmod Taşıma Rehberi, Bzlmod'u benimsemek isteyen ekiplere 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 temel bağımlılıkları barındırır.

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

Bazel ile Android uygulaması geliştirme

Bazel 6.0'da gelişmiş araçlar ve birleştirilmiş topluluk özelliği katkıları bulunacak. Benimsenmenin daha da artması ve kod tabanının gittikçe artmasıyla birlikte Bazel ekibi, Android derleme araçlarının Bazel Android kurallarıyla entegrasyonuna öncelik verecek.

  • D8'i 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ğıdakilerle ilgili destek sunar:
    • D8 ile kalıcı çalışanlar
    • D8 kullanarak şekeri azaltma
    • 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 daha fazla araç zinciri geliştirmesi için destek istediklerini gösterdi. Bazel 6.0, diğer platformlar için yedek uygulamayla birlikte sunulduğ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

Bazel IntelliJ IDEA eklentisini ortak yürütmek için Bazel ile iş ortaklığı yapan JetBrains, topluluğun idareciliğini artırma ve özellik istekleri ile geliştirme için kapasiteyi açma hedefine destek oldu.

  • IntelliJ eklentisi 2022.2 sürümü, en son JetBrains eklentisi sürümü için destek sağlar
  • Uzaktan geliştirme ile uyumluluğu artırır
  • Scala desteği gibi yayın aşamasındaki özellikler için topluluk odaklı geliştirmeler

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

Gelecekteki geliştirmeler

Bazel ekibi ileriye dönük olarak, geliştirmeye başladı veya 2023 ve sonrasında aşağıdaki özelliklere öncelik vermeyi öngörüyor.

Bazel'ın Android derleme kurallarını iyileştiriyoruz

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

  • R8'e taşıma 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, pakete dahil olan paketlerin kullanılabilirliği ve güvenliğini sağlamak için güçlü bir lisans uygunluk denetleyicisi talep etti. Bu proje, belirli bir yazılım bileşeniyle ilgili uygunluk ve lisans risklerini belirlemeye ve azaltmaya yardımcı olacak bir dizi kural ve araç sağlar. Hedef özellikler şunları içerir:

  • Belirli bir hedef tarafından kullanılan paketleri denetleme olanağı
  • Kuruluşa özel lisans uygunluğu kontrolleri oluşturma olanağı.

GitHub'da devam etmekte olan rules_Lisans uygulaması bölümüne bakın.

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

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

  • Hermetik derleme desteği
  • Tedarikçi firma/çevrimdışı modu, sürüm oluşturulmuş referans kurallarını yerel bir kopyaya sabitleme
  • Bazel Central Registry, düzenli topluluğa katkı ve temel Bazel kural ve projelerinin benimsenmesini içerir
  • Bzlmod, Bazel projeleri oluşturmak için varsayılan araç haline geldi

İmzalı derlemeler

Bazel, Windows ve Mac için Google anahtarlarıyla imzalanmış güvenilir ikili programlar sağlar. Bu özellik, çok platformlu geliştiricilerin/dev operasyonlarının Bazel ikili programlarının kaynağını tespit etmelerini ve sistemlerini kötü amaçlı, doğrulanmamış ikili programlardan korumalarını sağlar.

Standardized Platforms API'si

Yeni Platforms API, çok dilli ve çok platformlu derlemeler için mimari yapılandırmasını standart hale getirecektir. Geliştiriciler bu özelliği kullanarak yüksek maliyetli geliştirme zamanı hatalarını ve büyük derlemelerindeki karmaşıklığı azaltabilir.

Analiz metrikleri oluşturma

Bazel telemetrisi, analiz aşaması süresi metrikleri sağlayarak geliştiricilerin kendi derleme performanslarını optimize etmelerine olanak tanır.

"Bayt 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 sorunu yaşamasını önler. Uzaktan derlemelere eklenen özellikler:

  • Yerel ve uzaktan işlemlerin bağımlı çıkışlarını indirdikleri anda başlatılması için eşzamansız indirme özelliğini kullanın
  • Simge Bağlantıları desteği ekleme
  • Derleme tamamlandığında uzak işlemlerden ara çıkışları alma

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