Cara membuat paket Julia dari awal

 – Beragampengetahuan
9 mins read

Cara membuat paket Julia dari awal – Beragampengetahuan

Oleh: Konsultasi Great Lakes

Diposting ulang dari:

Artikel ini ditulis oleh Steven Whitaker.

Bahasa pemrograman Julia adalah bahasa tingkat tinggi yang dikenal, setidaknya sebagian, karena manajer paketnya yang sangat baik dan kemampuan komposisinya yang luar biasa. (Lihat postingan blog lain yang mengilustrasikan kombinasi kemungkinan ini.)

Julia memudahkan siapa saja untuk membuat paketnya sendiri. Manajer paket Julia memungkinkan pengembangan dan pengujian paket dengan mudah. Kemudahan pengembangan paket mendorong pengembang untuk membagi segmen kode yang dapat digunakan kembali menjadi paket individual, sehingga semakin meningkatkan kemampuan komposisi Julia.

Dalam posting ini, kita akan mempelajari apa saja yang termasuk dalam paket Julia. Kami juga akan membahas alat yang mengotomatiskan pembuatan paket. Terakhir, kita akan membahas dasar-dasar pengembangan paket dan menunjukkan cara mempublikasikan (mendaftarkan) sebuah paket agar dapat digunakan orang lain.

Posting ini mengasumsikan bahwa Anda merasa nyaman menavigasi REPL Julia. Jika Anda memerlukan penyegaran, lihat postingan kami di REPL Julia.

Paket-paketnya cukup mudah digunakan: cukup instal saja add PkgName di prompt paket lalu jalankan using PkgName sesuai perintah Julia. Tapi apa sebenarnya yang ada di dalam sebuah paket?

Paket harus mengikuti struktur direktori tertentu dan menyertakan informasi tertentu agar dapat dikenali sebagai paket oleh Julia.

Katakanlah kita membuat sebuah paket bernama PracticePackage.jl. Pertama kita buat folder bernama PracticePackage.Folder ini adalah paket root. Di direktori root kita memerlukan file bernama Project.tomldan folder lain bernama src.

itu Project.toml meminta informasi berikut:

name = "PracticePackage"uuid = "11111111-2222-3333-aaaa-bbbbbbbbbbbb"authors = ["Your Name <youremail@email.com>"]version = "0.1.0"
  • uuid singkatan dari pengenal unik global dan dapat dibuat di Julia denganusing UUIDs; uuid4().Tujuan UUID adalah untuk memungkinkan paket berbeda dengan nama yang sama untuk hidup berdampingan.
  • version biasanya harus disetel ke versi apa pun yang sesuai untuk paket Anda "0.1.0" atau "1.0.0" untuk rilis pertama. Versi paket Julia mematuhi SemVer.
  • itu Project.toml juga akan menyertakan informasi tentang dependensi paket, namun akan dibahas lebih lanjut nanti.

itu src direktori memerlukan nama file Julia PracticePackage.jlmendefinisikan modul bernama PracticePackage:

module PracticePackageend

Jadi struktur direktori paketnya terlihat seperti ini:

PracticePackage Project.toml src     PracticePackage.jl

Dan itu semua dalam satu paket! (Yah, setidaknya setidaknya.)

Contents

Beberapa teknik

Jangan ragu untuk melewati bagian ini, tetapi jika Anda penasaran tentang beberapa teknis yang terkait dengan apa yang dimaksud dengan paket yang valid, baca terus.

  • itu Project.toml hanya name Dan uuid bidang agar Julia mengenali paket tersebut. Jika tidak version bidang, Julia menganggap versinya seperti itu v0.0.0.
    • Namun, version Dan authors bidang diperlukan untuk pendaftaran paket.
  • Nama direktori root paket tidak menjadi masalah, artinya belum tentu cocok dengan nama paket. Namun, name lapangan di Project.tomlharus cocok dengan nama modul yang ditentukan src/PracticePackage.jldan nama file dari src/PracticePackage.jl juga harus sesuai.
    • Misalnya kita bisa mengubah nama pengaturan paket name = "Oops" DI DALAM Project.tomlganti nama src/PracticePackage.jl TIBA src/Oops.jldan menentukan module Oops dalam file itu. Kita tidak perlu mengganti nama direktori root dari paket Word PracticePackage TIBA Oops(walaupun sebaiknya menghindari kebingungan).

