Bazel yol haritası

Sorun bildirin Kaynağı göster

Genel bakış

Bazel topluluğumuza kutlu olsun. Yeni yılda 2023 yol haritamızla ilgili ayrıntıları sunmayı planlıyoruz. Geçtiğimiz yıl, Bazel 6.0 planlarımızla 2022 yol haritamızı yayınladık. Sağlanan yol haritasının derleme araçlarınıza yönelik gereksinimleri karşıladığını umuyoruz. Bazel projesi, ihtiyaçlarınıza yanıt olarak gelişmeye devam ederken 2023 güncellememizi sizinle paylaşmak istiyoruz.

Bu değişikliklerle birlikte açık kaynak topluluğumuzu bilgilendirmeye ve dahil etmeye çalışıyoruz. Bu yol haritası, mevcut öncelikleri ve süregelen projeleri görmenizi sağlayarak Bazel geliştirme sürecinin geleceğiyle ilgili mevcut girişimleri ve tahminleri açıklar.

Bazel 7.0 Sürümü

Bazel 7.0 uzun süreli desteğini (LTS) 2023'ün sonlarına doğru sunmayı planlıyoruz. Bazel 7.0'da, devam eden öğelerin çoğunu sağlamayı ve kullanıcılarımızın istediği özellik iyileştirmeleri üzerinde çalışmaya devam etmeyi amaçlıyoruz.

Platformlar arası önbellek paylaşımı geliştirildi

Önbelleğe alınan yapıların öncelikle Java/Kotlin ve Android geliştirme için farklı derleme yerel (Mac) ve uzak (Linux) derleme platformlarında paylaşılmasını sağlar, böylece daha iyi performans ve verimli önbellek kullanımı sağlar.

Bazel ile Android uygulaması oluşturma

Manifest ve Kaynak Birleştirme, Android uygulaması geliştiricilerinin tools:node="merge" gibi daha yeni manifest birleştirme özelliklerini kullanabilmeleri için 30.1.3 sürümüne güncellenir.

Uzaktan yürütme iyileştirmeleri

Bazel 7.0, eşzamansız yürütme desteği sunarak bayrak işlerinde paralellik sayesinde uzaktan yürütmeyi hızlandırıyor.

Bzlmod: harici bağımlı yönetim sistemi

Bzlmod, geçişli bağımlılıkları otomatik olarak çözerek projeleri hızlı ve kaynak açısından verimli kalırken ölçeklendirmeye olanak tanır. Bazel 7.0, Bazel'ın harici bağımlılık yönetimi işlevinde aşağıdakiler gibi çeşitli iyileştirmeler içerir:

  • Bzlmod, Bazel'da harici bağımlılık yönetimi için varsayılan olarak etkinleştirildi
  • Dosya desteği - Bzlmod ile hermetik yapıyı etkinleştirir
  • Tedarikçi/çevrimdışı mod desteği: Kullanıcıların önceden indirilmiş bağımlılıklarla derlemeler çalıştırmasına olanak tanır
  • Tam depo önbelleği desteği (önbelleğe alma işlemi yalnızca yapıları değil, aynı zamanda son depo içeriği de indirilir)
  • Bazel Central Registry, düzenli topluluk katkısını ve önemli Bazel kurallarının ve projelerinin benimsenmesini içerir

Analiz metrikleri oluşturma

Bazel 7.0, analiz aşaması süreleri metriklerini sağlayarak geliştiricilerin kendi derleme performanslarını optimize etmelerine olanak tanır.

Varsayılan olarak bayt cinsinden yapılandırma devre dışı bırakılır

bayt olmadan derlemeler, ara yapıların indirilmesini önleyerek ve yapıların ağ bant genişliğinde performans sorunları yaşamasını önleyerek performansı optimize eder. Eklenen özellikler şunlardır:

Skymeld ile Verimlilik Oluşturma

Bazel 7.0, çok hedefli derlemelerinizin sınırlanma süresini azaltan bir değerlendirme modu olan Skymeld'i kullanıma sundu. Skymeld, özellikle birden fazla üst hedefi olan yapılar için derleme hızlarını iyileştirmek amacıyla analiz ve yürütme aşamaları arasındaki engeli ortadan kaldırır. Ancak tek hedefli derlemelerde önemli bir fark beklenmiyor.

Bazel Ekosistemi ve Gereçleri

Bazel ile Android uygulaması oluşturma

  • Android yerel kurallarını Starlark'a taşıma: Bazel 7.0 için Android kuralları, geliştirmeyi Bazel'dan ayırmak ve topluluk katkılarını daha iyi etkinleştirmek için Starlark'a taşınır. Ayrıca bu kuralları, temel Bazel ikili programdan bağımsız hale getirerek değişiklikleri daha sık yayınlamamızı sağladık.
  • Android kurallarının Starlark'a taşınması
  • R8 desteği: Android uygulaması geliştiricilerinin R8 güncellemesi yapılan optimizasyonları kullanmalarına olanak tanır.
  • Mobil Yükleme: Android uygulaması geliştiricilerinin, güncellenmiş bir Mobil Yükleme sürümüyle Android uygulaması değişikliklerini hızlı bir şekilde geliştirmesine, test etmesine, dağıtmasına olanak tanır.

Material of Materials veri üretimi (SBOM'lar) ve OSS lisans uygunluğu araçları

Bazel sayesinde geliştiriciler, SBOM'ların üretilmesine yardımcı olacak veriler oluşturabilir. Bu veriler metin veya JSON biçiminde oluşturulur ve SPDX veya CycloneDX spesifikasyonlarını karşılayacak şekilde kolayca biçimlendirilmiştir. Süreç ayrıca, Bazel modüllerinin kullanıma sunduğu lisansların bildirilmesine yönelik kurallar ve bu beyanlar etrafında süreçler oluşturmaya yönelik araçlar da sağlar. GitHub'da devam eden rules_lisans uygulamasını inceleyin.

İmzalı derlemeler

Bazel, Google anahtarlarıyla imzalanmış Windows ve Mac için güvenilir ikili programlar sağlar. Bu özellik, çok platformlu geliştiricilerin/devOps'un Bazel ikili programlarının kaynağını belirlemesini ve sistemlerini kötü amaçlı, doğrulanmamış ikili programlardan korumasını sağlar.

Java, C++ ve Python kurallarının Starlark'a taşınması

Java, C++ ve Python kural kümelerini Starlark'a taşıma işlemini tamamlayın. Bu çalışma, Bazel kullanıcılarının Bazel ikili kod tabanını değil, sadece kural kümelerini çatallamasını sağlayarak kullanıcıların

  • Kuralları gerektiği şekilde 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 ek IntelliJ eklenti güncellemeleri.

Bu yol haritası, hedefleri özetliyor ve garanti olarak görülmemelidir. Öncelikler, geliştirici ve müşterilerin geri bildirimlerine veya yeni pazar fırsatlarına bağlı olarak değişebilir.

Bu yol haritasındaki güncellemeler de dahil olmak üzere yeni özelliklerle ilgili bildirim almak için Google Grubu topluluğuna katılın.

*Telif hakkı © 2022 JetBrains s.r.o. JetBrains ve IntelliJ, JetBrains s.r.o'nun tescilli ticari markalarıdır