Ini adalah panduan bagi para pengelola proyek open source Bazel.
Jika Anda ingin berkontribusi pada Bazel, baca Berkontribusi pada Bazel.
Tujuan halaman ini adalah untuk:
- Berperan sebagai pengelola sumber tepercaya untuk kontribusi proyek {i>checkout<i}.
- Menetapkan ekspektasi antara kontributor komunitas dan proyek para pengelola.
Grup kontributor inti Bazel telah berdedikasi sub tim untuk mengelola aspek-aspek proyek {i>open source<i}. Karakter pengganti ini meliputi:
- Proses Rilis: Mengelola proses rilis Bazel.
- Green Team: Tumbuhkan ekosistem aturan dan alat yang sehat.
- Penjaga Pengalaman Developer: Mendorong kontribusi eksternal, meninjau masalah dan permintaan pull, serta membuat alur kerja pengembangan kami lebih terbuka.
Rilis
Continuous Integration
Baca panduan tim Green tentang infrastruktur CI Bazel di bazelbuild/continuous-integration repositori resource.
Siklus Proses Masalah
- Pengguna membuat masalah menggunakan Masalah Template dan memasuki kelompok belum ditinjau .
- Anggota dalam rotasi subtim Developer Experience (DevEx) akan meninjau
masalah tersebut.
- Jika masalahnya bukan bug atau permintaan fitur, anggota DevEx biasanya akan menutup masalah dan mengalihkan pengguna ke StackOverflow dan bazel-discuss untuk tingkat visibilitas yang lebih tinggi untuk pertanyaan tersebut.
- Jika masalah berada di salah satu repositori aturan yang dimiliki oleh komunitas, seperti rules_apple, anggota DevEx akan mentransfer masalah ini ke repositori yang benar.
- Jika masalahnya tidak jelas atau informasinya tidak lengkap, anggota DevEx akan tugaskan kembali masalah tersebut kepada pengguna untuk meminta informasi lebih lanjut sebelum melanjutkan. Hal ini biasanya terjadi jika pengguna tidak mengikuti Masalah Template.
- Setelah meninjau masalah, anggota DevEx memutuskan apakah masalah itu memerlukan segera mendapatkan perhatian. Jika ya, mereka akan menetapkan P0 label priority dan pemilik dari daftar pemimpin tim.
- Anggota DevEx menetapkan label
untriaged
dan tepat satu tim label untuk pemilihan rute. - Anggota DevEx juga menetapkan tepat satu label
type:
, sepertitype: bug
atautype: feature request
, sesuai dengan jenis masalahnya. - Untuk masalah khusus platform, anggota DevEx menetapkan satu label
platform:
, sepertiplatform:apple
untuk masalah khusus Mac. Pada tahap ini, masalah akan masuk ke kumpulan masalah terbuka yang belum diprioritaskan.
Setiap subtim Bazel akan melakukan triage semua masalah berdasarkan label yang mereka miliki, sebaiknya setiap minggu. Sub tim akan meninjau dan mengevaluasi masalah dan memberikan resolusi video, jika memungkinkan. Jika Anda adalah pemilik label tim, lihat bagian ini untuk mengetahui informasi selengkapnya.
Setelah teratasi, masalah dapat ditutup.
Siklus Proses Permintaan Pull
- Pengguna membuat permintaan pull.
- Jika Anda adalah anggota tim Bazel dan mengirim PR terhadap wilayah Anda sendiri, Anda bertanggung jawab untuk menetapkan label tim Anda dan menemukan menjadi peninjau sejawat yang efektif
- Jika tidak, selama triage harian, anggota DevEx akan menetapkan satu
label tim dan technical lead (TL) tim untuk pemilihan rute.
- TL dapat secara opsional menugaskan orang lain untuk meninjau PR.
- Peninjau yang ditugaskan akan meninjau PR dan bekerja sama dengan penulis hingga disetujui atau dibatalkan.
- Jika disetujui, peninjau akan mengimpor commit PR ke sistem kontrol versi internal Google untuk pengujian lebih lanjut. Karena Bazel memiliki bentuk yang sama yang digunakan secara internal di Google, kami perlu menguji semua komitmen Humas terhadap rangkaian pengujian internal. Inilah alasan mengapa kami tidak menggabungkan PR secara langsung.
- Jika commit yang diimpor lulus semua pengujian internal, commit akan digabungkan dan diekspor kembali ke GitHub.
- Saat commit digabungkan ke master, GitHub akan otomatis menutup PR.
Tim saya memiliki label. Apa yang harus saya lakukan?
Subtim perlu melakukan triage semua masalah dalam label yang mereka miliki, sebaiknya setiap minggu.
Masalah
- Filter daftar masalah menurut label tim Anda dan label
untriaged
. - Tinjau masalahnya.
- Identifikasi tingkat prioritas dan tetapkan label.
- Masalah mungkin telah diprioritaskan oleh subtim DevEx jika merupakan P0. Prioritaskan ulang jika perlu.
- Setiap masalah harus memiliki tepat satu label prioritas. Jika masalah adalah P0 atau P1 yang kami asumsikan sudah dikerjakan secara aktif.
- Hapus label
untriaged
.
Perhatikan bahwa Anda harus berada di bazelbuild organisasi agar dapat menambahkan atau menghapus label.
Permintaan Pull
- Filter daftar permintaan pull berdasarkan label tim Anda.
- Meninjau permintaan pull terbuka.
- Opsional: Jika Anda ditugaskan untuk ditinjau, tetapi tidak cocok untuk ditinjau tugas itu, menunjuk kembali peninjau yang sesuai untuk melakukan peninjauan kode.
- Bekerja sama dengan pembuat permintaan pull untuk menyelesaikan peninjauan kode.
- Menyetujui Humas.
- Pastikan semua pengujian lulus.
- Mengimpor patch ke sistem kontrol versi internal dan menjalankan pra-pengiriman.
- Kirim patch internal. Jika patch berhasil dikirim dan diekspor, PR akan otomatis ditutup oleh GitHub.
Prioritas
Definisi prioritas berikut akan digunakan oleh pengelola untuk melakukan pemilahan masalah.
- P0 - Fungsi utama yang rusak yang menyebabkan rilis Bazel (minus kandidat rilis) tidak dapat digunakan, atau layanan yang mati yang sangat memengaruhi pengembangan project Bazel. Hal ini mencakup regresi yang diperkenalkan dalam rilis baru yang memblokir jumlah pengguna yang signifikan, atau perubahan yang dapat menyebabkan gangguan tidak kompatibel yang tidak mematuhi kebijakan Terbaru Ubah lebih lanjut. Tidak ada solusi praktis.
- P1 - Cacat atau fitur penting yang harus ditangani dalam rilis berikutnya, atau masalah serius yang memengaruhi banyak pengguna (termasuk pengembangan project Bazel), tetapi ada solusi praktis. Biasanya tidak memerlukan tindakan segera. Memiliki permintaan tinggi dan direncanakan dalam roadmap kuartal saat ini.
- P2 - Cacat atau fitur yang harus ditangani, tetapi saat ini kami tidak mengerjakannya. Masalah aktif sedang dalam versi Bazel yang dirilis yang tidak nyaman bagi pengguna yang perlu ditangani dalam rilis mendatang dan/atau ada solusi mudah.
- P3 - Perbaikan bug minor yang diinginkan atau peningkatan dengan dampak kecil. Tidak diprioritaskan dalam roadmap Bazel atau rilis yang akan datang, namun kontribusi komunitas sangat dianjurkan.
- P4 - Permintaan fitur atau kerusakan prioritas rendah yang tidak mungkin ditutup. Juga dapat tetap terbuka untuk potensi penetapan prioritas ulang jika lebih banyak pengguna terpengaruh.
- kotak es
- Masalah yang saat ini tidak dapat kami tangani atau waktu untuk menerima kontribusi. Kami akan menutup masalah ini untuk menunjukkan bahwa tidak ada yang mengerjakannya, tetapi akan terus memantau validitasnya selama waktu dan menghidupkannya kembali jika ada cukup banyak orang yang terdampak dan jika kita memiliki sumber daya untuk menanganinya. Seperti biasa, jangan ragu untuk mengomentari atau menambahkan reaksi terhadap masalah ini bahkan jika sudah ditutup.
Label tim
team-Android
: Masalah untuk tim Android- Kontak: ahumesky
team-Bazel
: Masalah produk/strategi Bazel umum- Kontak: sventiffe
team-Build-Language
: Masalah untuk BUILD, .bzl API, dan Stardoc.- Kontak: brandjon
team-Configurability
: Masalah untuk tim Konfigurasi- Kontak: gregestren
team-Core
: Masalah untuk tim Core- Kontak: haxorz
team-Documentation
: Masalah untuk tim Dokumentasi- Kontak: communikit
team-ExternalDeps
: Penanganan dependensi eksternal, Bzlmod, repositori jarak jauh, file WORKSPACE- Kontak: meteorcloudy
team-Local-Exec
: Masalah untuk tim Eksekusi (Lokal)- Kontak: meisterT
team-OSS
: Masalah untuk tim Bazel OSS: penginstalan, proses rilis, pengemasan Bazel, situs, infrastruktur dokumen- Kontak: meteorcloudy
team-Performance
: Masalah untuk tim Performa Bazel- Kontak: meisterT
team-Remote-Exec
: Masalah untuk tim Eksekusi (Jarak Jauh)- Kontak: coeuvre
team-Rules-CPP
: Masalah untuk aturan C++, termasuk logika aturan Apple native- Kontak: oquenchil
team-Rules-Java
: Masalah untuk aturan Java- Kontak: comius
team-Rules-Python
: Masalah untuk aturan Python native- Kontak: comius
team-Rules-Server
: Masalah untuk aturan sisi server yang disertakan dengan Bazel- Kontak: comius
team-Starlark-integration
: Integrasi Bazel + Starlark non-API. Mencakup: cara Bazel memicu penafsir Starlark, Stardoc, injeksi bawaan, encoding karakter. Tidak mencakup: masalah bahasa BUILD atau .bzl.- Kontak: brandjon
team-Starlark-interpreter
: Masalah untuk penafsir Starlark (apa pun di java.net.starlark). Masalah BUILD dan .bzl API (yang mewakili integrasi Bazel dengan Starlark) berada diteam-Build-Language
.- Kontak: brandjon
Untuk masalah baru, kami tidak lagi menggunakan label category: *
dan menggantinya dengan label tim.
Lihat daftar lengkap label di sini.