Pengertian Package Versioning dalam Pengembangan Perangkat Lunak: Perbedaan ^, ~, dan Tanpa Simbol

Perkenalan

Saat mengembangkan perangkat lunak, biasanya menggunakan perpustakaan atau modul eksternal yang ditulis oleh pengembang lain untuk menghindari penulisan kode dari awal. Pustaka atau modul eksternal ini disebut paket.

Jika proyek Anda menggunakan paket pihak ketiga, Anda harus menentukan versi paket tersebut. Hal ini penting karena versi berbeda dari paket yang sama mungkin berisi fitur berbeda, perbaikan bug, dan kemungkinan perubahan yang mengubah permainan.

Sistem manajemen paket menggunakan simbol berbeda untuk menunjukkan ketergantungan versi. Simbol yang paling umum adalah ^ (tanda sisipan) dan ~ (tilde), atau tidak ada simbol yang digunakan. Dalam tutorial ini, kami akan menjelaskan opsi dan melihat perbedaan di antara keduanya

Bagian Pembuatan Versi

Nomor versi biasanya terdiri dari dua atau tiga bagian yang dipisahkan oleh titik, seperti 1.2.3 atau 1.2.3.4. Setiap bagian dari nomor versi mewakili tingkat perubahan yang berbeda pada perangkat lunak.

Besar

Versi mayor adalah bagian pertama dari nomor versi. Ini mewakili perubahan yang dapat menyebabkan gangguan pada perangkat lunak, seperti perubahan pada API atau perubahan antarmuka yang dapat menyebabkan masalah kompatibilitas dengan versi perangkat lunak yang lebih lama.

Minor

Versi minor adalah bagian kedua dari nomor versi. Ini mewakili perubahan kecil namun signifikan pada perangkat lunak seperti fitur baru, perbaikan bug, dan peningkatan lainnya yang tidak memengaruhi kompatibilitas ke belakang.

Tambalan

Patch adalah bagian ketiga dari nomor versi. Ini mewakili perubahan kecil pada perangkat lunak, termasuk perbaikan bug, patch keamanan, dan pembaruan kecil lainnya yang tidak memengaruhi fungsionalitas atau kompatibilitas.

Versi Pembuatan/Nomor Revisi

Versi build atau nomor revisi adalah informasi tambahan yang digunakan beberapa perangkat lunak. Bagian nomor versi ini mewakili versi atau rilis perangkat lunak tertentu dan biasanya hanya digunakan untuk tujuan pelacakan internal.

Simbol Sisipan (^)

Simbol tanda sisipan (^) menunjukkan bahwa pembaruan paket diperbolehkan selama pembaruan tersebut bukan pembaruan besar yang merusak kompatibilitas ke belakang.

Misalnya, jika Anda memiliki ketergantungan paket dengan versi ^1.2.3, ini akan mengizinkan pembaruan hingga versi 2.0.0 (jika tersedia) tetapi tidak 3.0.0, dengan asumsi bahwa versi 2.0.0 kompatibel dengan versi 1.2. 3.

Misalkan proyek Anda bergantung pada paket 'lodash' dan Anda ingin mengizinkan pembaruan hingga rilis besar berikutnya, tetapi tidak setelah itu. Anda dapat menentukan ketergantungan sebagai berikut:

"dependencies": {
"lodash": "⁴.17.11"
}

Dengan spesifikasi ketergantungan ini, Anda mengizinkan pembaruan hingga versi 5.0.0 (jika tersedia) tetapi tidak untuk 6.0.0, dengan asumsi bahwa versi 5.0.0 kompatibel dengan versi 4.17.11.

Simbol Tilde (~)

Simbol tilde (~) menunjukkan bahwa Anda ingin mengizinkan pembaruan pada paket selama paket tersebut berada dalam versi minor yang sama. Misalnya, jika Anda memiliki ketergantungan paket dengan versi ~1.2.3, itu berarti Anda mengizinkan pembaruan hingga versi 1.3.0 tetapi tidak mengizinkan pembaruan 2.0.0.

Misalkan proyek Anda bergantung pada paket “axios”, dan Anda ingin mengizinkan pembaruan hingga rilis minor berikutnya, tetapi bukan rilis setelahnya. Anda dapat menentukan ketergantungan sebagai berikut:

"dependencies": {
"axios": "~0.21.1"
}

Dengan spesifikasi ketergantungan ini, Anda mengizinkan pembaruan hingga versi 0.22.0 (jika tersedia) tetapi tidak 1.0.0, dengan asumsi bahwa versi 0.22.0 kompatibel dengan versi 0.21.1.

Tanpa Simbol

Jika tidak ada simbol yang digunakan, biasanya ini berarti diperlukan versi yang sama persis. Misalnya, jika Anda memiliki ketergantungan paket yang terdaftar sebagai 1.2.3, itu berarti hanya paket versi 1.2.3 yang diperbolehkan.

Misalkan proyek Anda bergantung pada paket “react”, dan Anda ingin menentukan versi persisnya. Anda dapat menentukan ketergantungan sebagai berikut:

"dependencies": {
"react": "16.8.6"
}

Dengan spesifikasi ketergantungan ini, hanya paket reaksi versi 16.8.6 yang diperbolehkan.

Kesimpulan

Kesimpulannya, memahami simbol-simbol yang digunakan dalam sistem manajemen paket sangat penting untuk menghindari masalah dengan ketergantungan proyek Anda. Ringkasnya, simbol tanda sisipan (^) memungkinkan pembaruan hingga versi mayor berikutnya, dengan asumsi kompatibilitas mundur, sedangkan simbol tilde (~) memungkinkan pembaruan hingga versi minor berikutnya, dengan asumsi mundur, dan jika tidak ada simbol, maka memungkinkan versi yang tepat.

👉Ikuti saya di Instagram👈

Konten lainnya di PlainEnglish.io.

Daftar ke buletin mingguan gratis kami. Ikuti kami di "Twitter", "LinkedIn", "YouTube", dan "Discord" .