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'te eklenen ana topluluk özelliği katkılarıyla birleştirilir ve aşağıdakilerin desteklenmesine olanak tanır:
- D8 ile kalıcı çalışanlar
- D8 kullanarak şekeri azaltma
- "izinleri-kullanır"ı birleştirme Android manifest dosyalarındaki etiketler
- 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 topluluk katkısını ve temel Bazel kurallarının projeler
- 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 çoklu platform derlemeleri 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.