Apa yang harus dilakukan dengan masalah yang ditinggalkan di GitHub?

48

Jika seseorang membuka masalah pada GitHub tetapi lebih banyak informasi untuk mereproduksi kesalahan diminta dan tidak pernah diberikan, apa prosedur yang normal? Contoh .

Di sini penulis menyatakan bahwa "nav istirahat". Sementara saya yakin itu sudah diperbaiki, saya ingin kata dari penulis untuk memastikan kami berbicara tentang hal yang sama. Tapi kadang-kadang reporter masalah itu hilang begitu saja. Apakah ini praktik yang baik / umum untuk menetapkan tanggal kedaluwarsa untuk masalah yang ditinggalkan?

Sesuatu seperti kondisi ini:

  • Sebuah pertanyaan muncul tentang masalah untuk dapat men-debug itu.
  • Lebih dari 2-6 bulan telah berlalu sejak pertanyaan / komentar terakhir yang tidak terjawab dari tim dev.
  • Bug tidak dapat direproduksi pada saat menutupnya (untuk alasan apa pun, mungkin mereka tidak akan pernah bisa diperbanyak).
  • Peringatan dikeluarkan 2 minggu sebelum menutupnya.

Apa yang biasanya dilakukan proyek? Saya tidak dapat menemukan apa pun di Google. Juga, bagaimana saya akan mendokumentasikan ini? Apakah catatan sederhana dalam README.md merinci poin-poin di atas dan komentar dalam masalah yang menjelaskan mengapa ditutup?

Catatan: ini berbeda dari pertanyaan ini karena bug mungkin masih relevan (atau tidak), namun ada kekurangan informasi.

Francisco Presencia
sumber
3
Saya percaya Anda harus mendokumentasikan di suatu tempat bahwa Anda yakin masalah ini sudah diperbaiki (tapi mungkin tidak di dalam README.md). Namun, pertanyaan Anda mungkin masalah pendapat.
Basile Starynkevitch
17
Jika submitter masalah tidak dapat dihubungi untuk konfirmasi bahwa itu sudah diperbaiki, saya hanya akan menutup masalah, dengan komentar bahwa perbaikan tidak diverifikasi oleh submitter asli, setelah secara aktif mencoba menghubungi dia untuk sekitar sebulan. Tapi itu hanya pendapat saya.
Bart van Ingen Schenau
1
@ BasileStarynkevitch maaf, saya bermaksud mendokumentasikan dalam README.md prosedur ini. Tentang penutupan masalah, saya akan mendokumentasikannya dalam masalah itu sendiri.
Francisco Presencia
kemungkinan duplikat dari Cara menutup bug yang tidak lagi relevan
agas
7
Tidak, bug yang tidak lagi relevan tidak sama dengan bug yang ada perbaikannya tetapi pelapor tidak membalas.
bekerja

Jawaban:

49

Ini adalah dilema: Anda tidak dapat menutup masalah sebagai "diperbaiki", karena Anda tidak benar-benar tahu apakah itu diperbaiki, atau setidaknya bahkan jika beberapa masalah diperbaiki, Anda tidak benar-benar tahu apakah ini adalah masalah yang dilaporkan oleh reporter bicarakan. Di sisi lain, Anda tidak ingin meninggalkan masalah yang mungkin telah diperbaiki terbuka, terutama jika Anda tidak akan pernah bisa menyelesaikannya karena Anda tidak akan pernah mendapatkan konfirmasi.

Jadi, Anda harus menutupnya, tetapi mungkin tidak "diperbaiki". Anda dapat menemukan alasan penutupan khusus "dapat diperbaiki" atau "perbaikan tidak dikonfirmasi" jika Anda ingin menjadi positif atau "dilaporkan telah selesai" jika tidak. Anda juga bisa mengatakan "tidak bisa mereproduksi", dan menunggu bug yang sama muncul untuk reporter yang lebih responsif.

Namun, Anda tidak boleh mengeluarkan sumber daya untuk bug yang Anda tidak akan pernah tahu apakah itu benar-benar diperbaiki atau tidak.