Struktur dasar sebuah paket cukup sederhana, jadi pasti ada cara untuk mengotomatiskannya bukan? (Maksud saya, siapa yang ingin membuat UUID secara manual?) Kabar baik: pembuatan paket dapat dilakukan secara otomatis!

Paket generate Meminta

Julia datang membawa satu generate perintah paket bawaan. Pertama, ubah direktori ke tempat direktori root paket berada, lalu jalankan generate di prompt paket Julia:

pkg> generate PracticePackage

Perintah ini membuat direktori root paket PracticePackageDan Project.toml Dan src/PracticePackage.jl mengajukan.Beberapa catatan:

  • itu Project.toml sudah diisi sebelumnya dengan bidang dan nilai yang benar, termasuk UUID yang dibuat secara otomatis. Saat aku berlari generate di komputer saya itu juga sudah terisi sebelumnya authors bidang dengan nama saya dan email dari saya ~/.gitconfig dokumen.
  • src/PracticePackage.jl sudah diisi sebelumnya dengan definisi modul PracticePackage.Ini juga mendefinisikan suatu fungsi greet dalam modul, tetapi biasanya Anda akan menggantinya dengan kode Anda sendiri.

PkgTemplates.jl

itu generate perintah berfungsi dengan baik, tetapi sangat sederhana. Misalnya, jika Anda berencana untuk menghosting paket Anda di GitHub, Anda mungkin ingin menyertakan Tindakan GitHub untuk integrasi berkelanjutan (CI), jadi alangkah baiknya untuk mengotomatiskan pembuatan paket yang sesuai. .yml file.Di sinilah PkgTemplates.jl muncul.

PkgTemplates.jl adalah paket Julia normal, jadi instal seperti biasa dan jalankan using PkgTemplates.Kemudian kita dapat membuat PracticePackage.jl:

t = Template(; dir = ".")t("PracticePackage")

Menjalankan kode ini akan membuat paket dengan struktur direktori berikut:

PracticePackage .git    .github    dependabot.yml    workflows        CI.yml        CompatHelper.yml        TagBot.yml .gitignore LICENSE Manifest.toml Project.toml README.md src    PracticePackage.jl test     runtests.jl

Seperti yang Anda lihat, PkgTemplates.jl secara otomatis menghasilkan banyak file yang mendukung praktik terbaik pengembangan paket berikut, seperti menambahkan CI dan pengujian.

Perhatikan bahwa beberapa opsi dapat diberikan Templateuntuk menyesuaikan file mana yang dibuat. Lihat dokumentasi PkgTemplates.jl untuk semua opsi.

Daftar periksa instalasi

Setelah paket Anda siap, langkah selanjutnya adalah menambahkan kode. Tambahkan fungsi, tipe, konstanta, dll. yang dibutuhkan paket Anda secara langsung PracticePackage modul dalam src/PracticePackage.jlatau tambahkan file tambahan src folder dan include mereka dalam modul. (Lihat posting blog sebelumnya untuk informasi lebih lanjut tentang modul, meskipun perlu diingat bahwa menggunakan modul secara langsung cara kerjanya sedikit berbeda dibandingkan menggunakan paket.)

Untuk menambahkan dependensi untuk digunakan oleh paket Anda, Anda perlu mengaktifkan lingkungan paket proyek Anda dan kemudian menambahkan paket-paket tersebut. Misalnya, jika Anda ingin paket Anda menggunakan paket DataFrames.jl, jalankan Julia dan navigasikan ke direktori root paket. Kemudian, aktifkan lingkungan paket dan tambahkan paket:

(@v1.X) pkg> activate .(PracticePackage) pkg> add DataFrames

