Terakhir diverifikasi: 21-04-2020 (histori pembaruan)
Kontak: laurentlb
Sasaran
Tujuan kami adalah membuat Bazel lebih mudah diperluas. Pengguna harus dapat menerapkan aturan mereka sendiri dengan mudah, serta mendukung bahasa dan alat baru. Kami ingin meningkatkan kualitas pengalaman menulis dan mengelola aturan tersebut.
Kami berfokus pada dua area:
- Buat bahasa dan API yang sederhana, tetapi canggih.
- Menyediakan alat yang lebih baik untuk membaca, menulis, memperbarui, men-debug, dan menguji kode.
Kuartal 2 2020
Membangun kesehatan dan Praktik terbaik:
- P0. Jangan gunakan makro tanpa nama, dan pastikan nama tersebut adalah literal string yang unik. Pekerjaan ini berfokus pada codebase Google, tetapi dapat memengaruhi alat yang tersedia secara publik.
- P0. Membuat perintah Buildozer menjadi andal terkait pilihan dan variabel.
- P1. Membuat Buildifier menghapus duplikat dalam daftar yang tidak kita urutkan karena komentar.
- P1. Memperbarui linter Buildifier untuk merekomendasikan penyisipan ekspresi sepele.
- P2. Pelajari kasus penggunaan untuk native.existing_rules dan usulkan alternatif.
- P2. Pelajari kasus penggunaan untuk file pembuka dan usulkan alternatif.
Performa
- P1. Mengoptimalkan interpreter Starlark menggunakan lingkungan datar dan kompilasi bytecode.
Pengurangan beban teknis:
- P0. Menambahkan kemampuan untuk mentransfer simbol native ke Starlark di bawah @bazel_tools.
- P1. Hapus tanda yang sudah tidak digunakan (beberapa di antaranya masih digunakan di Google, jadi kita perlu membersihkan codebase terlebih dahulu):
incompatible_always_check_depset_elements,incompatible_disable_deprecated_attr_params,incompatible_no_support_tools_in_action_inputs,incompatible_new_actions_api. - P1. Pastikan tanda berikut dapat dibalik di Bazel 4.0:
incompatible_disable_depset_items,incompatible_no_implicit_file_export,incompatible_run_shell_command_string,incompatible_restrict_string_escapes. - P1. Selesaikan pekerjaan lib.syntax (pembersihan API, pemisahan dari Bazel).
- P2. Mengurangi latensi build+test sebesar 50% untuk pengeditan sepele pada paket Java Bazel.
Komunitas:
rules_pythonaktif dan dikelola dengan baik oleh komunitas.- Dukungan berkelanjutan untuk rules_jvm_external (tidak ada pull request yang belum diselesaikan, triase masalah, membuat rilis).
- Mengelola infrastruktur dokumentasi Bazel: memusatkan dan mengkanonisasi gaya CSS di bazel-website, bazel-blog, docs
- Dokumen Bazel: menambahkan pengujian CI untuk build situs dokumen e2e guna mencegah regresi.
K1 2020
Membangun kesehatan dan Praktik terbaik:
- Mengizinkan target melacak stack panggilan makro mereka, untuk diekspor melalui
bazel query - Mengimplementasikan
--incompatible_no_implicit_file_export - Menghapus API depset yang tidak digunakan lagi (#5817, #10313, #9017).
- Menambahkan penganalisis lintas file di Buildifier, menerapkan pemeriksaan untuk fungsi yang tidak digunakan lagi.
Performa
- Membuat pengujian berbasis Java Bazel sendiri 2x lebih cepat.
- Menerapkan profiler CPU Starlark.
Pengurangan beban teknis:
- Hapus 8 tanda yang tidak kompatibel (setelah membaliknya).
- Selesaikan pekerjaan pembersihan lib.syntax (putuskan dependensi).
- Pengoptimalan Starlark: lingkungan datar, kompilasi bytecode
- Hapus semua serialisasi dari fase analisis, jika memungkinkan
- Buat rencana untuk menyederhanakan/mengoptimalkan lib.packages
Komunitas:
- Publikasikan Glosarium yang berisi definisi untuk semua istilah khusus Bazel