Anda tentu tidak asing dengan penggunaan sebuah software. Dalam sebuah software ada banyak cara pemberian versi. Sebagai contoh browser Chrome yang mungkin saat ini anda gunakan, memiliki versi 56.0.2924.87. Atau sistem operasi Windows yang anda gunakan memiliki versi 10.0, Build 14393. Ternyata setiap angka dalam penamaan versi tersebut memiliki arti tersendiri. Tulisan ini akan membahas salah satu format pemberian versi yang disebut dengan semantic versioning atau biasa disebut dengan SemVer.

Semantic versioning adalah sistem versi yang membagi format versi kedalam 3 komponen (aa.bb.cc). Dimana aa menunjukkan versi mayor, bb menunjukkan versi minor, dan cc menunjukkan sebuah patch terhadap sistem. Jadi SemVer memiliki format mayor.minor.patch

Bagaimana Melakukan Release dengan SemVer

Setelah kita mengetahui format versi tersebut, maka kita telusuri lebih jauh kapan versi yang kita rilis termasuk dalam komponen mayor, minor, atau patch.

Patch : Jika rilis yang anda keluarkan adalah memperbaiki bugs yang terjadi
Minor : Jika rilis yang anda keluarkan memunculkan fitur baru yang masih dapat menggunakan versi lama (backward-compatible)
Mayor : Jika fitur yang dikeluarkan adalah baru dan memunculkan fitur yang tidak lagi dapat menggunakan versi lama

Rilis pada SemVer dimulai dari 0.1.0. Artinya ini adalah rilis dengan fitur pertama dan belum memiliki patch atas bug karena belum dilakukan pengujian. Pada saat pengembangan/development maka versi yang dirilis adalah versi 1.0.0. Versi 1.0.0 adalah versi pertama yang diluncurkan untuk pengaplikasian pertama software pada publik.

Suatu software dikategorikan sudah dirilis untuk publik pada saat sudah digunakan di production atau sudah memiliki pengguna yang bergantung dengan software tersebut. Sebagai contoh jika pengembangan software menggunakan Scrum Framework, maka hasil dari sprint pertama merupakan versi 1.0.0.

Dalam SemVer juga mengakomodasi perilisan software pada tahap alpha dan beta. Untuk perilisan alpha tersebut maka kita tetap menggunakan format sama dengan penambahan akhiran pada format. Contoh pada saat kita merilis versi sprint pertama yang ingin diuji internal terlebih dahulu maka digunakan format versi 1.0.0-alpha.1. Dan begitu juga dengan versi beta menjadi 1.0.0-beta.1.

Dari penjelasan di atas maka SemVer dapat memberikan model versi yang memudahkan bagi developer maupun pengguna dalam melihat pengembangan suatu sistem. Anda tentunya dapat menilai jika suatu versi sudah mencapai rilis versi 7.2.380 maka bisa anda bayangkan ada berapa patch terhadap bug yang dilakukan developer, dan bagaimana mekanisme review dan pengujian software yang dilakukan developer tersebut. Terimakasih dan happy coding teman-teman.


Sumber:

https://www.sitepoint.com/semantic-versioning-why-you-should-using/

http://cube-drone.com/comics/c/version-sacrifice