Son doğrulama: 21.04.2020 (güncelleme geçmişi)
İletişim noktası: laurentlb
Hedef
Amacımız, Bazel'i daha genişletilebilir hale getirmektir. Kullanıcılar, ve yeni dil ve araçları destekleyebilirler. Şunları istiyoruz: bu kuralları yazma ve sürdürme deneyimini iyileştirebilir.
İki alana odaklanıyoruz:
- Dili ve API'yi basit ancak güçlü hale getirin.
- Kodu okuma, yazma, güncelleme, hata ayıklama ve test etme işlemleri için daha iyi araçlar sağlar.
2020 2. Çeyrek
Derleme durumu ve en iyi uygulamalar:
- S0. Adı olmayan makroları kullanma ve adın benzersiz olduğundan emin olun dize değişmez. Bu çalışma Google kod tabanına odaklanmaktadır ancak herkesin kullanımına açık olacak.
- S0. Buildozer komutlarını seçimler ve değişkenler açısından güvenilir hale getirin.
- S1. Derleyici'nin, sıralayamadığımız listelerdeki kopyaları kaldırmasını sağlayın yorum.
- S1. Basit ifadeleri satır içine almayı önermek için derleyici linter'ını güncelleyin.
- S2. Native.existing_rules için kullanım alanlarını inceleyip alternatifler önerin.
- S2. Başlangıç dosyasının kullanım alanlarını inceleyip alternatifler önermek.
Performans:
- S1. Düz ortamlar ve bayt kodu kullanarak Starlark yorumlayıcısını optimize etme derlememiz var.
Teknik borç azaltma:
- S0. @bazel_tools'ın altında yerel sembolleri 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ı temizleyin):
incompatible_always_check_depset_elements
,incompatible_disable_deprecated_attr_params
,incompatible_no_support_tools_in_action_inputs
,incompatible_new_actions_api
. - S1. 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
. - S1. lib.syntax çalışmasını tamamlayın (API temizleme, Bazel'den ayırma).
- S2. Bazel'in Java paketlerinde yapılan küçük 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 isteği yok, sorun önceliklendirme, yayın yapma).
- Bazel dokümantasyon altyapısını koruma: CSS'yi merkezileştirme ve standartlaştırma bazel-web sitesi, bazel-blog, dokümanlar genelinde stiller
- Bazel belgeleri: Regresyonları önlemek amacıyla e2e doküman sitesi derlemesine CI testleri ekleyin.
2020 1. Çeyrek
Derleme durumu ve en iyi uygulamalar:
- Hedeflerin,
bazel query
aracılığıyla dışa aktarmak için makro çağrı yığınlarını izlemesine izin verin --incompatible_no_implicit_file_export
uygulayın- Kullanımdan kaldırılan API'leri kaldırın (#5817, #10313, #9017).
- Buildifier'a çapraz dosya analizcisi ekleyin, kullanımdan kaldırılmış olup olmadığına dair bir kontrol uygulayın işlevlerine dahildir.
Performans:
- Bazel'in kendi Java tabanlı testlerini 2 kat hızlandırın.
- Starlark CPU profil aracı uygulayın.
Teknik borç azaltma:
- 8 uyumsuz işareti kaldırın (bunları çevirdikten sonra).
- lib.syntax temizleme işini bitirin (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ştirmeleri silin
- lib.package'ları basitleştirmek/optimize etmek için bir plan yapın
Topluluk:
- Bazel'e özgü tüm terimlerin tanımlarını içeren bir Sözlük yayınlayın