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"
uuidsingkatan 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.versionbiasanya 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.tomljuga 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.tomlhanyanameDanuuidbidang agar Julia mengenali paket tersebut. Jika tidakversionbidang, Julia menganggap versinya seperti ituv0.0.0.- Namun,
versionDanauthorsbidang diperlukan untuk pendaftaran paket.
- Namun,
- Nama direktori root paket tidak menjadi masalah, artinya belum tentu cocok dengan nama paket. Namun,
namelapangan diProject.tomlharus cocok dengan nama modul yang ditentukansrc/PracticePackage.jldan nama file darisrc/PracticePackage.jljuga harus sesuai.- Misalnya kita bisa mengubah nama pengaturan paket
name = "Oops"DI DALAMProject.tomlganti namasrc/PracticePackage.jlTIBAsrc/Oops.jldan menentukanmodule Oopsdalam file itu. Kita tidak perlu mengganti nama direktori root dari paket WordPracticePackageTIBAOops(walaupun sebaiknya menghindari kebingungan).
- Misalnya kita bisa mengubah nama pengaturan paket
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.tomlsudah diisi sebelumnya dengan bidang dan nilai yang benar, termasuk UUID yang dibuat secara otomatis. Saat aku berlarigeneratedi komputer saya itu juga sudah terisi sebelumnyaauthorsbidang dengan nama saya dan email dari saya~/.gitconfigdokumen. src/PracticePackage.jlsudah diisi sebelumnya dengan definisi modulPracticePackage.Ini juga mendefinisikan suatu fungsigreetdalam 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.

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.

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:
- Tulis/uji kode paket.
- Memperbarui
versionlapangan diProject.toml(misalnya, ke"0.1.0"atau"1.0.0"untuk versi berlangganan pertama). - 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:
]]>
Terkait
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