Jörg W Mittag
sumber
1
Sekarang saya memeriksanya, bahkan tertulis "Pengguna yang dihapus" di profil pengguna ... jadi saya kira Ghost tidak akan menjawab. Terima kasih atas jawabannya, saya akan menutup dengan tag khusus.
Francisco Presencia
34
Sepertinya tidak dapat diproduksi kembali. Bisakah Anda mereproduksi masalah dari detail di tiket? Tidak? Tidak dapat diproduksi kembali.
ABMagil
1
Dalam Wine bugzilla ada status khusus DITINGGAL: contoh .
Ruslan
'Tidak valid' adalah kondisi lain yang baik, umum,. Di GitHub, ini dapat ditambahkan sebagai label dan kemudian masalah ditutup.
Caterpillar
2
Tutup sebagai "AbandonedByOpener" atau "RequiredInformationMissing". Itulah tepatnya yang terjadi. Dan siapa pun dapat dengan jelas melihat mengapa Anda tidak mengatasi masalah ini.
usr
12

Pertanyaan utama Anda sudah dijawab, tetapi Anda juga bertanya tentang mendokumentasikan proses dan yang perlu dijawab juga.

Solusi yang saya lihat di banyak proyek bukan untuk meletakkannya di README.md proyek, tetapi dalam kontribusi khusus README - file README untuk kontributor. File ini menjelaskan semua yang Anda ingin diketahui oleh orang-orang yang berkontribusi dalam proyek Anda - baik itu tentang kode (konvensi penamaan, organisasi modul, dll.) Atau tentang prosesnya (bagaimana menulis komitmen, cara menangani tiket, dll.). File ini dapat berupa .MDfile lain dalam proyek, atau ditempatkan di repositori yang sama sekali berbeda (sehingga dapat dibagikan di antara semua proyek Anda). Hanya saja, jangan lupa menautkannya dari utama README.md!

Maksud memisahkan informasi dari README utama adalah bahwa biasanya hanya sebagian kecil dari pengguna proyek yang berkontribusi secara langsung. Sebagian besar pengguna tidak perlu bosan dengan informasi itu - mereka hanya perlu tahu apa proyek Anda dan bagaimana menggunakannya, dan itulah yang seharusnya mengandung README utama. Dalam kasus proyek Anda, bagian kontribusi sangat kecil sehingga tidak membebani README utama - tetapi jika Anda mendokumentasikan semua alur kerja yang Anda ingin kontributor ikuti, tidak akan cocok lagi di sana ...

Perhatikan bahwa pengguna mana pun dapat membuka bug, jadi jika Anda memiliki persyaratan khusus tentang pembukaan bug, Anda harus meletakkannya di README utama (cobalah untuk tetap menggunakannya - tidak seperti penyumbang kode, bug reporter mungkin akan kurang bersedia untuk bersusah payah. untuk belajar dan mematuhi aturan Anda). Namun, orang yang benar-benar memperbaiki bug dan menutup tiket (baik itu Anda atau salah satu kontributor yang telah Anda konfirmasi) adalah kontributor langsung dan dapat diharapkan untuk membaca kontribusi README - sehingga proses penutupan tiket ketika reporter melakukan tidak menanggapi harus dijelaskan di sana.

Idan Arye
sumber
12
Di Github, orang dapat secara khusus menggunakan CONTRIBUTING.mddokumen. Dokumen ini diperlakukan secara khusus oleh Github, yaitu, ia ditautkan dari bagian atas halaman terbitan terbuka sehingga menjadi bagian depan dan tengah bagi reporter isu. Lihat: help.github.com/articles/…
cbojar
7

Saya membaca ini sebagai pertanyaan tentang praktik seputar cara menangani bug yang tidak diverifikasi (menggunakan pelacak masalah github) daripada yang lainnya.

Bagi saya, itu adalah jawaban yang agak lurus ke depan berdasarkan pelacak masalah lain yang telah saya gunakan. Github tidak memaksa siapa pun untuk menggunakan alur kerja apa pun dan ini membuatnya sangat fleksibel ... dan agak tidak berguna dalam konfigurasi default-nya.

Melihat alur kerja default Bugzilla kita dapatkan:

masukkan deskripsi gambar di sini

Saya akan menunjukkan hal yang sangat penting di sana - itu akan diselesaikan sebagai sudah diperbaiki sebelum ditutup setelah diverifikasi . Alur kerja Github dasar hanya menampilkan kondisi merah (terbuka) dan hijau (tertutup).

