Ini adalah panduan bagi pengelola project open source Bazel.
Jika Anda ingin memberikan kontribusi kepada Bazel, baca Berkontribusi pada Bazel.
Tujuan halaman ini adalah untuk:
- Berfungsi sebagai sumber kebenaran pengelola untuk proses kontribusi project.
- Tetapkan ekspektasi antara kontributor komunitas dan pengelola project.
Grup kontributor inti Bazel memiliki subtim khusus untuk mengelola berbagai aspek project open source. Di antaranya:
- Proses Rilis: Mengelola proses rilis Bazel.
- Green Team: Menumbuhkan ekosistem aturan dan alat yang sehat.
- Developer Pengalaman Developer: Dorong kontribusi eksternal, tinjau masalah dan permintaan pull, serta buat alur kerja pengembangan kami lebih terbuka.
Rilis
Continuous Integration
Baca panduan tim Green tentang infrastruktur CI Bazel di repositori bazelbuild/continuous-integration.
Siklus Proses Masalah
- Pengguna membuat masalah dengan memilih salah satu template masalah dan memasukkan kumpulan masalah terbuka yang belum ditinjau.
- Seorang anggota di rotasi subtim Developer Experience (DevEx) meninjau
masalah tersebut.
- Jika masalahnya bukan bug atau permintaan fitur, anggota DevEx biasanya akan menutup masalah dan mengalihkan pengguna ke StackOverflow serta bazel-discuss agar visibilitas pertanyaan menjadi lebih tinggi.
- Jika masalah termasuk dalam salah satu repositori aturan yang dimiliki oleh komunitas, seperti rules_apple, anggota DevEx akan mentransfer masalah ini ke repositori yang benar.
- Jika masalah tidak jelas atau memiliki informasi yang tidak lengkap, anggota DevEx akan menetapkan kembali masalah tersebut kepada pengguna untuk meminta informasi lebih lanjut sebelum melanjutkan. Hal ini biasanya terjadi saat pengguna tidak memilih template masalah yang tepat {: .external} atau memberikan informasi yang tidak lengkap.
- Setelah meninjau masalah tersebut, anggota DevEx memutuskan apakah masalah tersebut memerlukan perhatian segera. Jika ya, mereka akan menetapkan label P0 prioritas dan pemilik dari daftar pemimpin tim.
- Anggota DevEx menetapkan label
untriaged
dan satu label tim untuk perutean. - Anggota DevEx juga menetapkan 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. - Jika masalah memiliki prioritas rendah dan dapat ditangani oleh kontributor komunitas
baru, anggota DevEx akan menetapkan label
good first issue
. Pada tahap ini, masalah memasuki kumpulan masalah terbuka yang tidak tertangani.
Setiap subtim Bazel akan memprioritaskan semua masalah berdasarkan label yang mereka miliki, sebaiknya setiap minggu. Subtim akan meninjau dan mengevaluasi masalah serta memberikan resolusi, jika memungkinkan. Jika Anda adalah pemilik label tim, lihat bagian ini untuk mengetahui informasi selengkapnya.
Jika masalah telah diselesaikan, masalah tersebut dapat ditutup.
Siklus Proses Permintaan Pull
- Pengguna membuat permintaan pull.
- Jika Anda anggota tim Bazel dan mengirim Humas di area Anda sendiri, Anda bertanggung jawab untuk menetapkan label tim dan menemukan pengulas terbaik.
- Jika tidak, selama triase harian, anggota DevEx akan menetapkan satu label tim dan pemimpin teknis tim (TL) untuk perutean.
- Secara opsional, TL dapat menunjuk orang lain untuk meninjau PR.
- Peninjau yang ditugaskan akan meninjau konten Humas dan bekerja sama dengan penulis sampai disetujui atau dihapus.
- Jika disetujui, peninjau akan mengimpor commit PR ke sistem kontrol versi internal Google untuk pengujian lebih lanjut. Karena Bazel adalah sistem build yang sama dengan yang digunakan secara internal di Google, kami perlu menguji semua commit PR terhadap rangkaian pengujian internal. Inilah alasan mengapa kami tidak menggabungkan PR secara langsung.
- Jika commit yang diimpor lulus semua pengujian internal, commit akan diciutkan dan diekspor kembali ke GitHub.
- Saat commit bergabung ke master, GitHub otomatis menutup PR.
Tim saya memiliki sebuah label. Apa yang sebaiknya saya lakukan?
Subtim perlu menentukan prioritas 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 itu P0. Prioritaskan ulang jika perlu.
- Setiap masalah harus memiliki tepat satu label prioritas. Jika masalah berupa P0 atau P1, kami asumsikan bahwa masalah tersebut sedang dikerjakan secara aktif.
- Hapus label
untriaged
.
Perhatikan bahwa Anda harus berada di organisasi bazelbuild agar dapat menambahkan atau menghapus label.
Permintaan Pull
- Memfilter daftar permintaan pull menurut label tim Anda.
- Meninjau permintaan pull yang terbuka.
- Opsional: Jika Anda ditetapkan untuk peninjauan, tetapi tidak sesuai untuk itu, tetapkan kembali peninjau yang sesuai untuk melakukan peninjauan kode.
- Bekerja samalah dengan pembuat permintaan pull untuk menyelesaikan peninjauan kode.
- Setujui PR.
- Pastikan semua pengujian lulus.
- Impor patch ke sistem kontrol versi internal dan jalankan pra-pengiriman internal.
- Kirimkan patch internal. Jika patch berhasil dikirim dan diekspor, PR akan ditutup secara otomatis oleh GitHub.
Prioritas
Definisi prioritas berikut akan digunakan oleh pengelola untuk melakukan triase masalah.
- P0 - Fungsi rusak besar yang menyebabkan rilis Bazel (dikurangi kandidat rilis) menjadi tidak dapat digunakan, atau layanan yang dihentikan sehingga sangat memengaruhi pengembangan project Bazel. Hal ini mencakup regresi yang diperkenalkan dalam rilis baru yang memblokir sejumlah besar pengguna, atau perubahan yang dapat menyebabkan gangguan dan tidak kompatibel yang tidak mematuhi kebijakan Perubahan yang Dapat Menyebabkan Gangguan. Tidak ada solusi praktis.
- P1 - Cacat atau fitur fatal yang harus ditangani dalam rilis berikutnya, atau masalah serius yang memengaruhi banyak pengguna (termasuk pengembangan project Bazel), tetapi ada solusi praktisnya. Biasanya tidak memerlukan tindakan segera. Dalam permintaan tinggi dan direncanakan dalam roadmap kuartal saat ini.
- P2 - Kerusakan atau fitur yang harus ditangani, tetapi saat ini kami tidak mengatasinya. Masalah live sedang dalam versi Bazel yang telah dirilis dan merepotkan pengguna yang perlu ditangani dalam rilis mendatang dan/atau sudah ada solusi yang mudah.
- P3 - Perbaikan atau peningkatan bug minor yang diinginkan dengan dampak kecil. Tidak diprioritaskan dalam roadmap Bazel atau rilis dalam waktu dekat, tetapi kontribusi komunitas akan dianjurkan.
- P4 - Kerusakan berprioritas rendah atau permintaan fitur yang tidak mungkin ditutup. Anda juga dapat tetap terbuka untuk potensi pengaturan prioritas ulang jika ada lebih banyak pengguna yang terdampak.
- kotak es
- Masalah yang saat ini tidak memiliki waktu untuk ditangani atau waktu untuk menerima kontribusi. Kami akan menutup masalah ini untuk menunjukkan bahwa tidak ada yang sedang menanganinya, tetapi kami akan terus memantau validitasnya dari waktu ke waktu dan mengaktifkannya kembali jika ada cukup banyak orang yang terdampak dan jika kami kebetulan memiliki sumber daya untuk menanganinya. Seperti biasa, jangan ragu untuk mengomentari atau menambahkan reaksi terhadap masalah ini bahkan saat ditutup.
Label tim
team-Android
: Masalah untuk tim Android- Kontak: ahumesky
team-Bazel
: Masalah strategi/produk umum Bazel- Kontak: sventiffe
team-CLI
: UI Konsol- Kontak: meisterT
team-Configurability
: Masalah bagi tim Konfigurasi. Termasuk: Konfigurasi build inti dan sistem transisi. Tidak mencakup: Perubahan pada tanda baru atau yang sudah ada- Kontak: gregestren
team-Core
: Skyframe, kueri bazel, BEP, penguraian opsi, bazelrc- Kontak: haxorz
team-Documentation
: Masalah untuk tim Dokumentasi- Kontak: philomathing
team-ExternalDeps
: Penanganan dependensi eksternal, Bzlmod, repositori jarak jauh, file WORKSPACE- Kontak: meteorcloudy
team-Loading-API
: BANGUN file dan pemrosesan makro: label, package(), visibilitas, glob- Kontak: brandjon
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 Bazel Performance- Kontak: meisterT
team-Remote-Exec
: Masalah untuk tim Eksekusi (Remote)- Kontak: coeuvre
team-Rules-API
: API untuk menulis aturan/aspek: penyedia, runfile, tindakan, artefak- Kontak: comius
team-Rules-CPP
/team-Rules-ObjC
: Masalah untuk aturan C++/Objective-C, termasuk logika aturan Apple native- Kontak: oquenchil
team-Rules-Java
: Masalah untuk aturan Java- Kontak: hvadehra
team-Rules-Python
: Masalah untuk aturan Python native- Kontak: rickeylev
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). BUILD dan masalah API .bzl (yang mewakili integrasi Bazel dengan Starlark) masuk keteam-Build-Language
.- Kontak: brandjon
Untuk masalah baru, kami tidak lagi menggunakan label category: *
dan menggantinya dengan label
tim.
Lihat daftar label lengkap di sini.