Son doğrulama tarihi: 21.04.2020 (güncelleme geçmişi)
İlgili kişi: laurentlb
Hedef
Amacımız Bazel'i daha genişletilebilir hale getirmek. Kullanıcılar kendi kurallarını kolayca uygulayabilmeli, yeni diller ve araçları destekleyebilmelidir. Bu kuralları yazma ve sürdürme deneyimini iyileştirmek istiyoruz.
İki alana odaklanıyoruz:
- Dili ve API'yi basit ama güçlü hale getirin.
- Kodu okuma, yazma, güncelleme, hata ayıklama ve test etme için daha iyi araçlar sağlayın.
Ç2 2020
Derleme düzeyi ve en iyi uygulamalar:
- S0. Makroların adı olmayan makrolardan kaçının ve adın benzersiz bir dize değişmez değeri olduğundan emin olun. Bu çalışma, Google kod tabanına odaklanmaktadır ancak herkese açık araçları etkileyebilir.
- S0. Buildozer komutlarını seçimler ve değişkenler açısından güvenilir hale getirin.
- S1. Güncelleyicinin, yorumlar nedeniyle sıralamadığımız listelerdeki kopyaları kaldırmasını sağlayın.
- S1. Önemsiz ifadeleri satır içine almayı önermek için Büyüteç linter'ını güncelleyin.
- P2. yerel.mevcut_rule öğelerinin kullanım alanlarını inceleyip alternatifler önerin.
- P2. Başlangıç dosyası için kullanım alanlarını araştırmak ve alternatifler önermek.
Performans:
- S1. Düz ortamlar ve bayt kodu derlemesi kullanarak Starlark yorumlayıcısını optimize edin.
Teknik borç azaltma:
- S0. @bazel_tools altında yerel simgeleri Starlark'a taşıma özelliği ekleyin.
- S1. Eski işaretleri silin (bazıları hâlâ Google'da kullanıldığı için önce kod tabanını temizlememiz gerekir):
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 çevirildiğinden emin olun:
incompatible_disable_depset_items
,incompatible_no_implicit_file_export
,incompatible_run_shell_command_string
,incompatible_restrict_string_escapes
. - S1. lib.syntax işlemini tamamlayın (API temizleme, Bazel'den ayırma).
- P2. Bazel'in Java paketlerinde yapılan önemsiz bir düzenlemenin derleme+test gecikmesini% 50 oranında azaltın.
Topluluk:
rules_python
etkin bir topluluktur ve topluluk tarafından iyi bir şekilde yönetilir.- rules_jvm_external için sürekli destek (beklenmedik çekme isteği, sorun önceliklendirme, sürüm oluşturma yok).
- Bazel belge altyapısını koruyun: Bazel web sitesi, bazel-blog ve dokümanlarda CSS stillerini merkezileştirin ve standartlaştırın
- Bazel belgeleri: Regresyonları önlemek üzere e2e doküman sitesi derlemesi için CI testleri ekleyin.
2020 1. Çeyrek
Derleme düzeyi ve en iyi uygulamalar:
- Hedeflerin,
bazel query
üzerinden dışa aktarmak için makro çağrı yığınlarını izlemesine izin ver --incompatible_no_implicit_file_export
uygulayın- Kullanımdan kaldırılan depset API'lerini (#5817, #10313, #9017) kaldırın.
- Buzerfier'a bir çapraz dosya analiz aracı ekleyin, kullanımdan kaldırılan işlevler için bir kontrol uygulayın.
Performans:
- Bazel'ın kendi Java tabanlı testlerini 2 kat hızlandırın.
- Bir Starlark CPU profil aracı uygulayın.
Teknik borç azaltma:
- Uyumsuz 8 işareti kaldırın (kapattıktan sonra).
- lib.syntax temizleme işlemini tamamlayın (bağımlılıkları kaldırın).
- Starlark optimizasyonu: düz ortam, bayt kodu derlemesi
- Mümkünse analiz aşamasından tüm serileştirmeyi silin
- lib.packages'i basitleştirmek/optimize etmek için bir plan yapma
Topluluk:
- Bazel'e özgü tüm terimlerin tanımlarını içeren bir Sözlük yayınlayın