Jadi, satu pendekatan adalah menggunakan label di dalam Github ( label aplikasi Anda ) untuk mencoba menampilkan informasi tambahan. Anda dapat membuat sepasang label yang 'tidak diverifikasi' dan 'diverifikasi' untuk diterapkan setelah Anda menyelesaikan masalah. Perhatikan bahwa ini hanya satu pendekatan - jika Anda mencari, Anda dapat menemukan puluhan pendekatan berbeda untuk penggunaan label. Di sini, pertanyaannya Bagaimana mengelola masalah github untuk (prioritas, dll)? alamat ini.

Anda telah memperbaikinya, dari sudut pandang pengembang hal itu dilakukan. Tutup masalah pada Github. Terapkan label 'tidak diverifikasi' ke label itu. Setelah seseorang yang terbiasa dengan bug di versi sebelumnya mengatakan "ya, perbaiki ini" Anda dapat mengubah label menjadi 'diverifikasi'. Jika mereka mengatakan itu tidak, maka Anda buka kembali.

Perhatikan juga bahwa ada lain negara diselesaikan selain 'tetap'. Ada 'wontfix' (perbaikan adalah sesuatu yang tidak dapat dilakukan dengan struktur saat ini) dan 'worksforme' (bug tidak dapat direproduksi) dan 'tidak valid' (Anda mengajukan bug tentang OS, tidak jenis aplikasi hal).

Komunitas
sumber
3

Saya akan mengambil satu dari dua pandangan, tergantung seberapa yakin saya bahwa saya berbicara tentang hal yang sama dengan reporter aslinya:

1) Karena reporter tidak lagi tersedia, anggap bug yang dimaksud berarti apa pun yang Anda perbaiki. Jika ini membantu, lampirkan kasus uji untuk menjelaskan kegagalan apa yang Anda temukan. Jelaskan secara rinci pada laporan bug apa yang Anda perbaiki dan tinggalkan pesan seperti, "Saya yakin inilah yang dimaksud dengan 'nav break', silakan buka kembali atau naikkan bug baru jika itu bukan yang Anda maksudkan". Tandai bug sebagai diperbaiki.

2) Karena reporter tidak lagi tersedia, anggap bahwa bug tidak dapat (diketahui) direproduksi, karena hanya kata-kata reporter untuk itu akan mengkonfirmasi itu adalah hal yang sama yang mereka laporkan. Naikkan bug baru untuk menggambarkan hal yang Anda perbaiki, demi kredit menyebutkan bahwa itu diamati dalam kondisi yang dijelaskan oleh reporter yang absen, catat pada keduanya bahwa mereka mungkin duplikat, tandai bug baru diperbaiki dan tandai yang ini tidak valid atau tidak dapat direproduksi dengan catatan seperti, "Saya tidak bisa mengetahui apa yang Anda maksud dengan 'nav break', tetapi saya telah memecahkan masalah yang saya temukan. Buka kembali atau naikkan bug baru jika nav masih rusak, jelaskan dalam lebih detail apa yang salah ".

Adapun skala waktu, saya pikir itu harus bergantung pada proyek. Jika Anda sangat responsif, dan berhadapan dengan bug ini dalam beberapa hari sejak bug itu muncul, maka orang-orang harus memahami bahwa Anda tidak akan menunggu berminggu-minggu untuk respons sebelum menyelesaikan masalah. Di sisi lain, jika sudah ada di slushpile Anda selama berbulan-bulan maka itu bisa duduk selama satu atau dua bulan lagi tanpa menyebabkan Anda kesulitan.

Untuk alasan ini saya tidak berpikir ada satu batas waktu tertentu yang merupakan "praktik yang baik", atau bahwa Anda perlu menerbitkan kebijakan Anda dan menaatinya. Tentu saja Anda tidak ingin mencatat bahwa reporter tidak dapat dihubungi sampai Anda berupaya menghubungi mereka. Tetapi saya juga tidak melihat ada gunanya membiarkan banyak peringatan menghitung hingga batas waktu: mereka akan mengunjungi kembali bug dan ingin mengatakan sesuatu, atau mereka tidak mau.

Steve Jessop
sumber