Menjahit proyek, di mana nomor versi saya mulai?

12

Saya telah bercabang sebuah proyek dan telah banyak berubah. Garpu ini bukan hanya perubahan fitur kecil di sini dan perbaikan bug yang terkubur di sana, ini adalah perubahan yang cukup besar. Hanya sebagian besar kode inti yang dibagikan.

Saya bercabang proyek ini di v2.5.0. Untuk sementara saya sudah mulai memversi garpu saya di v3.0. Namun saya tidak yakin apakah ini cara yang benar, terutama karena ketika proyek itu mencapai v3.0, semuanya menjadi membingungkan. Tetapi saya tidak ingin memulai dari awal pada v1.0 atau v0.1 karena itu menyiratkan masa kanak-kanak, ketidakstabilan, dan non-kehalusan suatu proyek. Ini tidak benar, karena sebagian besar kode inti sangat halus dan stabil.

Saya benar-benar bingung apa yang harus dilakukan, jadi saya bertanya di sini: Apa cara standar untuk menghadapi situasi seperti ini? Apakah sebagian besar garpu memulai kembali, menambah nomor versi, atau melakukan hal lain yang tidak saya sadari.

TheLQ
sumber
5
Saya tidak melihat bagaimana 1,0 memengaruhi bayi atau ketidakstabilan. Apa pun di bawah 1,0 ya, tetapi 1,0 menyiratkan itu keluar dari masa 'bayi' dan siap untuk bergoyang. Jika itu membuat Anda lebih nyaman,
gunakan
1
Karena penasaran, apa yang Anda garpu?
compman

Jawaban:

13

Kebanyakan garpu yang saya lihat mulai lagi dari versi 1.0. Tetapi saya menganggap Anda juga telah mengubah nama garpu Anda, jadi saya tidak yakin mengapa akan ada kebingungan jika Anda baru mulai dari v3.0.

Apa yang akan saya lakukan adalah mengubah nama proyek, merilis versi 1.0 dan memperjelas bahwa proyek tersebut merupakan fork proyek lain. Saya tidak berpikir akan ada kebingungan dengan pendekatan itu.

Jika Anda benar-benar khawatir dengan label "1.0", cukup lepaskan versi 2.0 sesaat setelah 1.0 ...

Dean Harding
sumber
... atau lepaskan v2.0 secara langsung, lewati v1.0 sama sekali. Ini bukan pertama kalinya hal ini dilakukan.
Konamiman
Di perusahaan saya, satu proyek bahkan dimulai pada v2.4.
user253751
6

Siapkan peta jalan Anda sendiri dan patuhi itu, mulai dengan nomor versi asli tetapi jangan mencoba berpacu dengan versi saat ini dari produk asli.

dukeofgaming
sumber
1
Jika Anda tidak mencoba untuk memparalelkan proyek asli dengan beberapa cara, maka tidak akan ada korelasi yang berarti antara nomor versi yang akan datang. Itu berarti tidak ada gunanya mencoba membangun korelasi seperti sekarang - dengan mulai dari 3,0 - karena itu hanya akan membangun harapan yang tidak terpenuhi.
Tom Anderson
Saya berdiri dikoreksi. Anda harus memulai v1.0 Anda sendiri, yang akan membantu Anda membedakan. Versi harus berarti sesuatu, bukan hanya aksi pemasaran (v.gr. "v5.4" tidak hanya terlihat baru).
dukeofgaming
1
@ TomAnderson: Jika dia fork, katakanlah, versi 2.5, dan membuat versi pertama fork-nya 2.6 atau 3.0, dia bisa menunjuk ke aplikasi lain sebagai sejarah lengkap proyeknya. Yang merupakan korelasi sederhana yang berarti.
DougM
3

Anda mungkin ingin mempertimbangkan apakah (dan berapa banyak) proyek Anda akan terkait dengan yang asli. Jika Anda berencana untuk memasukkan fitur-fitur baru dari proyek asli ke dalam Anda, Anda dapat mempertimbangkan untuk menyimpan nomor versi yang cocok dengan versi asli.

Sebagai contoh, periksa MariaDB, yang merupakan garpu dari MySQL. Mereka ingin menyimpannya sebagai pengganti 'drop-in' untuk MySQL, jadi misalnya MariaDB 5.2 memiliki semua fitur MySQL 5.2.

Lihat: http://kb.askmonty.org/v/mariadb-versus-mysql

Catatan: Karena jawaban ini diposting, MariaDB telah menyimpang secara substansial dari MySQL dan sekarang mengikuti skema versinya sendiri.

Mchl
sumber
1

0,1 dapat menunjukkan bayi, tetapi verion 1.0+ berarti stabil. Peningkatan jumlah versi utama misalnya 2.0, 3.0, umumnya mengindikasikan perubahan fitur yang besar.

Misalnya

  • Versi 1.0 dari aplikasi saya adalah alat untuk menjalankan skrip uji dengan pengaturan,
  • Versi 2.0 menghapus perbedaan antara skrip uji dan skrip pengaturan lingkungan,
  • Versi 3.0 menambahkan GUI untuk menulis skrip sebagai bagan alur. Mereka adalah produk yang sangat berbeda, tetapi bahkan Versi 1 adalah produk yang berfungsi, benar-benar stabil, dll. Versi 2 dan 3 muncul karena diputuskan bahwa perubahan besar ini akan baik. Jika kita tidak menginginkan perubahan besar ini, dan baru saja terus melakukan perbaikan bug, dll. Nomor versi minor akan meningkat, 1.10.1.20 dll, dan itu akan baik-baik saja.

Apa yang saya katakan adalah nomor versi utama tidak menunjukkan kedewasaan, mereka menunjukkan set fitur utama. Nah, itu sedikit singgung dari bagaimana versi nomor produk Anda.

Apa yang saya lihat sebelumnya, yang saya suka sukai adalah mulai versi lagi dari 1.0 (atau dari 3.0 jika Anda benar-benar suka) dan kemudian di kurung mengatakan versi asli yang terakhir memiliki fitur menarik.

  • Awalnya: " MyFork v1.1 (berdasarkan pada OrigProg v3.0)
  • Beberapa improviset dibuat untuk MyFork: MyFork v1.3 (berdasarkan OrigProg v3.0)
  • OrigProg merilis versi utama dan MyFork menarik dan menggabungkan: MyFork v2.1 (berdasarkan OrigProg v4.0)
  • Membuat beberapa perubahan besar pada MyFork (mungkin tidak akan dapat dengan mudah bergabung dengan OrigProg lagi): MyFork v3.0 (berdasarkan pada OrigProg v4.0)
Lyndon White
sumber
0

Jika memungkinkan, gabungkan garpu Anda kembali ke proyek asli. Saya tidak bisa cukup menekankan hal ini.

Regaeding nomor versi Anda, kemudian gunakan yang Anda bercabang ditambah akhiran tanggal.


sumber
2
Pindah dari "Python 1.1" ke "Userthon 1.1. {DATE}" memecah format angka verison yang diharapkan.
DougM