Bazel yol haritası

Sorun bildir Kaynağı göster

Genel bakış

Bazel topluluğumuza yeni yılınız kutlu olsun. Yeni yılda, 2023 yol haritamızın ayrıntılarını getirmeyi planlıyoruz. Geçen yıl Bazel 6.0 planlarımızla 2022 yıl yol haritamızı yayınladık. Yol haritasının, derleme araçları ihtiyaçlarınıza yardımcı olduğunu umuyoruz. Bazel projesi ihtiyaçlarınıza göre gelişmeye devam ederken 2023 güncellememizi paylaşmak istiyoruz.

Bu değişikliklerle, açık kaynak topluluğumuzu sürekli olarak bilgilendirmeyi ve sürece dahil etmeyi amaçlıyoruz. Bu yol haritası, Bazel'in gelişiminin geleceğine yönelik mevcut girişimleri ve tahminleri açıklayarak size mevcut öncelikler ve devam eden projeler hakkında bilgi verir.

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 birçoğunu sunmayı ve kullanıcılarımızın istediği özellik iyileştirmeleri üzerinde çalışmaya devam etmeyi amaçlıyoruz.

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

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

Bazel ile Android uygulaması derleme

Manifest ve Kaynak Birleştirme, 30.1.3 sürümünde güncellenir. Böylece Android uygulama geliştiricileri, Tools:node="merge" gibi daha yeni manifest birleştirme özelliklerini kullanabilir.

Uzaktan yürütmeyle ilgili iyileştirmeler

Bazel 7.0, eşzamansız yürütme desteği sunar ve flag --jobs ile artan paralellik sayesinde uzaktan yürütmeyi hızlandırır.

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

Bzlmod geçişli bağımlılıkları otomatik olarak çözerek projelerin ölçeklendirilmesini sağlarken hızlı ve kaynak verimliliğinden ödün vermez. Bazel 7.0, Bazel'in harici bağımlılık yönetimi işlevinde aşağıdaki geliştirmeleri içerir:

  • Bzlmod, Bazel'de harici bağımlılık yönetimi için varsayılan olarak etkin durumdadır
  • 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ıklara sahip derlemeleri çalıştırmasına olanak tanır
  • Tam kod deposu önbellek desteği (yalnızca indirme yapıları değil, aynı zamanda son depo içeriğini de önbelleğe alma)
  • Bazel Merkezi Tescil, düzenli topluluk katkılarını ve önemli Bazel kuralları ile projelerinin benimsenmesini içerir

Analiz metrikleri oluşturma

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

Varsayılan olarak Bayt ayarı etkinleştirilmeden derleme

Baytlar olmadan derlemeler, ara yapıların indirilmesini önleyerek ve derlemelerin ağ bant genişliğinde performans göstermesini önleyerek performansı optimize eder. Eklenen özellikler arasında şunlar vardır:

Skymeld ile Verimlilik Oluşturma

Bazel 7.0, çok hedefli derlemelerinizin duvar süresini kısaltan bir değerlendirme modu olan Skymeld'i kullanıma sundu. Skymeld, özellikle birden fazla üst düzey hedefe sahip 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 beklenmiyor.

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'dan ayırmak ve topluluk katkılarını daha iyi etkinleştirmek için Starlark'a taşınıyor. Ayrıca, bu kuralları temel Bazel ikili programından bağımsız hale getirerek daha sık sürüm yayınlamamıza olanak sağladık.
  • Android kurallarının Starlark'a taşınması
  • R8 desteği: Android uygulama geliştiricilerinin, güncellenmiş R8 optimizasyonlarını kullanmasına izin verir.
  • Mobil Yükleme: Android uygulama geliştiricilerinin güncellenmiş bir Mobil Yükleme sürümü üzerinden Android uygulaması değişikliklerini hızlı bir şekilde geliştirmesine, test etmesine ve dağıtmasına olanak tanır.

Yazılım Malzeme Listesi veri oluşturma (SBOM'ler) ve OSS lisansı uygunluk araçları

Geliştiriciler, Bazel'i kullanarak SBOM'ler oluşturulmasına yardımcı olacak veriler oluşturabilir. Bu veriler metin veya JSON biçiminde verilir ve SPDX veya CycloneDX spesifikasyonlarını karşılayacak şekilde kolayca biçimlendirilebilir. Ayrıca süreç, Bazel modüllerinin kullanıma sunulduğu lisansları bildirmek için kurallar ve bu beyanlar etrafında süreçler oluşturmak için araçlar sağlar. GitHub'da devam etmekte olan rules_Lisans uygulamasını inceleyin.

İmzalanmış derlemeler

Bazel, Windows ve Mac için Google anahtarlarıyla imzalanmış güvenilir ikili programlar sağlar. Bu özellik, birden çok platforma sahip geliştiricilerin/geliştirici işlemlerinin Bazel ikili programlarının kaynağını belirlemesini ve sistemlerini potansiyel olarak 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ümelerinin Starlark'a taşınmasını tamamlayın. Bu çaba, Bazel kullanıcılarının Bazel ikili kod tabanı yerine yalnızca kural kümelerini çatallamasına olanak tanır.

  • Kuralları gerektiği gibi güncelleyin ve özelleştirin
  • Kuralları Bazel'den bağımsız olarak güncelleme

Bazel-JetBrains* IntelliJ IDEA desteği

En yeni JetBrains eklentisi sürümünü destekleyen artımlı IntelliJ eklenti güncellemeleri.

Bu yol haritası, hedefleri gösterir ve garanti olarak kabul edilmemelidir. Öncelikler, geliştirici ve müşteri 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 ö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