Dune adalah sistem build untuk OCaml. Ini memberikan pengalaman yang konsisten dan menangani detail kompilasi OCaml tingkat rendah. Anda hanya perlu memberikan deskripsi proyek Anda, dan Dune akan melakukan sisanya.
Dune mengimplementasikan skema yang terinspirasi dari skema yang digunakan di Jane Street dan disesuaikan dengan dunia open source. Ini telah matang dalam waktu yang lama dan digunakan setiap hari oleh ratusan pengembang, yang berarti sangat teruji dan produktif.
Dune dilengkapi dengan manual. Jika Anda ingin memulai tanpa membaca terlalu banyak, lihat panduan memulai cepat atau tonton video pengenalan ini.
Direktori contoh berisi contoh proyek yang menggunakan Dune.
Dune membaca metadata proyek dari file dune
, yang merupakan file statis dengan sintaks ekspresi S sederhana. Ia menggunakan informasi ini untuk menyiapkan aturan pembangunan, menghasilkan file konfigurasi untuk alat pengembangan seperti Merlin, menangani instalasi, dll.
Dune sendiri cepat, memiliki overhead yang sangat sedikit, dan mendukung pembangunan paralel di semua platform. Ia tidak memiliki ketergantungan sistem. OCaml adalah semua yang Anda perlukan untuk membangun Dune dan mengemasnya menggunakan Dune.
Secara khusus, seseorang dapat menginstal OCaml di Windows dengan penginstal biner dan kemudian hanya menggunakan Konsol Windows untuk membangun Dune dan paket menggunakan Dune.
Dune dapat dikomposisi, artinya beberapa proyek Dune dapat diatur bersama-sama, sehingga menghasilkan satu build yang Dune tahu cara mengeksekusinya. Hal ini memungkinkan adanya monorepos proyek.
Dune membuat pengembangan simultan pada beberapa paket menjadi tugas yang sepele.
Dune tahu cara menangani repositori yang berisi beberapa paket. Saat membangun melalui opam, ia dapat menggunakan perpustakaan yang telah diinstal sebelumnya dengan benar, meskipun perpustakaan tersebut sudah ada di pohon sumber.
Doa ajaibnya adalah:
$ dune build --only-packages < package-name > @install
Dune dapat membangun repositori kode sumber tertentu terhadap beberapa konfigurasi secara bersamaan. Hal ini membantu menjaga paket di beberapa versi OCaml, karena Anda dapat menguji semuanya sekaligus tanpa kerumitan.
Secara khusus, ini memudahkan penanganan kompilasi silang. Fitur ini memerlukan opam.
Dune memerlukan OCaml versi 4.08.0 untuk membangun dirinya sendiri dan dapat membangun proyek OCaml menggunakan OCaml 4.02.3 atau lebih tinggi.
Kami merekomendasikan menginstal Dune melalui manajer paket opam:
$ opam install dune
Jika Anda baru mengenal opam, pastikan untuk menjalankan eval $(opam config env)
agar dune
tersedia di PATH
Anda. Biner dune
bersifat mandiri dan dapat dipindahkan, sehingga Anda dapat menyalinnya dengan aman ke tempat lain agar tersedia secara permanen.
Anda juga dapat membuatnya secara manual dengan:
$ make release
$ make install
Jika Anda tidak memiliki make
, Anda dapat melakukan hal berikut:
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
Perintah pertama membangun biner dune.exe
. Yang kedua membangun file tambahan yang diinstal oleh Dune, seperti halaman manual , dan yang terakhir hanya menginstal semua itu pada sistem.
Harap dicatat : kecuali Anda menjalankan skrip ./configure
opsional, Anda cukup menyalin dune.exe
di mana saja dan itu akan berfungsi. dune
sepenuhnya dapat direlokasi dan menemukan lingkungannya pada saat runtime daripada melakukan hardcoding pada waktu kompilasi.
Jika Anda memiliki pertanyaan atau masalah tentang Dune, Anda dapat bertanya di halaman diskusi GitHub kami atau membuka tiket di GitHub.