Bagaimana cara memastikan pengulangan kode Julia dan dependensi terkait?

Aug 19 2020

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:

  1. Membuat kode di folder itu sendiri
  2. Membuat folder itu menjadi lingkungan Julia ( activate .dalam mode paket REPL)
  3. added paket yang saya gunakan

Apakah ini mengunci versi dependensi? Atau apakah saya perlu menambahkan [compat]entri ke Project.tomlfile secara manual ? Jika [compat]entri diperlukan, apakah ada cara untuk menyertakan entri itu secara otomatis saat membeli addpaket?

Apakah ada pendekatan keseluruhan untuk memastikan keterkaitan?

Jawaban

5 KristofferCarlsson Aug 19 2020 at 18:42

Apakah ini mengunci versi dependensi?

Jika Anda berkomitmen Project.tomldan Manifest.tomlkemudian seseorang dapat menggandakan repo, aktifkan proyek itu dan lakukan import Pkg; Pkg.instantiate()untuk mengunduh versi yang sama persis seperti yang tercatat di manifes.

3 fredrikekre Aug 19 2020 at 18:42

Apakah ini mengunci versi dependensi?

Ya, dalam arti bahwa versi persisnya dicatat dalam Manifest.tomlfile tersebut selama file tersebut tidak dimodifikasi, maka terkunci.

Atau apakah saya perlu menambahkan [compat]entri ke Project.tomlfile 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 Xversi 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.