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 ve 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 ama güçlü hale getirin.
- Kodu okuma, yazma, güncelleme, hata ayıklama ve test etme için daha iyi araçlar sunma.
2. Çeyrek 2020
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. Prelüd 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 basit bir düzenlemenin derleme ve test gecikmesini% 50 azaltın.
Topluluk:
rules_pythonetkin ve topluluk tarafından iyi bir şekilde yönetiliyor.- rules_jvm_external için sürekli destek (bekleyen çekme istekleri yok, sorun triyajı, yayın oluşturma).
- Bazel doküman altyapısını koruma: CSS stillerini bazel-website, bazel-blog ve docs'ta 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 getirin.
- Starlark CPU profili oluşturucuyu uygulayın.
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.