Genel Bakış
Bazel topluluğumuzun yeni yılını kutlarız. Yeni yılda 2023 yol haritamızın ayrıntılarını paylaşmayı planlıyoruz. Geçen yıl, Bazel 6.0 planlarımızı içeren 2022 yılı yol haritamızı yayınlamıştık. Yol haritasının, derleme araçlarıyla ilgili ihtiyaçlarınız konusunda size bilgi verdiğini umuyoruz. Bazel projesi, ihtiyaçlarınıza yanıt verecek şekilde gelişmeye devam ederken 2023 güncellememizi sizinle paylaşmak istiyoruz.
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.
Bazel 7.0 sürümü
2023'ün sonlarında Bazel 7.0 uzun süreli destek (LTS) sürümünü kullanıma sunmayı planlıyoruz. Bazel 7.0 ile devam eden birçok öğeyi sunmayı ve kullanıcılarımızın talep ettiği özellik iyileştirmeleri üzerinde çalışmaya devam etmeyi hedefliyoruz.
Platformlar arası daha iyi önbellek paylaşımı
Öncelikle Java/Kotlin ve Android geliştirme için önbelleğe alınmış yapılar farklı yerel (Mac) ve uzak (Linux) derleme platformlarında paylaşılabilir. Bu sayede daha iyi performans ve verimli önbellek kullanımı sağlanır.
Bazel ile Android uygulaması derleme
Manifest ve Kaynak Birleştirici, Android uygulama geliştiricilerin tools:node="merge" gibi daha yeni manifest birleştirme özelliklerini kullanabilmesi için v30.1.3 sürümüne güncellendi.
Uzaktan yürütme iyileştirmeleri
Bazel 7.0, eşzamansız yürütme desteği sunar ve --jobs işaretiyle artırılmış paralellik sayesinde uzaktan yürütmeyi hızlandırı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 7.0, Bazel'in harici bağımlılık yönetimi işlevselliğinde aşağıdakiler de dahil olmak üzere çeşitli iyileştirmeler içerir:
- Bazel'de harici bağımlılık yönetimi için Bzlmod varsayılan olarak etkinleştirildi
- Dosya kilitleme desteği: Bzlmod ile hermetik derleme sağlar.
- Sağlayıcı/çevrimdışı mod desteği: Kullanıcıların önceden indirilmiş bağımlılıklarla derleme çalıştırmasına olanak tanır.
- Tam depo önbelleği desteği (yalnızca indirilen yapılar değil, son depo içeriği de önbelleğe alınır)
- Bazel Merkezi Kayıt Defteri, düzenli topluluk katkısı ve temel Bazel kurallarının ve projelerinin benimsenmesini içerir.
Analiz metrikleri oluşturma
Bazel 7.0, analiz aşaması süresi metrikleri sunarak geliştiricilerin kendi derleme performanslarını optimize etmelerine olanak tanır.
Varsayılan olarak Bytes açıkken geliştirme
Builds without the Bytes, ara yapıtların indirilmesini önleyerek ve derlemelerin ağ bant genişliğinde darboğaz oluşturmasını engelleyerek performansı optimize eder. Eklenen özellikler:
Kiralama hizmetiyle uzaktan önbellek temizleme desteği sayesinde, yapılar erken temizlendiğinde kullanıcılar hatayla karşılaşmaz.
Sembolik bağlantı desteğindeki özellik eksikliklerini giderme
Uzaktan işlemlerden ara çıktıları alma seçenekleri sunma
Skymeld ile üretkenliği artırma
Bazel 7.0, çok hedefli derlemelerinizin gerçek süresini kısaltan bir değerlendirme modu olan Skymeld'i kullanıma sunuyor. Skymeld, özellikle birden fazla üst düzey hedef içeren derlemelerde derleme hızlarını artırmak için analiz ve yürütme aşamaları arasındaki engeli ortadan kaldırır. Ancak tek hedefli derlemelerde önemli bir fark beklenmez.
Bazel Ekosistemi ve Araçları
Bazel ile Android uygulaması derleme
- Android yerel kurallarını Starlark'a taşıma: Bazel 7.0'da Android kuralları, geliştirme sürecini Bazel'den ayırmak ve topluluk katkılarını daha iyi etkinleştirmek için Starlark'a taşınır. Ayrıca, bu kuralları temel Bazel ikilisinden bağımsız hale getirdik. Bu sayede daha sık yayın yapabiliyoruz.
- Android kurallarının Starlark'a taşınması
- R8 desteği: Android uygulama geliştiricilerinin, R8'in güncellenmiş optimizasyonlarını kullanmasına olanak tanır.
- Mobil Yükleme: Android uygulama geliştiricilerinin, Mobil Yükleme'nin güncellenmiş bir sürümü aracılığıyla Android uygulamalarında yaptıkları değişiklikleri hızlı bir şekilde geliştirmesine, test etmesine ve dağıtmasına olanak tanır.
Malzeme Listesi yazılımı (SBOM) veri oluşturma ve OSS lisans uyumluluğu araçları
Geliştiriciler, Bazel ile SBOM oluşturmaya yardımcı olacak veriler üretebilir. Bu veriler metin veya JSON biçiminde çıkış verir ve SPDX ya da CycloneDX spesifikasyonlarını karşılayacak şekilde kolayca biçimlendirilebilir. Ayrıca bu süreç, Bazel modüllerinin hangi lisanslarla kullanıma sunulduğunu bildirmek için kurallar ve bu bildirimler etrafında süreçler oluşturmak için araçlar sağlar. GitHub'daki devam eden rules_license uygulamasını inceleyin.
İ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 ikililerinin kaynağını belirlemesine ve sistemlerini kötü amaçlı olabilecek, doğrulanmamış ikililerden korumasına olanak tanır.
Java, C++ ve Python kurallarının Starlark'a taşınması
Java, C++ ve Python kural kümelerinin Starlark'a taşınması tamamlandı. Bu çalışma, Bazel kullanıcılarının yalnızca kural kümelerini çatallamasına ve Bazel ikili kod tabanını çatallamamasına olanak tanır. Böylece kullanıcılar,
- Kuralları gerektiğinde güncelleyin ve özelleştirin.
- Kuralları Bazel'den bağımsız olarak güncelleme
Bazel-JetBrains* IntelliJ IDEA desteği
En son JetBrains eklenti sürümünü desteklemek için IntelliJ eklentisinde artımlı güncellemeler.
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 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 Gruplar topluluğuna katılın.
*Copyright © 2022 JetBrains s.r.o. JetBrains ve IntelliJ, JetBrains s.r.o'nun tescilli ticari markalarıdır.