🏗️ This page is under heavy development. It may change or be broken at any moment until it is stable.
The Dune Developer Preview is an experimental nightly release of Dune that lets you develop, test, run, and manage dependencies for OCaml projects – all with just Dune - following the OCaml Platform Roadmap.
If you wish to install the binary distribution manually, please follow the manual installation instructions.
You can create and run your first hello-world program using Dune like this:
$ dune init proj hello_world $ cd hello_world $ dune pkg lock $ dune exec hello_world
For more information on Dune and Package Management, check the latest dune docs.
We are excited to learn from your experience with the Dune Developer Preview, so feel encouraged to tell us what you think:
No. For a stable release of OCaml, please follow the installation guide on OCaml.org. The Developer Preview is an unstable distribution of Dune and, by nature, will always be unstable. However, its features will stabilise over time and move to a stable release of Dune. If you use the Developer Preview, expect bugs and please report them to ocaml/dune
No, not yet. Watch this space for news!
Yes. the only difference from a regular build from source is in a few configuration flags. Please look in the Dune repository for complete instructions on how to do a source build of Dune.
When configuring the build you'll want to enable the following flags:
--enable-toolchains --enable-pkg-build-progress --enable-lock-dev-tool
Yes, but we can't guarantee they will work correctly since the Dune Developer Preview makes some assumptions for package management that aren't supported by opam.
To enable these features make sure you are pinning dune to the development version, and export the following environment variables:
$ opam pin add dune --dev $ export DUNE_CONFIG__TOOLCHAINS=enabled $ export DUNE_CONFIG__PKG_BUILD_PROGRESS=enabled $ export DUNE_CONFIG__LOCK_DEV_TOOL=enabled
In this section you'll find instructions to manually install the Dune Developer Preview, and verify the installation. This is recommended for advanced users, or if you want so understand where the binaries come from.
This is the latest release of the Dune Developer Preview. See the release history section for all past releases.
macOS 11 or later for Apple Sillicon processors
macOS 11 or later for Intel processors
Linux for Intel 64-bit processors
After downloading a binary release of Dune, make it executable and place it somewhere reachable by your PATH:
$ chmod u+x ./dune $ sudo mv ./dune /usr/local/bin/duneYou can verify your installation by running:
$ dune --version "Dune Developer Preview: build , git revision cc260345db57ab639db6363b2dc89072a1492832"
To ensure trust in the binary distribution, we generate a build certificate associated with the Github Actions pipeline where the binaries are built. Once you download this certificate, you can use the gh
tool to verify it with the following command:
$ gh attestation verify ./dune -R ocaml-dune/binary-distribution --bundle attestation.jsonl
Here is a list of the 10 releases of the Dune Developer Preview so far.
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 5c752b8a149ab106462011e2b275185e52ec4e73 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 5c752b8a149ab106462011e2b275185e52ec4e73 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 5c752b8a149ab106462011e2b275185e52ec4e73 | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 5286edcb988ae31b7da01a4a8592e8aac142139b | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 5286edcb988ae31b7da01a4a8592e8aac142139b | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 5286edcb988ae31b7da01a4a8592e8aac142139b | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 57f435d02f2c01568fea9c3a7b11f74642a33322 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 57f435d02f2c01568fea9c3a7b11f74642a33322 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 57f435d02f2c01568fea9c3a7b11f74642a33322 | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 8ff0a8998cec369c2e37fb17b08b84da0872bf0c | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 8ff0a8998cec369c2e37fb17b08b84da0872bf0c | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 8ff0a8998cec369c2e37fb17b08b84da0872bf0c | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 451e5b4463c4fe5b4f5427c0a40a5962c38ccc0f | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 451e5b4463c4fe5b4f5427c0a40a5962c38ccc0f | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 451e5b4463c4fe5b4f5427c0a40a5962c38ccc0f | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 63fac22cfeabeb665f714361f8da1dcd7281f300 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 63fac22cfeabeb665f714361f8da1dcd7281f300 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 63fac22cfeabeb665f714361f8da1dcd7281f300 | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 9f3cda70d29982105171e1435bf4caafce07866d | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 9f3cda70d29982105171e1435bf4caafce07866d | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 9f3cda70d29982105171e1435bf4caafce07866d | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 71db2d47fad82865c8035ef3553e0136cb08e337 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 71db2d47fad82865c8035ef3553e0136cb08e337 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 71db2d47fad82865c8035ef3553e0136cb08e337 | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |
File name | OS | Arch | Commit | Certificate |
---|---|---|---|---|
dune-aarch64-apple-darwin | macOS | aarch64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |
dune-x86_64-apple-darwin | macOS | x86-64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |
dune-x86_64-unknown-linux-musl | Linux | x86-64 | 17071ec30d10390badcb6cb1f6a43984b1be54a6 | Certificate |