Panduan untuk Pengelola Bazel

Laporkan masalah Lihat sumber Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

Ini adalah panduan untuk pengelola project open source Bazel.

Jika Anda ingin berkontribusi pada Bazel, baca Berkontribusi pada Bazel.

Tujuan halaman ini adalah untuk:

  1. Berfungsi sebagai sumber tepercaya pengelola untuk proses kontribusi project.
  2. Tetapkan ekspektasi antara kontributor komunitas dan pengelola project.

Grup inti kontributor Bazel memiliki subtim khusus untuk mengelola aspek project open source. Karakter pengganti ini meliputi:

  • Proses Rilis: Mengelola proses rilis Bazel.
  • Tim Hijau: Membangun 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 untuk infrastruktur CI Bazel di repositori bazelbuild/continuous-integration.

Siklus Proses Masalah

  1. Pengguna membuat masalah menggunakan Template Masalah dan masalah tersebut masuk ke kumpulan masalah terbuka yang belum ditinjau.
  2. Anggota dalam rotasi subtim Developer Experience (DevEx) akan meninjau masalah tersebut.
    1. Jika masalahnya bukan bug atau permintaan fitur, anggota DevEx biasanya akan menutup masalah tersebut dan mengalihkan pengguna ke StackOverflow dan bazel-discuss untuk visibilitas yang lebih tinggi pada pertanyaan.
    2. 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.
    3. Jika masalahnya tidak jelas atau ada informasi yang tidak ada, anggota DevEx akan menugaskan kembali masalah tersebut kepada pengguna untuk meminta informasi selengkapnya sebelum melanjutkan. Hal ini biasanya terjadi jika pengguna tidak mengikuti Template Masalah.
  3. Setelah meninjau masalah, anggota DevEx akan memutuskan apakah masalah tersebut memerlukan perhatian segera. Jika demikian, mereka akan menetapkan label prioritas P0 dan pemilik dari daftar pimpinan tim.
  4. Anggota DevEx menetapkan label untriaged dan tepat satu label tim untuk pemilihan rute.
  5. Anggota DevEx juga menetapkan tepat satu label type:, seperti type: bug atau type: feature request, sesuai dengan jenis masalahnya.
  6. Untuk masalah khusus platform, anggota DevEx menetapkan satu label platform:, seperti platform: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. Subtim akan meninjau dan mengevaluasi masalah serta memberikan solusi, jika memungkinkan. Jika Anda adalah pemilik label tim, lihat bagian ini untuk mengetahui informasi selengkapnya.

Setelah teratasi, masalah dapat ditutup.

Siklus Proses Permintaan Pull

  1. Pengguna membuat permintaan pull.
  2. Jika Anda adalah anggota tim Bazel dan mengirimkan PR terhadap area Anda sendiri, Anda bertanggung jawab untuk menetapkan label tim dan menemukan peninjau terbaik.
  3. Jika tidak, selama triage harian, anggota DevEx akan menetapkan satu label tim dan technical lead (TL) tim untuk pemilihan rute.
    1. TL dapat secara opsional menugaskan orang lain untuk meninjau PR.
  4. Peninjau yang ditugaskan akan meninjau PR dan bekerja sama dengan penulis hingga disetujui atau dibatalkan.
  5. Jika disetujui, peninjau akan imports 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 suite pengujian internal. Inilah alasan kami tidak menggabungkan PR secara langsung.
  6. Jika commit yang diimpor lulus semua pengujian internal, commit akan digabungkan dan diekspor kembali ke GitHub.
  7. 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

  1. Filter daftar masalah menurut label tim Anda dan label untriaged.
  2. Tinjau masalahnya.
  3. Identifikasi tingkat prioritas dan tetapkan label.
    1. Masalah tersebut mungkin telah diprioritaskan oleh subtim DevEx jika merupakan P0. Prioritaskan ulang jika perlu.
    2. Setiap masalah harus memiliki tepat satu label prioritas. Jika masalah berstatus P0 atau P1, kami mengasumsikan bahwa masalah tersebut sedang aktif dikerjakan.
  4. Hapus label untriaged.

Perhatikan bahwa Anda harus berada di organisasi bazelbuild agar dapat menambahkan atau menghapus label.

Permintaan Pull

  1. Filter daftar permintaan pull berdasarkan label tim Anda.
  2. Tinjau permintaan pull yang terbuka.
    1. Opsional: Jika Anda ditugaskan untuk peninjauan, tetapi tidak cocok untuknya, tetapkan ulang peninjau yang sesuai untuk melakukan peninjauan kode.
  3. Bekerja sama dengan pembuat permintaan pull untuk menyelesaikan peninjauan kode.
  4. Setujui PR.
  5. Pastikan semua pengujian berhasil.
  6. Impor patch ke sistem kontrol versi internal dan jalankan presubmit internal.
  7. Kirim 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 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 sejumlah besar pengguna, atau perubahan yang tidak kompatibel yang tidak mematuhi kebijakan Perubahan yang Tidak Kompatibel. Tidak ada solusi praktis.
  • P1 - Cacat atau fitur kritis 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 langsung. 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 ke dalam roadmap Bazel atau rilis yang akan segera dirilis, tetapi kontribusi komunitas 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.
  • ice-box
    • Masalah yang saat ini tidak dapat kami tangani atau tidak dapat 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 kebetulan memiliki resource untuk menanganinya. Seperti biasa, jangan ragu untuk memberikan komentar atau menambahkan reaksi pada masalah ini meskipun sudah ditutup.

Label tim

Untuk masalah baru, kami tidak lagi menggunakan label category: * dan menggantinya dengan label tim.

Lihat daftar lengkap label di sini.