Panduan untuk Pengelola Bazel

Laporkan masalah Lihat sumber Per Malam · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

Ini adalah panduan bagi para pengelola proyek open source Bazel.

Jika Anda ingin berkontribusi ke Bazel, baca Berkontribusi ke Bazel sebagai gantinya.

Tujuan halaman ini adalah untuk:

  1. Berperan sebagai pengelola sumber tepercaya untuk kontribusi proyek {i>checkout<i}.
  2. Menetapkan ekspektasi antara kontributor komunitas dan proyek pengelola proyek.

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.
  • Developer Pengalaman Developer: Dorong kontribusi eksternal, tinjau dan permintaan pull, serta membuat alur kerja pengembangan kita lebih terbuka.

Rilis

Continuous Integration

Baca panduan tim Green tentang infrastruktur CI Bazel di bazelbuild/continuous-integration repositori resource.

Siklus Proses Masalah

  1. Pengguna membuat masalah dengan memilih salah satu template masalah dan memasuki kelompok belum ditinjau .
  2. Seorang anggota rotasi subtim Developer Experience (DevEx) meninjau masalah performa.
    1. 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.
    2. Jika masalah tersebut 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 informasinya tidak lengkap, anggota DevEx akan tugaskan kembali masalah tersebut kepada pengguna untuk meminta informasi lebih lanjut sebelum melanjutkan. Hal ini biasanya terjadi ketika pengguna tidak memilih solusi yang tepat template masalah {: .external} atau memberikan informasi yang tidak lengkap.
  3. 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.
  4. Anggota DevEx menetapkan label untriaged dan tepat satu tim label 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.
  7. Apakah masalah memiliki prioritas rendah dan dapat dikerjakan oleh komunitas baru sebagai kontributor, anggota DevEx menetapkan label good first issue. Pada tahap ini, masalah memasuki kumpulan kumpulan data yang tidak masalah.

Setiap subtim Bazel akan menentukan prioritas semua masalah berdasarkan label yang mereka miliki, sebaiknya di secara mingguan. 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.

Masalah dapat ditutup setelah diselesaikan.

Siklus Proses Permintaan Pull

  1. Pengguna membuat permintaan pull.
  2. 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
  3. Jika tidak, selama triase harian, anggota DevEx akan menetapkan satu label tim dan pemimpin teknis tim (TL) untuk pemilihan rute.
    1. TL dapat menunjuk orang lain untuk meninjau PR secara opsional.
  4. Peninjau yang ditugaskan meninjau Humas dan bekerja sama dengan penulis hingga disetujui atau dihapus.
  5. Jika disetujui, peninjau akan mengimpor komitmen Humas ke sistem kontrol versi internal untuk pengujian lebih lanjut. Karena Bazel adalah build 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.
  6. Jika commit yang diimpor lulus semua pengujian internal, commit akan digabungkan dan diekspor kembali ke GitHub.
  7. Saat commit bergabung ke master, GitHub otomatis menutup PR.

Tim saya memiliki label. Apa yang harus saya lakukan?

Subtim perlu menyortir 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 ini mungkin sudah diprioritaskan oleh subtim DevEx jika itu adalah P0. Prioritaskan ulang jika perlu.
    2. Setiap masalah harus memiliki tepat satu label prioritas. Jika masalah adalah P0 atau P1 yang kami asumsikan sudah dikerjakan secara aktif.
  4. Hapus label untriaged.

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

Permintaan Pull

  1. Filter daftar permintaan pull menurut label tim Anda.
  2. Meninjau permintaan pull terbuka.
    1. Opsional: Jika Anda ditugaskan untuk ditinjau, tetapi tidak cocok untuk ditinjau tugas itu, menunjuk kembali peninjau yang sesuai untuk melakukan peninjauan kode.
  3. Bekerja samalah dengan pembuat permintaan pull untuk menyelesaikan peninjauan kode.
  4. Menyetujui Humas.
  5. Pastikan semua pengujian lulus.
  6. Mengimpor patch ke sistem kontrol versi internal dan menjalankan pra-pengiriman.
  7. 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 triase masalah performa.

  • P0 - Sebagian besar rusak fungsi yang menyebabkan rilis Bazel (kecuali kandidat rilis) tidak dapat digunakan, atau layanan yang dihentikan yang sangat memengaruhi pengembangan Bazel proyek. 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 Pelanggaran Ubah lebih lanjut. Tidak ada solusi praktis.
  • P1 - Kerusakan kritis atau yang harus ditangani dalam rilis berikutnya, atau masalah serius yang berdampak pada banyak pengguna (termasuk pengembangan proyek Bazel), tetapi terdapat solusi praktis. Biasanya tidak memerlukan tindakan segera. Di beberapa permintaan yang tinggi dan direncanakan dalam peta jalan kuartal ini.
  • P2 - Kerusakan atau fitur yang harus ditangani tetapi saat ini kita tidak mengerjakannya. Masalah live sedang dalam versi Bazel yang dirilis dan tidak nyaman bagi pengguna sehingga perlu ditangani dalam rilis mendatang dan/atau terdapat solusi yang mudah.
  • P3 - Bug minor yang diinginkan perbaikan atau peningkatan dengan dampak kecil. Tidak diprioritaskan dalam roadmap Bazel atau rilis yang akan datang, namun kontribusi komunitas sangat dianjurkan.
  • P4 - Kerusakan prioritas rendah atau permintaan fitur yang kemungkinan tidak akan ditutup. Juga dapat tetap terbuka untuk penyusunan prioritas ulang jika ada lebih banyak pengguna yang terdampak.
  • 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

Untuk masalah baru, kami menghentikan penggunaan label category: * dan digantikan oleh tim label.

Lihat daftar lengkap label di sini.