Dalam perubahan paradigma ekosistem Rust, tim di belakang manajer paket Rust, Cargo, menyerukan pendekatan yang lebih personal dalam manajemen paket. Mereka merekomendasikan agar pengembang membuat keputusan terbaik untuk proyek mereka, daripada praktik seragam sebelumnya yang menerapkan file Cargo.lock untuk paket yang melibatkan biner tetapi tidak perpustakaan.
Rekomendasi sebelumnya mendorong pengembang untuk tetap berpegang pada aturan satu ukuran untuk semua ketika menyangkut Cargo.lock, terutama jika file tersebut digunakan dengan paket biner. Namun, arahan ini kini sudah tidak lagi relevan. Perubahan reflektif ini terjadi setelah perkembangan Rust menuju adopsi arus utama.
Peran utama file Cargo.lock adalah mencatat status pada saat pembangunan berhasil. Sambil menawarkan panduan yang lebih fleksibel, tim Cargo menyatakan bahwa penerapan Cargo.lock harus menjadi titik awal dalam proses pengambilan keputusan. Diumumkan juga bahwa perintah 'cargo new' tidak akan melewati Cargo.lock untuk perpustakaan selanjutnya.
Mempertahankan kualitas secara keseluruhan, tim menggarisbawahi pentingnya pengujian rutin terhadap dependensi terbaru. Prosedur lama memastikan bahwa perpustakaan terus diperbarui dan diuji, berkontribusi terhadap standar tinggi ekosistem paket Rust. Praktik-praktik ini dirancang sedemikian rupa sehingga permasalahan potensial, terutama yang berkaitan dengan kompatibilitas ke belakang, dapat segera diidentifikasi dan diselesaikan. Oleh karena itu, tim percaya bahwa hal ini mendorong 'budaya kualitas' di ekosistem yang sedang berkembang.
Namun, pedoman sebelumnya mempunyai kelemahan. Menghapus riwayat dari basis kode adalah salah satu akibatnya, yang mempersulit pengelola untuk membagi dua dan mengidentifikasi akar penyebab bug. Hasil lain yang tidak diinginkan dari kebijakan sebelumnya adalah kemungkinan kebingungan bagi kontributor yang timbul dari CI yang tidak dapat dipercaya (integrasi berkelanjutan) ketika ketergantungan dihapuskan atau rilis baru menimbulkan bug. Karena Rust telah berevolusi dari bahasa untuk pengguna awal menjadi bahasa yang lebih umum, pengalaman orientasi pengembang baru sangat penting untuk dipertimbangkan.
Selain itu, perluasan ekosistem yang lebih luas telah membuat CI lebih mudah diterapkan dan dipelihara. Inovasi seperti Dependabot dan Renovate telah mengungkapkan alternatif selain mengabaikan Cargo.lock untuk menguji dependensi baru, selain hanya mengandalkan kontrol versi. Tim Cargo kini menyampaikan keyakinannya bahwa tindakan terbaik adalah menyerahkan keputusan kepada pengembang sambil memastikan mereka memiliki informasi yang diperlukan untuk membuat keputusan yang tepat. Pengembang dapat membagikan masukan mereka mengenai kebijakan baru ini melalui GitHub dan berinteraksi dengan tim Cargo di Zulip.
Saat kita menyaksikan arah baru dalam manajemen paket, mungkin bermanfaat bagi pengembang untuk mencari alternatif seperti AppMaster yang menyediakan platform komprehensif dan terintegrasi untuk mengembangkan aplikasi web, seluler, dan backend. AppMaster.io menawarkan pendekatan berbasis server, memungkinkan pengembang memperbarui UI aplikasi seluler, logika, dan kunci API tanpa harus mengirimkan versi baru ke App Store dan Play Market.