Son doğrulama tarihi: 21.04.2020 (güncelleme geçmişi)
İlgili kişi: laurentlb
Hedef
Hedefimiz Bazel'ı daha genişletilebilir hale getirmek. Kullanıcılar kendi kurallarını kolayca uygulayabilmeli, ve yeni dilleri ve araçları destekleyebilmelidir. Bu kuralları yazma ve koruma deneyimini iyileştirmek istiyoruz.
İki alana odaklanıyoruz:
- Dili ve API'yi basit ama güçlü hale getirin.
- Kod okuma, yazma, güncelleme, hata ayıklama ve test etme için daha iyi araçlar sağlayın.
2020 2. Çeyrek
Sağlık uygulamaları ve en iyi uygulamalar oluşturma:
- S0. İsimsiz makrolardan kaçının ve adın benzersiz bir dize dizesi olduğundan emin olun. Bu çalışma, Google'ın kod tabanına odaklanmıştır ancak herkese açık araçları etkileyebilir.
- S0. Seçimler ve değişkenler ile Buildozer komutlarını güvenilir hale getirin.
- S1. Listeler sekmesinde, yorumlar nedeniyle sıralamadığımız sıralamalardaki yinelenen öğeleri kaldırın.
- S1. Kısaltma içeren ifadeleri satır içine almayı önermek için Haftalık reklamı ikinci kez güncelleyin.
- S2. local.mevcut_rule özelliğinin kullanım alanlarını inceleyin ve alternatifler önerin.
- S2. Başlangıç dosyası için kullanım alanlarını inceleyin ve alternatifler önerin.
Performans:
- S1. Düz ortamları ve bayt kodu derlemesini kullanarak Starlark çevirmenini optimize edin.
Teknik borcu azaltma:
- S0. Yerel sembolleri @bazel_tools altındaki Starlark'a taşıma özelliği ekleyin.
- S1. Eski işaretleri silin (bazıları hâlâ Google'da kullanıldığından önce
kod tabanını temizlememiz gerekiyor):
incompatible_always_check_depset_elements
,incompatible_disable_deprecated_attr_params
,incompatible_no_support_tools_in_action_inputs
,incompatible_new_actions_api
. - S1. Bazel 4.0'da şu işaretlerin değiştirilebileceğinden emin olun:
incompatible_disable_depset_items
,incompatible_no_implicit_file_export
,incompatible_run_shell_command_string
,incompatible_restrict_string_escapes
. - S1. lib.syntax çalışmasını tamamlayın (API temizliği, Bazel'dan ayırma).
- S2. Bazel'ın Java paketlerinde yapılan önemli bir düzenlemenin derleme+test gecikmesini% 50 azaltın.
Topluluk:
rules_python
etkin ve topluluk tarafından iyi korunuyor.- rules_jvm_external için sürekli destek (bekleyen pull istekleri, sorun önceliği belirleme, sürüm oluşturma) yoktur.
- Bazel doküman altyapısını koruyun: bazel-website, bazel-blog ve dokümanlarda CSS stillerini merkezi hale getirin ve standartlaştırın
- Bazel dokümanlar: Regresyonları önlemek üzere e2e dokümanlar için site oluşturma CI testleri ekleyin.
2020 1. Çeyrek
Sağlık uygulamaları ve en iyi uygulamalar oluşturma:
bazel query
üzerinden dışa aktarma için hedeflerin makro çağrı yığınlarını izlemesine izin ver--incompatible_no_implicit_file_export
uygulayın- Kullanımdan kaldırılan API'leri kaldırın (#5817, #10313, #9017).
- Toplu İşlem Aracı'nda çapraz dosya analizcisi ekleyin ve kullanımdan kaldırılan işlevler için kontrol uygulayın.
Performans:
- Bazel'ın kendi Java tabanlı testlerini 2 kat daha hızlı yapın.
- Starlark CPU profil aracı uygula.
Teknik borcu azaltma:
- Uyumsuz 8 işareti kaldırın (döndürdükten sonra).
- lib.syntax temizleme işlemini tamamlayın (bağımsızlıkları kaldırın).
- Starlark optimizasyonu: düz ortam, bayt kodu derleme
- Mümkünse analiz aşamasından tüm serileştirmeyi silin
- lib.packages'i basitleştirmek/optimize etmek için bir plan yapın
Topluluk:
- Bazel'a özgü tüm terimlerin tanımlarını içeren bir sözlük yayınlama