Genel Bakış
Bazel topluluğumuza mutlu yıllar. Yeni yılla birlikte 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 yol haritamızı yayınladık. Bu yol haritasının, derleme araçları ihtiyaçlarınıza yardımcı olduğunu umuyoruz. Bazel projesi, ihtiyaçlarınıza yanıt vermek için gelişmeye devam ederken 2023 güncellememiz hakkında bilgi vermek 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ğiyle ilgili tahminler açıklanarak mevcut öncelikler ve devam eden projeler hakkında bilgi edinebilirsiniz.
Bazel 7.0 Sürümünün Yayınlanması
Bazel 7.0 uzun süreli desteğini 2023'ün sonlarında kullanıma sunmayı planlıyoruz. Bazel 7.0 ile, devam eden çalışmaların çoğunu sunmayı ve kullanıcılarımızın talep ettiği özellik iyileştirmeleri üzerinde çalışmaya devam etmeyi amaçlıyoruz.
Platformlar arası daha iyi önbelleğe alma paylaşımı
Önbelleğe alınmış yapıların, öncelikle Java/Kotlin ve Android geliştirme için farklı yerel (Mac) ve uzak (Linux) derleme platformları arasında paylaşılmasına olanak tanır. Bu sayede daha iyi performans ve verimli önbelleğe alma kullanımı elde edilir.
Bazel ile Android uygulaması derleme
Manifest ve Kaynak Birleştirici, Android uygulama geliştiricilerinin tools:node="merge" gibi daha yeni manifest birleştirme özelliklerini kullanabilmesi için 30.1.3 sürümüne güncellendi.
Uzaktan yürütme iyileştirmeleri
Bazel 7.0, eşzamansız yürütme için destek sağlar ve --jobs işaretçisiyle paralelliği artırarak 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 çözerek projelerin hızlı ve kaynak açısından verimli kalırken ölçeklenmesine olanak tanır. Bazel 7.0, Bazel'in harici bağımlılık yönetimi işlevinde 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
- Kilit dosyası desteği: Bzlmod ile hermetik derlemeyi etkinleştirir.
- Tedarikçi/çevrimdışı mod desteği: Kullanıcıların önceden indirilmiş bağımlılıklarla derlemeleri çalıştırmasına olanak tanır
- Tam depolama alanı önbelleği desteği (önbelleğe alma işlemi yalnızca yapıları değil, nihai depolama alanı içeriğini de indirir)
- Bazel Merkezi Kayıt Defteri, düzenli topluluk katkılarını ve önemli Bazel kurallarının ve projelerinin benimsenmesini içerir.
Analiz metrikleri oluşturma
Bazel 7.0, geliştiricilerin kendi derleme performanslarını optimize etmelerine olanak tanıyan analiz aşaması zaman metrikleri sağlar.
Varsayılan olarak Baytlar etkin olmadan derleme
Bayt içermeyen derlemeler, ara yapıların indirilmesini önleyerek ve derlemelerin ağ bant genişliğinde darboğaz oluşturmasını engelleyerek performansı optimize eder. Eklenen özellikler arasında şunlar yer alır:
Kiralama hizmetiyle uzak önbelleğin kaldırılması için destek. Böylece, yapıların erken kaldırılması durumunda kullanıcılar hatalarla karşılaşmaz.
Simge bağlantısı desteğindeki özellik eksikliklerini giderme
Uzaktan işlemlerden ara çıkışları alma seçenekleri sunma
Skymeld ile Üretkenliği Artırma
Bazel 7.0, çok hedefli derlemelerinizin gerçek zamanını azaltan bir değerlendirme modu olan Skymeld'i kullanıma sunar. Skymeld, özellikle birden fazla üst düzey hedefi olan derlemeler için derleme hızlarını artırmak amacıyla 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ştirmeyi 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 getirerek daha sık sürüm yayınlayabildik.
- Android kurallarının Starlark'a taşınması
- R8 desteği: Android uygulama geliştiricilerinin R8 güncellenmiş optimizasyonlarını kullanmasına olanak tanır.
- Mobil Yükleme: Android uygulama geliştiricilerin, Mobil Yükleme'nin güncellenmiş bir sürümü aracılığıyla Android uygulama değişikliklerini hızlı bir şekilde geliştirmesine, test etmesine ve dağıtmasına olanak tanır.
Yazılım Malzeme Listesi verilerini oluşturma (SBOM'ler) ve OSS lisans uygunluğu araçları
Bazel ile geliştiriciler, SBOM oluşturmaya yardımcı olacak veriler oluşturabilir. Bu veriler metin veya JSON biçiminde yayınlanır ve SPDX veya CycloneDX spesifikasyonlarını karşılayacak şekilde kolayca biçimlendirilebilir. Ayrıca süreç, Bazel modüllerinin kullanıma sunulduğu lisansları beyan etme kuralları ve bu beyanlarla ilgili süreçler oluşturmak için araçlar sağlar. GitHub'da 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'lerin Bazel ikili dosyalarının kaynağını tanımlamasına ve sistemlerini kötü amaçlı olabilecek doğrulanmamış ikili dosyalardan 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 Bazel ikili kod tabanını değil, yalnızca kural kümelerini çatallamalarına olanak tanır. Böylece kullanıcılar:
- Gerektiğinde kuralları 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 artımlı IntelliJ eklentisi güncellemeleri.
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.
*Telif hakkı © 2022 JetBrains s.r.o. JetBrains ve IntelliJ, JetBrains s.r.o. şirketinin tescilli ticari markalarıdır.