Starlark Yol Haritası

. Sorun bildirin Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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