Starlark Yol Haritası

Sorun bildirin Kaynağı göster

Son doğrulama tarihi: 21.04.2020 (güncelleme geçmişi)

İlgili kişi: laurentlb

Hedef

Hedefimiz Bazel'ı daha genişletilebilir hale getirmek. Kullanıcılar kendi kurallarını kolayca uygulayabilmeli, ve yeni dilleri ve araçları destekleyebilmelidir. Bu kuralları yazma ve koruma deneyimini iyileştirmek istiyoruz.

İki alana odaklanıyoruz:

  • Dili ve API'yi basit ama güçlü hale getirin.
  • Kod okuma, yazma, güncelleme, hata ayıklama ve test etme için daha iyi araçlar sağlayın.

2020 2. Çeyrek

Sağlık uygulamaları ve en iyi uygulamalar oluşturma:

  • S0. İsimsiz makrolardan kaçının ve adın benzersiz bir dize dizesi olduğundan emin olun. Bu çalışma, Google'ın kod tabanına odaklanmıştır ancak herkese açık araçları etkileyebilir.
  • S0. Seçimler ve değişkenler ile Buildozer komutlarını güvenilir hale getirin.
  • S1. Listeler sekmesinde, yorumlar nedeniyle sıralamadığımız sıralamalardaki yinelenen öğeleri kaldırın.
  • S1. Kısaltma içeren ifadeleri satır içine almayı önermek için Haftalık reklamı ikinci kez güncelleyin.
  • S2. local.mevcut_rule özelliğinin kullanım alanlarını inceleyin ve alternatifler önerin.
  • S2. Başlangıç dosyası için kullanım alanlarını inceleyin ve alternatifler önerin.

Performans:

  • S1. Düz ortamları ve bayt kodu derlemesini kullanarak Starlark çevirmenini optimize edin.

Teknik borcu azaltma:

  • S0. Yerel sembolleri @bazel_tools altındaki 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ı temizlememiz gerekiyor): 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 değiştirilebileceğ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 temizliği, Bazel'dan ayırma).
  • S2. Bazel'ın Java paketlerinde yapılan önemli 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 istekleri, sorun önceliği belirleme, sürüm oluşturma) yoktur.
  • Bazel doküman altyapısını koruyun: bazel-website, bazel-blog ve dokümanlarda CSS stillerini merkezi hale getirin ve standartlaştırın
  • Bazel dokümanlar: Regresyonları önlemek üzere e2e dokümanlar için site oluşturma CI testleri ekleyin.

2020 1. Çeyrek

Sağlık uygulamaları ve en iyi uygulamalar oluşturma:

  • bazel query üzerinden dışa aktarma için hedeflerin makro çağrı yığınlarını izlemesine izin ver
  • --incompatible_no_implicit_file_export uygulayın
  • Kullanımdan kaldırılan API'leri kaldırın (#5817, #10313, #9017).
  • Toplu İşlem Aracı'nda çapraz dosya analizcisi ekleyin ve kullanımdan kaldırılan işlevler için kontrol uygulayın.

Performans:

  • Bazel'ın kendi Java tabanlı testlerini 2 kat daha hızlı yapın.
  • Starlark CPU profil aracı uygula.

Teknik borcu azaltma:

  • Uyumsuz 8 işareti kaldırın (döndürdükten sonra).
  • lib.syntax temizleme işlemini tamamlayın (bağımsızlıkları kaldırın).
  • Starlark optimizasyonu: düz ortam, bayt kodu derleme
  • Mümkünse analiz aşamasından tüm serileştirmeyi silin
  • lib.packages'i basitleştirmek/optimize etmek için bir plan yapın

Topluluk:

  • Bazel'a özgü tüm terimlerin tanımlarını içeren bir sözlük yayınlama