Halaman ini menguraikan cara kontributor dapat mengusulkan dan membuat perubahan pada codebase Bazel.
- Baca kebijakan Kontribusi Bazel.
- Buat masalah GitHub untuk membahas rencana dan desain Anda. Pull request yang mengubah atau menambahkan perilaku memerlukan masalah yang sesuai untuk pelacakan.
- Jika Anda mengusulkan perubahan yang signifikan, tulis dokumen desain.
- Pastikan Anda telah menandatangani Perjanjian Lisensi Kontributor.
- Siapkan commit git yang mengimplementasikan fitur. Jangan lupa untuk menambahkan pengujian dan memperbarui dokumentasi. Jika perubahan Anda memiliki efek yang terlihat oleh pengguna, tambahkan catatan rilis. Jika perubahan tersebut tidak kompatibel, baca panduan untuk meluncurkan perubahan yang dapat menyebabkan gangguan.
- Buat permintaan pull di GitHub. Jika Anda baru menggunakan GitHub, baca tentang permintaan pull. Perhatikan bahwa kami membatasi izin untuk membuat cabang di repositori Bazel utama, sehingga Anda harus mendorong commit ke fork repositori Anda sendiri.
- Pemelihara Bazel akan menetapkan peninjau untuk Anda dalam waktu dua hari kerja (tidak termasuk hari libur di Amerika Serikat dan Jerman). Jika tidak diberi peninjau dalam waktu tersebut, Anda dapat memintanya dengan mengirim email ke bazel-dev@googlegroups.com.
- Bekerja sama dengan peninjau untuk menyelesaikan peninjauan kode. Untuk setiap perubahan, buat commit baru dan kirimkan untuk membuat perubahan pada permintaan pull Anda. Jika peninjauan terlalu lama (misalnya, jika peninjau tidak responsif), kirim email ke bazel-dev@googlegroups.com.
Setelah peninjauan selesai, pengelola Bazel akan menerapkan patch Anda ke sistem kontrol versi internal Google.
Tindakan ini akan memicu pemeriksaan pra-pengiriman internal yang dapat menyarankan lebih banyak perubahan. Jika Anda belum menyatakan preferensi, pengelola yang mengirimkan perubahan Anda akan menambahkan perubahan "sepele" (seperti linting) yang tidak memengaruhi desain. Jika perubahan yang lebih mendalam diperlukan atau Anda lebih suka menerapkan perubahan secara langsung, Anda dan peninjau harus menyampaikan preferensi dengan jelas dalam komentar peninjauan.
Setelah pengiriman internal, patch diekspor sebagai commit Git, dan pada saat itu permintaan pull GitHub ditutup. Semua perubahan akhir akan diatribusikan kepada Anda.