Son doğrulama: 21.04.2020 (güncelleme geçmişi)
İlgili kişi: laurentlb
Hedef
Amacımız, Bazel'i daha genişletilebilir hale getirmektir. Kullanıcılar kendi kurallarını kolayca uygulayabilmeli, yeni dilleri ve araçları destekleyebilmelidir. Bu kuralları yazma ve sürdürme deneyimini iyileştirmek istiyoruz.
Odaklandığımız iki alan vardır:
- Dili ve API'yi basit ancak güçlü hale getirin.
- Kodu okuma, yazma, güncelleme, hata ayıklama ve test etme için daha iyi araçlar sunma
2020 2. Çeyrek
Sağlıklı bir topluluk oluşturma ve en iyi uygulamalar:
- P0. Adı olmayan makroları engeller ve adın benzersiz bir dize değişmezi olmasını sağlar. Bu çalışma Google kod tabanına odaklanmıştır ancak herkese açık olarak sunulan araçları etkileyebilir.
- P0. Buildozer komutlarını seçimler ve değişkenler açısından güvenilir hale getirin.
- P1. Buildifier'ın, yorumlar nedeniyle sıralamadığımız listelerdeki yinelenenleri kaldırmasını sağlayın.
- P1. Buildifier linter'ı, basit ifadelerin satır içi olarak eklenmesini önerecek şekilde güncelleyin.
- P2. native.existing_rules için kullanım alanlarını inceleyin ve alternatifler önerin.
- P2. Başlangıç dosyasıyla ilgili kullanım alanlarını inceleyin ve alternatifler önerin.
Performans:
- P1. Düz ortamlar ve bayt kodu derlemesi kullanarak Starlark yorumlayıcısını optimize edin.
Teknik borç azaltma:
- P0. @bazel_tools altında yerel sembolleri Starlark'a taşıma özelliği eklendi.
- P1. Eskimiş işaretleri silin (bazıları Google'da hâlâ kullanılıyor. Bu nedenle, ö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. - P1. Aşağıdaki işaretlerin Bazel 4.0'da değiştirilebildiğinden emin olun:
incompatible_disable_depset_items,incompatible_no_implicit_file_export,incompatible_run_shell_command_string,incompatible_restrict_string_escapes. - P1. lib.syntax çalışmasını tamamlayın (API temizleme, Bazel'den ayırma).
- P2. Bazel'in Java paketlerinde yapılan önemsiz bir düzenlemenin derleme ve test gecikmesini% 50 azaltır.
Topluluk:
rules_pythonetkin ve topluluk tarafından iyi bir şekilde yönetiliyor.- rules_jvm_external için sürekli destek (bekleyen çekme isteği yok, sorun önceliklendirmesi, yayın oluşturma).
- Bazel doküman altyapısını koruma: CSS stillerini bazel-website, bazel-blog ve dokümanlar arasında merkezileştirme ve kanonikleştirme
- Bazel dokümanları: Regresyonları önlemek için uçtan uca doküman sitesi derlemesiyle ilgili CI testleri ekleyin.
2020 1. Çeyrek
Sağlıklı bir topluluk oluşturma ve en iyi uygulamalar:
- Hedeflerin,
bazel queryüzerinden dışa aktarmak için makro çağrı yığınlarını izlemesine izin verin. --incompatible_no_implicit_file_exportuygulayın- Desteği sonlandırılan depset API'lerini kaldırın (#5817, #10313, #9017).
- Buildifier'a dosyalar arası analiz aracı ekleyin, kullanımdan kaldırılan işlevler için kontrol uygulayın.
Performans:
- Bazel'in kendi Java tabanlı testlerini 2 kat daha hızlı hale getirme
- Starlark CPU profili oluşturucuyu uygulama.
Teknik borç azaltma:
- 8 uyumsuz işareti kaldırın (çevirdikten sonra).
- lib.syntax temizleme çalışmasını tamamlayın (bağımlılıkları kaldırın).
- Starlark optimizasyonu: düz ortam, bayt kodu derlemesi
- Mümkünse analiz aşamasındaki tüm serileştirmeyi silin.
- lib.packages'ı basitleştirme/optimize etme planı yapın
Topluluk:
- Bazel'e özgü tüm terimlerin tanımlarını içeren bir Sözlük yayınlayın.