Bazel yol haritası

Sorun bildirin Kaynağı göster

Genel bakış

Bazel topluluğumuzun yeni yılını kutluyoruz. Yeni yılda 2023 yol haritamızın ayrıntılarını sunmayı planlıyoruz. Geçen yıl Bazel 6.0 planlarımızı içeren 2022 yılı yol haritamızı yayınladık. Size sunulan yol haritasının araç oluşturma ihtiyaçlarınıza yardımcı olduğunu umuyoruz. Bazel projesi, ihtiyaçlarınıza göre gelişmeye devam ederken sizlerle 2023 güncellememizi paylaşmak istiyoruz.

Bu değişikliklerle, açık kaynak topluluğumuzu bilgilendirmeyi ve dahil etmeyi amaçlıyoruz. Bu yol haritası, Bazel'in gelişiminin geleceğiyle ilgili mevcut girişimleri ve tahminleri açıklayarak mevcut öncelikler ve devam eden projeler hakkında bilgi edinmenizi sağlar.

Bazel 7.0 Sürümü

2023'ün sonlarında Bazel 7.0 uzun süreli desteği (LTS) kullanıma sunmayı planlıyoruz. Bazel 7.0 ile devam etmekte olan öğelerin çoğunu sunmayı hedefliyoruz ve kullanıcılarımızın uzun süredir istediği özellik iyileştirmeleri üzerinde çalışmaya devam ediyoruz.

Platformlar arası daha iyi önbellek paylaşımı

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

Bazel ile Android uygulaması geliştirme

Manifest ve Resource Merger, 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üncellenir.

Uzaktan yürütme iyileştirmeleri

Bazel 7.0, eşzamansız yürütme desteği sunarak işaretli işlerle daha fazla paralellik sağlayarak uzaktan yürütmeyi hızlandırır.

Bzlmod: dış bağımlılık yönetim sistemi

Bzlmod, geçişli bağımlılıkları otomatik olarak çözerek projelerin hızlı ve kaynak verimliliğinden ödün vermeden ölçeklendirilmesini sağlar. Bazel 7.0, Bazel'in dış bağımlılık yönetimi işlevinde çok sayıda geliştirme içerir. Örneğin:

  • Bzlmod, Bazel'de dış bağımlılık yönetimi için varsayılan olarak etkinleştirildi
  • Kilit dosyası desteği — Bzlmod ile hermetik derlemeyi etkinleştirir
  • Tedarikçi firma/çevrimdışı mod desteği: Kullanıcıların önceden indirilmiş bağımlılıklarla derlemeleri çalıştırmasına olanak tanır
  • Eksiksiz depo önbelleği desteği (yalnızca yapıları indirmekle kalmayıp nihai depo içeriğini de önbelleğe alma)
  • Bazel Central Registry, topluluğa düzenli olarak yapılan katkıyı ve temel Bazel kural 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 etkin Baytlar olmadan derleme

Bayt içermeyen derlemeler, ara yapıların indirilmesini önleyerek ve derlemelerin ağ bant genişliğinde performans sorunu yaşamasını önleyerek performansı optimize eder. Eklenen özellikler arasında şunlar vardır:

Skymeld ile Üretkenlik Oluşturma

Bazel 7.0, çok hedefli derlemelerinizin duvar süresini azaltan bir değerlendirme modu olan Skymeld'i kullanıma sundu. Skymeld, özellikle birden fazla üst düzey hedefi olan 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 derlemeler için önemli bir fark beklenmemektedir.

Bazel Ekosistemi ve Araçları

Bazel ile Android uygulaması geliştirme

  • Android yerel kurallarını Starlark'a taşıyın: Bazel 7.0 için Android kuralları, geliştirmeyi Bazel'den ayırmak ve topluluk katkılarını daha iyi hale getirmek amacıyla Starlark'a taşınıyor. Ayrıca, bu kuralları temel Bazel ikili programından bağımsız hale getirerek daha sık içerik yayınlamamızı sağladık.
  • 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ştiricilerinin, güncellenmiş bir Mobil Yükleme sürümü aracılığıyla Android uygulaması değişikliklerini hızlı bir şekilde geliştirmesini, test etmesini, dağıtmasını sağlar.

Yazılım Bill of Materials veri oluşturma (SBOM) ve OSS lisansı uygunluk araçları

Bazel ile geliştiriciler SBOM üretimine 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çimlendirilebilir. Ayrıca bu süreçte, Bazel modüllerinin kullanıma sunulduğu lisansları beyan eden kurallar ve bu beyanlar etrafında süreçler oluşturmaya yönelik araçlar sağlanır. GitHub'da devam etmekte olan rules_Lisans uygulaması işlemine bakın.

İmzalı derlemeler

Bazel, Windows ve Mac için Google anahtarlarıyla imzalanmış güvenilir ikili programlar sağlar. Bu özellik, çok platformlu geliştiricilerin/dev operasyonlarının Bazel ikili programlarının kaynağını tespit etmelerini ve sistemlerini kötü amaçlı, doğrulanmamış ikili programlardan korumaları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. Bu çaba, Bazel kullanıcılarının Bazel ikili kod tabanı yerine yalnızca kural kümelerini çatallamasına olanak tanır. Böylece kullanıcılar,

  • 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 eklentisi sürümünü desteklemek için artımlı IntelliJ eklentisi güncellemeleri.

Bu yol haritası, hedeflerin anlık görüntüsünü verir ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşterilerden gelen geri bildirimlere 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 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