Versi singkat sebelum memulai pengembangan baru atau saat menandai rilis, mana yang lebih baik?

9

Beberapa proyek menabrak versi sebelum memulai pengembangan baru, sementara proyek lainnya menabrak versi saat menandai rilis.

Pendekatan mana yang lebih baik?

Jika nomor versi tidak berubah pada awal fase baru, pengembang mungkin lupa untuk mengubahnya dan cukup merilis program.

Jika nomor versi berubah sebelum penandaan rilis, maka 2 nomor versi (tag dan Makefile / AssemblyInfo.cs) tidak cocok.

git describe dapat memberi Anda v1.2.3.4-15-g1234567 jika revisi saat ini adalah setelah v1.2.3.4, tetapi Anda telah mengubah file untuk memiliki v1.2.3.5

linquize
sumber

Jawaban:

2

Alasan utama untuk nomor versi ada sehingga ketika bug ditemukan Anda dapat men-debug menggunakan versi aktual dari kode sumber tempat kesalahan sebenarnya terjadi (sehingga menemukan alasan sebenarnya untuk bug).

Tidak masalah skema versi apa yang Anda gunakan selama pengguna produk Anda dapat berkomunikasi dengan pengembang informasi yang cukup sehingga pengembang dapat mencapai tujuan ini.

Alasan lain untuk versi adalah untuk tim pemasaran dan bantuan (terkadang legal).
Tim-tim ini memiliki prioritas mereka sendiri untuk versi.

  • Bantuan
    Ingin cara yang mudah untuk menentukan kompatibilitas dan fitur-fitur dan berpotensi stabilitas (lihat skema Nomor Ganjil / Genap Linux).
  • Pemasaran
    Ingin jumlah yang lebih besar setiap kali (sebaiknya di atas 2)
  • Legal
    Ingin memastikan Anda memiliki semua fitur yang berkomitmen sebelum menambah jumlahnya.

Dalam semua kasus, skema yang digunakan tidak penting. Selama Anda konsisten (atau memiliki dokumentasi yang sangat rinci dan mudah tersedia tentang perubahan makna).

Martin York
sumber
1

Ketika menggunakan nomor versi empat segmen seperti .NET assemblies, saya lebih suka menggunakan tag kontrol versi untuk mengatur tiga segmen pertama, maka segmen keempat adalah jumlah komit sejak tag itu.

Misalnya, suatu versi diberi tag "v1.2.3". Jika git-describemengembalikan "v1.2.3-4-g1a2b3c4", maka ketika dibangun perakitan itu akan diversi versi 1.2.3.4.

Jika tag kemudian diterapkan ke versi itu, maka git-describeakan mengembalikan "v1.2.4" sebagai gantinya, yang mewakili versi 1.2.4.0. Komit selanjutnya adalah 1.2.4.1.

Manfaat yang saya temukan dari sistem ini adalah:

  • Setiap komit secara otomatis menambah nomor versi.
  • Versi dapat dibuat sebagai rilis ".0" hanya dengan memberi tag.
  • Meskipun tidak sempurna, sistem ini bekerja dengan DVCS karena menghitung jumlah komit sejak tag terbaru.
Stephen Jennings
sumber