Bazel yol haritası

Genel Bakış

Bazel projesi, temel ürünün performansını korurken, yeniden düzenlerken ve iyileştirirken özellikler geliştirip destek sunarak ihtiyaçlarınıza yanıt vermek için sürekli olarak gelişir.

Bu değişikliklerle, açık kaynak topluluğumuzu bilgilendirmeyi ve dahil etmeyi amaçlıyoruz. Bu yol haritasında, mevcut girişimler ve Bazel geliştirmenin geleceğine dair tahminler açıklanarak mevcut öncelikler ve devam eden projeler hakkında bilgi verilir.

Bu yol haritası, hedeflerin anlık görüntüsünü sunar ve garanti olarak değerlendirilmemelidir. Öncelikler, geliştirici ve müşteri geri bildirimlerine 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ü olan Bazel 6.0 kullanıma sunulacak. Bazel 6.0, bağımlılıkları yönetme, Android ile geliştirme ve daha fazlası için yeni güçlü ve topluluk tarafından istenen özellikleri içerecek şekilde planlanmaktadır.

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

Bzlmod, geçişli bağımlılıkları otomatik olarak çözer. Böylece projeler hızlı ve kaynak açısından verimli kalırken ölçeklenebilir. Bazel 5.0'da deneysel olarak kullanıma sunulan Bzlmod, genel olarak kullanıma sunulacak ve elmas bağımlılığı sorununa çözüm sağlayacak.

  • Bzlmod, "deneysel"den "genel kullanıma açık"a geçiyor
  • rules\_jvm\_external desteği içerir. Bu sayede kullanıcılar Java projeleri için Maven bağımlılıklarını indirebilir.
  • Bzlmod Taşıma Kılavuzu, Bzlmod'u kullanmak isteyen ekipler için araçlar, komut dosyaları ve dokümanlar sunar.
  • Bazel merkezi deposunda temel Bazel BUILD kuralları (rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) ve Bzlmod için gereken temel bağımlılıklar bulunur.

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

Bazel ile Android uygulaması derleme

Bazel 6.0, iyileştirilmiş araçlar ve birleştirilmiş topluluk özelliği katkılarını içerir. Daha fazla benimsenme ve kod tabanının büyümesi beklentisiyle 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 ve aşağıdakiler için destek içeren ana topluluk özellik katkıları birleştirildi:
    • D8 ile kalıcı çalışanlar
    • D8 kullanarak desugaring
    • Android manifestlerindeki "uses-permissions" etiketlerini birleştirme
    • Android kaynak işlemede çoklu görevli çalışanlar

İsteğe bağlı araç zincirleri

Geliştirici Memnuniyeti Anketimiz, kural yazarlarının daha fazla araç zinciri geliştirme desteği istediğini gösterdi. Bazel 6.0, yazarların diğer platformlar için yedek uygulama ile birlikte kullanılabildiğinde isteğe bağlı, yüksek performanslı bir araç zinciri kullanarak kurallar yazmasına olanak tanır.

Bazel-JetBrains* IntelliJ IDEA desteği

JetBrains, topluluk yönetimini artırma ve özellik istekleri ile geliştirme için kapasite açma hedefini desteklemek amacıyla Bazel IntelliJ IDEA eklentisinin ortak bakımını yapmak için Bazel ile ortaklık kurdu.

  • IntelliJ eklentisi v. 2022.2, en yeni JetBrains eklenti sürümünü destekler.
  • Uzaktan geliştirme ile uyumluluğu artırır.
  • Scala desteği gibi kullanıma sunulmuş özellikler için topluluk odaklı geliştirmeyi destekler.

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

Gelecekteki geliştirmeler

Bazel ekibi, 2023 ve sonrasında aşağıdaki özellikleri geliştirmeye başladı veya öncelik vermeyi planlıyor.

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

Android uygulama geliştirme deneyimine yatırım yapmaya devam edeceğiz. Derleme, test ve dağıtım iş akışına odaklanacağız.

  • R8'e taşıma ve R8 desteği
  • Android kurallarında yapılan güncellemeler (Starlark diline çeviri dahil)
  • App Bundle desteği
  • En yeni NDK sürümleri için destek
  • Kod kapsamını test etme

OSS lisans uyumluluğu araçları

Geliştiriciler, dahil edilen paketlerin kullanılabilirliğini ve güvenliğini sağlamak için güçlü bir lisans uyumluluğu denetleyicisi istedi. Bu proje, belirli bir yazılım bileşeniyle ilişkili uygunluk ve lisans risklerini belirlemeye ve azaltmaya yardımcı olacak bir dizi kural ve araç sunar. Hedef özellikler şunlardır:

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

Github'daki devam eden rules_license uygulamasına göz atın.

Bzlmod: Harici 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 artırır. Bzlmod, önümüzdeki üç yıl içinde varsayılan Bazel çalışma alanı bağımlılığı yönetim alt sistemi olarak WORKSPACE'nın yerini almayı hedefliyor. Hedeflenen özellikler:

  • Hermetik derlemeler için destek
  • Tedarikçi/çevrimdışı mod, sürüm oluşturulmuş referans kurallarını yerel bir kopyaya sabitler
  • Bazel Central Registry, topluluktan düzenli katkılar ve önemli Bazel kurallarının ve projelerinin benimsenmesini içerir.
  • Bzlmod, Bazel projeleri oluşturmak için varsayılan araç haline geliyor

İmzalı derlemeler

Bazel, Windows ve Mac için Google anahtarlarıyla imzalanmış güvenilir ikili dosyalar sağlar. Bu özellik, çok platformlu geliştiricilerin/dev-ops'un Bazel ikili dosyalarının kaynağını belirlemesine ve sistemlerini kötü amaçlı, doğrulanmamış ikili dosyalardan korumasına olanak tanır.

Standardized Platforms API

Yeni Platforms API, çok dilli ve çok platformlu derlemeler için mimari yapılandırmayı standartlaştıracak. Bu özellik sayesinde geliştiriciler, büyük derlemelerinde maliyetli geliştirme süresi hatalarını ve karmaşıklığı azaltabilir.

Analiz metrikleri oluşturma

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

"Builds without the Bytes" ile uzaktan yürütme

Builds without the Bytes (Baytsız Derlemeler), yalnızca Bazel'in gerekli yapıları indirmesine izin vererek performansı optimize eder ve derlemelerin ağ bant genişliğinde darboğaz oluşturmasını önler. Uzaktan derlemeler için eklenen özellikler:

  • Yerel ve uzak işlemlerin bağımlı çıkışlarını indirdikleri anda başlatılmasına izin vermek için eşzamansız indirmeyi kullanın.
  • Sembolik bağlantı desteği ekleme
  • Derleme tamamlandıktan sonra uzaktan işlemlerden ara çıktıları alma

*Copyright © 2022 JetBrains s.r.o. JetBrains ve IntelliJ, JetBrains s.r.o. şirketinin tescilli ticari markalarıdır.