Ini adalah panduan untuk pengelola project open source Bazel.
Jika Anda ingin berkontribusi pada Bazel, baca Berkontribusi pada Bazel.
Tujuan halaman ini adalah untuk:
- Berfungsi sebagai sumber kebenaran bagi pengelola untuk proses kontribusi project.
- Tetapkan ekspektasi antara kontributor komunitas dan pengelola proyek.
Grup kontributor inti Bazel memiliki subtim khusus untuk mengelola aspek project open source. Karakter pengganti ini meliputi:
- Proses Rilis: Mengelola proses rilis Bazel.
- Tim Hijau: Menumbuhkan ekosistem aturan dan alat yang sehat.
- Pengembang yang Berpengalaman: Mendorong kontribusi eksternal, meninjau masalah dan permintaan pull, serta membuat alur kerja pengembangan kami lebih terbuka.
Rilis
Continuous Integration
Baca panduan tim Green untuk infrastruktur CI Bazel di repositori bazelbuild/continuous-integration.
Siklus Proses Masalah
- Pengguna membuat masalah dengan memilih salah satu template masalah dan masalah tersebut masuk ke kumpulan masalah terbuka yang belum ditinjau.
- Anggota yang bertugas dalam rotasi subtim Developer Experience (DevEx) akan meninjau masalah ini.
- Jika masalah bukan bug atau permintaan fitur, anggota DevEx biasanya akan menutup masalah tersebut dan mengalihkan pengguna ke StackOverflow dan bazel-discuss agar pertanyaan tersebut lebih terlihat.
- Jika masalah tersebut termasuk dalam 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 ada informasi yang kurang, anggota DevEx akan menugaskan kembali masalah tersebut kepada pengguna untuk meminta informasi lebih lanjut sebelum melanjutkan. Hal ini biasanya terjadi saat pengguna tidak memilih template masalah {: .external} yang tepat atau memberikan informasi yang tidak lengkap.
- Setelah meninjau masalah, anggota DevEx memutuskan apakah masalah tersebut memerlukan perhatian segera. Jika demikian, mereka akan menetapkan label P0 prioritas dan pemilik dari daftar ketua tim.
- Anggota DevEx menetapkan label
untriaged
dan tepat satu label tim untuk perutean. - 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. - Jika masalahnya berprioritas rendah dan dapat dikerjakan oleh kontributor komunitas baru, anggota DevEx akan menetapkan label
good first issue
. Pada tahap ini, masalah akan masuk ke kumpulan masalah terbuka yang belum diklasifikasikan.
Setiap subtim Bazel akan menyeleksi semua masalah dengan label yang mereka miliki, sebaiknya setiap minggu. Subtim akan meninjau dan mengevaluasi masalah tersebut serta memberikan resolusi, jika memungkinkan. Jika Anda adalah pemilik label tim, lihat bagian ini untuk mengetahui informasi selengkapnya.
Jika masalah telah teratasi, masalah tersebut dapat ditutup.
Siklus Proses Permintaan Pull
- Pengguna membuat permintaan pull.
- Jika Anda adalah anggota tim Bazel dan mengirim PR terhadap area Anda sendiri, Anda bertanggung jawab untuk menetapkan label tim dan menemukan peninjau terbaik.
- Jika tidak, selama penyeleksian harian, anggota DevEx akan menetapkan satu
label tim dan ketua tim (TL) teknis tim untuk perutean.
- TL dapat secara opsional menugaskan orang lain untuk meninjau PR.
- Peninjau yang ditugaskan meninjau PR dan bekerja sama dengan penulis hingga PR tersebut disetujui atau dibatalkan.
- Jika disetujui, peninjau akan mengimpor commit PR ke sistem kontrol versi internal Google untuk pengujian lebih lanjut. Karena Bazel adalah sistem build yang sama yang digunakan secara internal di Google, kita perlu menguji semua commit PR terhadap rangkaian pengujian internal. Inilah alasan 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 menyeleksi 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 ini mungkin telah diprioritaskan oleh subtim DevEx jika merupakan masalah P0. Ubah prioritas jika perlu.
- Setiap masalah harus memiliki tepat satu label prioritas. Jika masalahnya adalah P0 atau P1, kami menganggap masalah tersebut sedang ditangani secara aktif.
- Hapus label
untriaged
.
Perhatikan bahwa Anda harus berada di organisasi bazelbuild untuk dapat menambahkan atau menghapus label.
Permintaan Pull
- Memfilter daftar pull request menurut label tim Anda.
- Tinjau pull request terbuka.
- Opsional: Jika Anda ditugaskan untuk melakukan peninjauan, tetapi tidak sesuai, tetapkan ulang peninjau yang tepat untuk melakukan peninjauan kode.
- Bekerja sama dengan pembuat permintaan pull untuk menyelesaikan peninjauan kode.
- Menyetujui PR.
- Pastikan semua pengujian berhasil.
- 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 pemelihara untuk menyeleksi masalah.
- P0 - Kerusakan fungsi utama yang menyebabkan rilis Bazel (minus kandidat rilis) tidak dapat digunakan, atau layanan yang tidak berfungsi yang sangat memengaruhi pengembangan project Bazel. Hal ini mencakup regresi yang diperkenalkan dalam rilis baru yang memblokir sejumlah besar pengguna, atau perubahan yang tidak kompatibel dan tidak sesuai dengan kebijakan Perubahan Merusak. 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. Sangat diminati dan direncanakan dalam peta jalan kuartal ini.
- P2 - Cacat atau fitur yang harus ditangani, tetapi saat ini tidak kami kerjakan. Masalah live sedang dalam versi Bazel yang dirilis dan tidak nyaman bagi pengguna yang perlu ditangani dalam rilis mendatang dan/atau ada solusi mudah.
- P3 - Perbaikan atau peningkatan bug kecil yang diinginkan dengan dampak kecil. Tidak diprioritaskan dalam peta jalan Bazel atau rilis mendatang, tetapi kontribusi komunitas sangat dianjurkan.
- P4 - Cacat berprioritas rendah atau permintaan fitur yang kemungkinan tidak akan ditutup. Juga dapat tetap dibuka untuk kemungkinan penetapan ulang prioritas jika lebih banyak pengguna terpengaruh.
- kotak es
- Masalah yang saat ini tidak sempat kami tangani atau tidak ada waktu untuk menerima kontribusi. Kami akan menutup masalah ini untuk menunjukkan bahwa tidak ada yang menanganinya, tetapi akan terus memantau validitasnya dari waktu ke waktu dan mengaktifkannya kembali jika cukup banyak orang yang terpengaruh dan jika kami memiliki sumber daya untuk menanganinya. Seperti biasa, jangan ragu untuk memberikan komentar atau menambahkan reaksi pada masalah ini, meskipun sudah ditutup.
Label tim
team-Android
: Masalah untuk tim Android- Kontak: ahumesky
team-Bazel
: Masalah umum terkait produk/strategi Bazel- Kontak: meisterT
team-CLI
: UI Konsol- Kontak: meisterT
team-Configurability
: Masalah untuk tim Kemampuan Konfigurasi. Mencakup: Konfigurasi build inti dan sistem transisi. Tidak mencakup: Perubahan pada tanda baru atau yang sudah ada- Kontak: gregestren
team-Core
: Skyframe, kueri bazel, BEP, parsing opsi, bazelrc- Kontak: haxorz
team-Documentation
: Masalah untuk tim Dokumentasiteam-ExternalDeps
: Penanganan dependensi eksternal, Bzlmod, repositori jarak jauh, file WORKSPACE- Kontak: meteorcloudy
team-Loading-API
: File BUILD 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 Performa Bazel- Kontak: meisterT
team-Remote-Exec
: Masalah untuk tim Eksekusi (Jarak Jauh)- 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: buildbreaker2021
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 interpreter Starlark, Stardoc, injeksi bawaan, encoding karakter. Tidak mencakup: Masalah bahasa BUILD atau .bzl.- Kontak: brandjon
team-Starlark-Interpreter
: Masalah untuk interpreter Starlark (apa pun di java.net.starlark). Masalah terkait API BUILD dan .bzl (yang merepresentasikan integrasi Bazel dengan Starlark) masuk keteam-Build-Language
.- Kontak: brandjon
Untuk masalah baru, kami tidak menggunakan lagi label category: *
dan menggantinya dengan label tim.
Lihat daftar lengkap label di sini.