Sebagai aplikasi open source di Github, siapapun dapat mengirim perubahan pada script OpenSID. Dan sebagai aplikasi yang dikembangkan oleh komunitas pegiat dan pengguna, kita secara aktif mengajak semua yang berminat untuk kontribusi mengembangkan OpenSID.
Perubahan tersebut dikirim ke OpenSID melalui pull request (PR). Petunjuk ini menjelaskan bagaimana PR direview sebelum digabungkan ke script OpenSID.
PR dikirim oleh pegiat2 dengan latar belakang dan penguasaan teknis yang berbeda-beda. Kebanyakan umumnya belum terbiasa membuat kontribusi pada proyek open source seperti OpenSID. Para programmer yang mengirim PR juga mempunyai kebiasaan koding yang berbeda-beda. Perlu diantisipasi, PR yang dikirim oleh para kontributor kualitasnya akan beragam, dan perlu diperiksa untuk menentukan apakah layak untuk digabung ke rilis OpenSID atau tidak.
Tim Rilis OpenSID bertanggung jawab menjaga supaya script OpenSID mengikuti standar yang telah kita terapkan -- dengan tujuan supaya menjadi semakin mudah dimengerti dan mudah diubah. PR perlu direview supaya:
pengembangan
Setiap perubahan OpenSID yang berasal dari publik perlu terkait suatu kebutuhan yang jelas. Kebutuhan tersebut terrekam di issue di https://github.com/OpenSID/OpenSID/issues. Kalau ada PR yang tidak terkait issue, pengirim diminta untuk membuat issue dulu sebelum review dapat dilanjutkan.
PR yang menerapkan beberapa issue sekaligus sulit direview. Pada prakteknya, ada kemungkinan solusi untuk suatu issue lolos review, sedangkan solusi untuk issue lainnya perlu perbaikan. Keadaannya ini akan membuat proses review dan penggabungan script rumit. Karena itu, kalau ada PR yang berisi solusi untuk beberapa issue sekaligus, pengirim diminta untuk memisahkan menjadi PR tersendiri untuk masing-masing issue. Yaitu, review untuk PR gabungan tidak bisa dilanjutkan.
Catatan: Pada kasus tertentu, untuk Setiap PR perlu terkait suatu issue dan Setiap PR perlu dibatasi satu issue saja tidak dilakukan dengan kondisi terdapat issue yang saling berkaitan dan tidak dapat dikerjakan secara terpisah. Misalnya pada OpenSID kasus di atas bisa terjadi jika baru mulai mengerjakan/merobak modul yang berkaitan dengan Autentikasi dimana memerlukan modul-modul seperti user, role dan group.
Yang melakukan review perlu memeriksa issue terkait untuk meyakinkan issue tersebut masih berlaku dan memang perlu dikerjakan. Ada kalanya pengirim mengerjakan issue yang sudah dikerjakan sebelumnya dalam bentuk lain, atau memang issue yang bersangkutan belum sempat direview dan disetujui karena berbagai hal. Dalam hal ini, yang perlu dilakukan adalah:
Pengirim PR terkadang belum perpengalaman mengirim PR. Situasi yang terkadang ditemukan:
[Gambar melihat file di PR]
Apabila keadaan di atas ditemukan, pe-review perlu melakukan:
Ada kalanya semua script berubah dalam file yang dikirim dalam PR. Hal ini bisa terjadi karena pengirim menggunakan editor yang mengubah semua script secara otomatis, atau pengirim mengubah format indentasi atau lainnya. Perubahan seperti ini akan sulit direview, karena kita tidak bisa melihat apa saja yang sebenarnya telah diubah oleh pengirim.
[Gambar contoh semua script di file terubah]
Kalau keadaan ini ditemukan, minta pengirim untuk mengirim ulang PR-nya supaya review dapat dilanjutkan.
Sering pengirim belum mengetahui cara untuk melakukan perubahan database melalui proses migrasi yang digunakan OpenSID, sehingga pengirim tidak mengikutsertakan perubahan database atau mengirim contoh data awal yang telah mereka ubah. Untuk kasus seperti ini, beritahu pengirim petunjuk menambahkan migrasi ([[Menambah-Migrasi-Database]]) dan minta mereka menambahkan migrasi DB ke PR susulan supaya review dapat dilanjutkan.
Periksa migrasi dengan teliti. Pastikan migrasi:
Pasang PR di komputer lokal untuk diuji coba. Yakinkan perubahan di PR ini betul-betul merupakan solusi untuk issue terkait. Kalau ditemukan masalah, beritahu pengirim PR dan minta mereka perbaiki.
Untuk memasang PR di komputer lokal ikuti langkah-langkah berikut:
Antisipasi berbagai skenario terkait PR, termasuk memasukkan data salah, melakukan langkah tidak terduga, menjalankan menu/fitur yang mungkin terdampak oleh perubahan di PR. Yakinkan tidak ada dampak tidak terduga dari PR.
Kalau ditemukan masalah, beritahu pengirim PR dan minta mereka perbaiki.
Periksa perubahan pada setiap file di PR. Yakinkan semua script yang ditambah atau diubah mengikuti aturan penulisan script di https://github.com/OpenSID/OpenSID/wiki/Aturan-Penulisan-Script.
Kalau ditemukan masalah, beritahu pengirim PR dan minta mereka perbaiki. Cara memberitahu masalah terkait baris tertentu di script dijelaskan berikut ini:
Selain penulisan script, pe-review perlu juga memeriksa struktur script, method dan file yang ditambah atau diubah oleh PR. Yakinkan semua script mengikuti praktik baik koding, termasuk:
Kalau ditemukan masalah, beritahu pengirim PR dan minta mereka perbaiki.
OpenSID digunakan oleh desa untuk menyimpan data yg perlu dijamin keamanannya. Untuk setiap perubahan, periksa apakah celah keamanan telah ditutup, termasuk hal2 berikut:
mass assignment
pada waktu menyimpan data form ke database. Yaitu jangan simpan post
secara utuh, tapi hanya simpan data yg memang perlu disimpan (ambil satu-per-satu)Selengkapnya : https://github.com/OpenSID/OpenSID/wiki/Keamanan
Kalau ditemukan masalah, beritahu pengirim PR dan minta mereka perbaiki.
Apabila PR perlu diperbaiki dan belum siap untuk digabung, beritahu pengirim dan selesaikan review mengikut cara sebagai berikut:
Pada saat memeriksa file yang diubah, ada kalanya ditemukan masalah lain di script yang tidak secara langsung terkait PR atau issue yang sedang dikerjakan. Kalau sempat, dianjurkan pe-review sekalian saja melakukan perbaikan supaya script OpenSID bisa terus membaik dan bertambah mapan.
Sesudah PR lolos review, mutakhirkan catatan rilis. Tambahkan keterangan singkat mengenai issue yang telah dikerjakan. Tambahkan juga nama pegiat yang mengirim PR.
Yang melakukan review umumnya perlu juga melakukan perubahan, termasuk untuk:
Perubahan yang dilakukan oleh pe-review perlu dicommit ke branch yang sedang direview.
pengembangan
Sesudah semua perubahan telah dicommit, branch yang sedang direview perlu digabung ke branch pengembangan
. Setelah digabung, branch pengembangan
perlu dipush ke Github. Setelah dipush ke Github, hasil PR tersebut langsung tersedia untuk diunduh oleh siapa saja. branch pengembangan yang dimaksud diantaranya branch dev
, development
, rilis-dev
.