Bazel yol haritası

Sorun bildirme Kaynağı görüntüleme Nightly · 8.0 . 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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:

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.