Apa cara terbaik untuk menghasilkan changelog rilis yang akurat?

8

Saya sedang mengerjakan beberapa proyek di mana saya ingin menyediakan changelog yang akurat untuk setiap rilis, tetapi saya belum menemukan metode untuk mengumpulkan changelog yang akan bekerja tanpa kerumitan. Masalahnya sebagian besar ketika waktu antara versi panjang dan setiap versi dikirimkan dengan banyak fitur dan perbaikan bug, dan ketika perangkat lunak memiliki beberapa cabang yang sedang dikembangkan pada saat yang sama.

Beberapa opsi yang saya pertimbangkan:

  1. Bangun changelog dari pesan komit dan minta pengembang untuk menulis pesan seolah-olah mereka akan menulis baris untuk changelog (yang akan mereka lakukan secara efektif).
    • Mungkin tidak berfungsi ketika ada banyak cabang dan penggabungan antar cabang (mungkin sulit untuk mengetahui komitmen mana yang akhirnya berakhir pada rilis).
  2. Mengharuskan bahwa untuk setiap perubahan kode harus ada tiket yang sesuai dalam sistem pelacakan bug. Changelog dapat ditulis berdasarkan tiket.
    • Para devs mungkin merasa frustrasi untuk membuat tiket untuk perubahan kecil sekalipun, terutama jika membuat tiket membutuhkan waktu lebih lama daripada memperbaiki bug.
  3. Mengharuskan pengembang untuk selalu memperbarui changelog (sebagai file teks di root proyek) pada saat yang sama ketika mereka membuat perubahan pada kode.
    • Terasa seperti kerja manual yang bisa otomatis.
  4. Mintalah manajer proyek mengambil perbedaan dari versi saat ini dan yang sebelumnya dan menulis changelog pada saat itu berdasarkan apa yang mereka lihat yang telah diubah.
    • Kerja ekstra untuk orang yang bertanggung jawab atas rilis dan mungkin tidak jelas apa efek praktis dari perubahan hanya dengan melihat kode.
  5. Kirimkan hanya fitur yang telah direncanakan untuk rilis; Anda dapat menulis changelog bahkan sebelum memulai pengkodean.
    • Bukan pilihan nyata kecuali jika Anda menggunakan model air terjun.

Saya telah menggunakan masing-masing atau variasi dari mereka di masa lalu tetapi mereka sudah terlalu tidak dapat diandalkan, sulit atau kaku. Adakah yang punya peluru ajaib atau ide bagus tentang cara mengatasi masalah?

JJJ
sumber
QA hanya dibuat untuk tujuan itu.
mouviciel
@mouviciel: Saya pikir kebanyakan orang yang bekerja di QA akan tidak setuju dengan pernyataan Anda ;-)
Treb
1
@ Treb: Menjadi QA, Anda agak benar. Doc menulis rilis changelogs, kami hanya memastikan bahwa apa yang sudah ada akurat.
Steven Evers

Jawaban:

6

Jika Anda belum memiliki persyaratan tiket untuk setiap perubahan, maka meminta pengembang untuk membuat tiket untuk setiap perubahan yang cukup penting untuk berakhir di log perubahan tampaknya masuk akal.

Jika perubahan cukup signifikan untuk diberitahukan kepada pengguna, maka Anda mungkin ingin melakukan perubahan itu di bawah tiket, dan menulis tiket deskriptif adalah praktik yang baik. Plus Anda dapat mengikat ini dengan versi rilis apa pun dan peta jalan yang mendukung pelacak bug Anda.

Luke Graham
sumber
+1 Ini cocok dengan # 2 pertanyaan, dan apa yang menurut saya paling baik. Mengenai subteks dari pertanyaan itu sendiri, apakah Anda benar-benar ingin orang melakukan perbaikan bug tanpa tiket?
sdg
0

Terasa seperti kerja manual yang bisa otomatis.

Bagaimana bisa otomatis? Tidak perlu mengedit log perubahan pada setiap komit, tetapi hanya ketika fitur yang layak disebutkan ditambahkan. Apakah itu sering terjadi pada perangkat lunak Anda sehingga merepotkan untuk menambahkan satu baris ke changelog setiap saat?

Tamás Szelei
sumber
0

Anda bisa mengatakan ini adalah tugas QA untuk terus memperbarui changelog, tetapi beberapa sistem manajemen konfigurasi perangkat lunak atau pelacak masalah dapat membuat changelog untuk Anda secara otomatis, yang berguna dalam lingkungan beberapa pengembang. Ini mengasumsikan bahwa Anda menggunakan fitur / masalah pelacakan seperti yang dimaksudkan.

Misalnya, pelacak masalah sumber terbuka Trac memiliki ChangeLogMacro .

Pelacak masalah lainnya mungkin memiliki makro atau plug-in yang dapat menghasilkan changelog untuk Anda. Biasanya permintaan sederhana untuk memilih semua tiket / masalah yang telah ditutup antara rilis terakhir dan rilis saat ini.

Spoike
sumber