Setelah ini, Anda akan dapat memasukkannya using DataFramesdalam kode paket Anda untuk mengaktifkan fungsionalitas yang disediakan oleh DataFrames.jl.

Tambahkan paket setelah mengaktifkan lingkungan paket edit paket Project.toml mengajukan. Itu menambahkan satu [deps] bagian mencantumkan paket tambahan dan UUIDnya. Dalam contoh di atas, menambahkan DataFrames.jlad akan menambahkan baris berikut Project.toml dokumen:

[deps]DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"

(Dan (PracticePackage) pkg> rm DataFrames akan menghapus DataFrames = ... baris ini, jadi sebaiknya jangan diedit [deps] bagian manual.)

Terakhir, untuk mencoba paket Anda, aktifkan lingkungan paket Anda (seperti di atas) lalu muat paket Anda seperti biasa:

julia> using PracticePackage 

Perhatikan bahwa secara default, Julia harus di-restart untuk memuat ulang setiap perubahan yang Anda buat pada kode paket Anda. Jika Anda ingin menghindari memulai ulang Julia setiap kali Anda melakukan perubahan, lihat Revise.jl.

Setelah paket Anda berfungsi dengan baik, wajar jika paket Anda dipublikasikan agar dapat digunakan orang lain.

Sebuah paket dapat diterbitkan dengan mendaftarkannya di registri paket, yang pada dasarnya adalah sebuah peta yang memberitahu manajer paket Julia di mana menemukan paket tersebut sehingga dapat diunduh.

Peta harta karun

Registri global adalah registri terbesar sekaligus registri default yang digunakan oleh Julia; Sebagian besar, jika tidak semua, paket open source paling populer (DataFrames.jl, Plots.jl, StaticArrays.jl, ModelingToolkit.jl, dll.) ada di General. Setelah sebuah paket didaftarkan secara Umum, paket tersebut dapat diinstal pkg> add PracticePackage.

(Perhatikan bahwa jika Anda tidak ingin berlangganan suatu paket karena alasan tertentu, paket tersebut dapat ditambahkan melalui URL, misalnya:pkg> add https://github.com/username/PracticePackage.jlasumsikan paket tersebut ada di repositori git publik. Namun, manajer paket memiliki kemampuan terbatas untuk mengelola paket yang ditambahkan dengan cara ini; khususnya, pengelolaan versi paket harus dilakukan secara manual.)

Cara paling umum untuk mendaftarkan paket di Generalis adalah dengan menggunakan Registrator.jl sebagai Aplikasi GitHub. Periksa README untuk petunjuk rinci, namun pada dasarnya prosesnya bermuara pada:

  1. Tulis/uji kode paket.
  2. Memperbarui version lapangan di Project.toml(misalnya, ke "0.1.0" atau "1.0.0" untuk versi berlangganan pertama).
  3. Tambahkan komentar dengan @JuliaRegistrator registerke komit terbaru yang diperlukan dalam versi paket yang terdaftar.

Perhatikan bahwa ada langkah-langkah tambahan untuk mempersiapkan paket untuk penerbitan yang belum kita bahas dalam posting ini (seperti menentukan versi Julia yang kompatibel dan dependensi paket). Silakan merujuk ke dokumentasi Joint Registry dan tautan di dalamnya untuk rinciannya.

Dalam postingan ini, kita membahas pembuatan paket Julia. Kita mempelajari apa saja yang termasuk dalam sebuah paket, cara mengotomatiskan pembuatan paket, dan cara mendaftarkan paket di registri umum Julia.

Apakah Anda punya tip pengembangan paket? Beri tahu kami di komentar di bawah!

Latar belakang foto sampul disediakan oleh www.proflowers.com di

Sumber foto peta harta karun:

]]>

Software Terbaru Saat Ini



Aplikasi yang sedang trend saat ini

object oriented programming, programming language, programming adalah, web programming, belajar programming, tournament software, software, software adalah, contoh software, apa itu software, pengertian software, aplikasi, aplikasi penghasil uang, aplikasi bokep, aplikasi video, programming

#Cara #membuat #paket #Julia #dari #awal

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *