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. Sağlanan yol haritasının derleme aracı ihtiyaçlarınız konusunda size bilgi verdiğini 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 Kaynak Birleştirme, 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, düzenli topluluk katkısını ve temel Bazel kurallarının projeler
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:
Yapılar zamanından önce çıkarıldığında kullanıcıların hatalarla karşılaşmaması için kiralama hizmetiyle önbellekten uzaktan çıkarma desteği
Sembolik bağlantı desteğindeki özellik eksikliklerini giderme
Uzak işlemlerden ara çıkışları alma seçenekleri sunun
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 Alet
Bazel ile Android uygulaması geliştirme
- Android yerel kurallarını Starlark'a taşıyın: Bazel 7.0'da Android kuralları, geliştirmeyi Bazel'den ayırmak ve topluluk katkılarını daha iyi hale getirmek için 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.
Software 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, birden fazla platforma sahip geliştiricilerin/geliştirme operasyonlarının Bazel ikili programlarının kaynağını tespit etmelerini ve sistemlerini potansiyel olarak 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