Genel Bakış
Bazel projesi, temel ürünün performansını korurken, yeniden yapılandırırken ve iyileştirirken ihtiyaçlarınızı karşılamak için sürekli olarak gelişir. Bu süreçte özellikler geliştirir ve destek sağlar.
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ğiyle ilgili tahminler açıklanarak mevcut öncelikler ve devam eden projeler hakkında bilgi edinebilirsiniz.
Bu yol haritası, hedeflerin anlık görüntüsünü sunar ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşteri geri bildirimlerine ya da 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 Gruplar topluluğuna katılın.
4. Çeyrek — Bazel 6.0 Sürümünün Yayınlanması
4. çeyrekte yeni uzun süreli destek (LTS) sürümü olan Bazel 6.0 kullanıma sunulmuştur. Bazel 6.0'a, bağımlılıkların yönetilmesi, Android ile geliştirme ve daha fazlası için topluluk tarafından talep edilen yeni ve güçlü özellikler eklenmesi planlanmaktadır.
Bzlmod: harici bağımlılık yönetim sistemi
Bzlmod, geçişli bağımlılıkları otomatik olarak çözerek projelerin hızlı ve kaynak açısından verimli kalırken ölçeklenmesine olanak tanır. 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 sunacaktır.
- Bzlmod, "deneysel" olarak kullanımdan "genel kullanıma sunuldu" olarak değiştirildi
- Kullanıcıların Java projeleri için Maven bağımlılıklarını indirmesine olanak tanıyan
rules\_jvm\_external
desteği içerir - Bzlmod Taşıma Kılavuzu, Bzlmod'u kullanmaya başlamak isteyen ekiplere araçlar, komut dosyaları ve dokümanlar 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şmeyle ilgili daha fazla bilgi için Bzlmod topluluk güncellemesini izleyin veya orijinal tasarım dokümanlarını okuyun.
Bazel ile Android uygulaması derleme
Bazel 6.0, iyileştirilmiş araçları ve birleştirilmiş topluluk özelliği katkılarını içerecek. Bazel ekibi, daha fazla benimsenme ve büyüyen bir kod tabanı beklediği için Android derleme araçlarının Bazel Android kurallarıyla entegrasyonuna öncelik verecektir.
- D8'i 3.3.28 sürümüne günceller ve varsayılan dexer olarak ayarlar.
- Aşağıdakiler için destek de dahil olmak üzere 5.X'te eklenen ana topluluk özelliği katkılarıyla birleştirilir:
- D8 ile kalıcı çalışanlar
- D8'i kullanarak şeker çıkarma
- Android manifestlerinde "uses-permissions" etiketlerini birleştirme
- Android kaynak işleme işleminde çoklu ç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 istediğini gösterdi. Bazel 6.0, yazarların diğer platformlar için yedek uygulamayla birlikte mevcut olduğunda isteğe bağlı, yüksek performanslı bir araç zinciri kullanarak kurallar yazmasına olanak tanır.
Bazel-JetBrains* IntelliJ IDEA desteği
JetBrains, Bazel IntelliJ IDEA eklentisini birlikte sürdürmek için Bazel ile iş ortaklığı yaparak topluluğun sahipliğini artırma ve özellik isteklerine ve geliştirmeye yönelik kapasiteyi artırma hedefini destekledi.
- IntelliJ eklentisinin 2022.2 sürümü, en son JetBrains eklenti sürümünü destekler
- Uzaktan geliştirmeyle uyumluluğu artırır
- Scala desteği gibi uçuş sırasında kullanılabilen ö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 özelliklere öncelik vermeyi planlıyor veya geliştirmeye başladı.
Bazel'in Android derleme kurallarını iyileştirme
Derleme, test ve dağıtım yoluyla iş akışına odaklanarak Android uygulama geliştirme deneyimine yatırım yapmaya devam edin.
- R8'e geçiş ve R8 için destek
- Starlark diline çeviri 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 uygunluğu araçları
Geliştiriciler, dahil edilen paketlerin kullanılabilirliğini ve güvenliğini sağlamak için güçlü bir lisans uygunluk kontrol cihazı istedi. Bu proje, belirli bir yazılım bileşeniyle ilişkili uygunluk ve lisans risklerini tespit edip azaltmanıza yardımcı olacak bir dizi kural ve araç sağlar. Hedef özellikler arasında şunlar yer alır:
- Belirli bir hedef tarafından kullanılan paketleri denetleme olanağı
- Kuruluşa özel lisans uygunluğu kontrolleri oluşturma yetkisi.
GitHub'da devam eden rules_license uygulamasını inceleyin.
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ık yönetimi alt sistemi olarak WORKSPACE
'ün yerini almayı hedefliyor. Hedeflenen özellikler arasında şunlar yer alır:
- Hermetik derlemeler için destek
- Tedarikçi/çevrimdışı mod, sürümlü referans kurallarını yerel bir kopyaya sabitleme
- Bazel Merkezi Kaydı, düzenli topluluk katkılarını ve önemli Bazel kurallarının ve projelerinin benimsenmesini içerir.
- Bzlmod, Bazel projelerini derlemek için varsayılan araç haline geldi
İmzalı derlemeler
Bazel, Windows ve Mac için Google anahtarlarıyla imzalanan güvenilir ikili dosyalar sağlar. Bu özellik, çok platformlu geliştiricilerin/dev-ops'lerin Bazel ikili dosyalarının kaynağını tanımlamasına 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ırmasını standartlaştıracak. Geliştiriciler bu özellik sayesinde, büyük derlemelerindeki maliyetli geliştirme zamanı hatalarını ve karmaşıklığı azaltabilir.
Analiz metrikleri oluşturma
Bazel telemetrisi, geliştiricilerin kendi derleme performanslarını optimize etmesine olanak tanıyan analiz aşaması zaman metrikleri sağlar.
"Bayt içermeyen derlemeler" ile uzaktan yürütme
Bayt içermeyen derlemeler, Bazel'in yalnızca 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 arasında şunlar bulunur:
- Yerel ve uzak işlemlerin, bağımlı çıktılarını indirir indirmez başlatılmasını sağlamak için eşzamansız indirme özelliğini kullanın
- Sembolik bağlantı desteği ekleme
- Bir derleme tamamlandıktan sonra 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.