On behalf of the dune team, I’m pleased to announce the 1.10.0 release of dune. This release is packed with bug fixes, but it also introduces a few interesting features. I’ll highlight one important feature that we’ve introduced and plan to improve in future versions:

Dune allows you to specify package metadata in the dune project file and generate an appropriate opam file. This is advantageous to writing opam files manually as dune will correctly fill in some boilerplate such as the build command:

Here’s a snippet from dune’s own project file as a demonstration:

(generate_opam_files true) ;; necessary to enbale the generation (license MIT) (maintainers "Jane Street Group, LLC <opensource@janestreet.com>") (authors "Jane Street Group, LLC <opensource@janestreet.com>") (source (github ocaml/dune)) (documentation "https://dune.readthedocs.io/") (package (name dune) (depends (ocaml (>= 4.02)) base-unix base-threads) (conflicts (jbuilder (<> "transition")) (odoc (< 1.3.0)) (dune-release (< 1.3.0))) (synopsis "Fast, portable and opinionated build system") (description "<redacted>"))

Generating the opam file is done via $ dune build @check (the @install , and @all aliases will also work).

Later, we plan to have dune do some sanity checks on the depends field. In the more distant future, we might even skip the generation step altogether by having opam invoke dune to get the generated opam file directly.

As usual, the change log is replicated here for your convenience:

1.10.0 (04/06/2019)