Son doğrulama tarihi: 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.
İki alana odaklanıyoruz:
- Dili ve API'yi basit ancak güçlü hale getirin.
- Kodu okumak, yazmak, güncellemek, hata ayıklamak ve test etmek için daha iyi araçlar sunar.
2020 2. Çeyrek
Sağlıklı bir yapı oluşturma ve en iyi uygulamalar:
- P0. Adsız makrolardan kaçının ve adların benzersiz dize değişmezleri olduğundan emin olun. Bu çalışma Google kod tabanına odaklansa da 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'ı, önemsiz ifadeleri satır içi olarak yerleştirmeyi önerecek şekilde güncelleyin.
- P2. native.existing_rules için kullanım alanlarını inceleyin ve alternatifler önerin.
- P2. Giriş dosyası için 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. Yerel sembolleri @bazel_tools altında Starlark'a taşıma özelliğini ekleyin.
- P1. Eski işaretleri silin (bazı işaretler Google'da hâlâ kullanıldığı için önce kod tabanını temizlememiz gerekir):
incompatible_always_check_depset_elements
,incompatible_disable_deprecated_attr_params
,incompatible_no_support_tools_in_action_inputs
,incompatible_new_actions_api
. - P1. Bazel 4.0'ta aşağıdaki işaretlerin 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 temizliği, Bazel'den ayrılma).
- P2. Bazel'in Java paketlerinde yapılan basit bir düzenlemenin derleme ve test gecikmesini% 50 azaltın.
Topluluk:
rules_python
etkin ve topluluk tarafından iyi yönetiliyor.- rules_jvm_external için sürekli destek (beklemedeki pull isteği yok, sorun öncelikleri belirlenmiyor, sürüm yayınlama yapılmıyor).
- Bazel doküman altyapısını sürdürme: bazel-website, bazel-blog ve dokümanlar genelinde CSS stillerini merkezileştirip standart hale getirme
- Bazel dokümanları: Geriye gidişleri önlemek için e2e doküman sitesi derlemesi için CI testleri ekleyin.
2020 1. Çeyrek
Sağlıklı bir yapı oluşturma ve en iyi uygulamalar:
- Hedeflerin,
bazel query
üzerinden dışa aktarma işlemi için makro çağrı yığınlarını izlemelerine izin verme --incompatible_no_implicit_file_export
uygulayın- Desteği sonlandırılan depset API'lerini (#5817, #10313, #9017) kaldırın.
- Buildifier'a dosyalar arası bir analizör ekleyin, desteği sonlandırılan işlevler için bir kontrol uygulayın.
Performans:
- Bazel'in kendi Java tabanlı testlerini 2 kat daha hızlı hale getirin.
- Starlark CPU profil aracını uygulayın.
Teknik borç azaltma:
- 8 uyumlu olmayan işareti kaldırın (döndürdükten sonra).
- lib.syntax temizleme çalışmasını tamamlayın (bağımlılıklara son verin).
- Starlark optimizasyonu: düz ortam, bayt kodu derleme
- Mümkünse analiz aşamasından tüm serileştirmeleri silin.
- lib.packages'i basitleştirme/optimize etme planı oluşturun
Topluluk:
- Bazel'e özgü tüm terimlerin tanımlarını içeren bir sözlük yayınlayın