Bagaimana cara memastikan pengulangan kode Julia dan dependensi terkait?
Katakanlah saya memiliki proyek di mana saya melakukan analisis (yaitu tidak ingin mengembangkan paket yang dapat dibagikan) tetapi saya ingin memastikan bahwa orang lain dapat mengkloning repositori dan membuat instance dependensi dan menjalankan kode seperti yang tertulis.
Langkah-langkah yang telah saya ambil sejauh ini:
- Membuat kode di folder itu sendiri
- Membuat folder itu menjadi lingkungan Julia (
activate .
dalam mode paket REPL) add
ed paket yang saya gunakan
Apakah ini mengunci versi dependensi? Atau apakah saya perlu menambahkan [compat]
entri ke Project.toml
file secara manual ? Jika [compat]
entri diperlukan, apakah ada cara untuk menyertakan entri itu secara otomatis saat membeli add
paket?
Apakah ada pendekatan keseluruhan untuk memastikan keterkaitan?
Jawaban
Apakah ini mengunci versi dependensi?
Jika Anda berkomitmen Project.toml
dan Manifest.toml
kemudian seseorang dapat menggandakan repo, aktifkan proyek itu dan lakukan import Pkg; Pkg.instantiate()
untuk mengunduh versi yang sama persis seperti yang tercatat di manifes.
Apakah ini mengunci versi dependensi?
Ya, dalam arti bahwa versi persisnya dicatat dalam Manifest.toml
file tersebut selama file tersebut tidak dimodifikasi, maka terkunci.
Atau apakah saya perlu menambahkan
[compat]
entri keProject.toml
file secara manual ?
Anda tidak perlu melakukan ini. Ini hanya penting ketika seseorang melakukan operasi paket yang memanggil resolver, misalnya pkg> add ...
atau pkg> up
. Jika kode Anda bergantung pada beberapa versi paket tertentu, Anda selalu dapat menambahkan ini ke [compat]
bagian. Misalnya, jika Anda mengandalkan fitur yang memerlukan X
versi paket 1.3.0, Anda dapat menambahkan
[compat]
X = "1.3"
Ini akan memastikan bahwa, bahkan jika seseorang memanggil pemecah paket, Anda setidaknya akan mendapatkan paket versi 1.3 X
.