Dune 1.0.0

It is my pleasure to announce the 1.0.0 release of Dune!

Dune is a built system for OCaml and Reason projects. It aims at building things fast and providing a smooth user experience.

Dune 1.0.0 is now available on github and in opam.

This is a big milestone for the project as it is the first release using the new Dune name that the community helped to choose. Dune started about a year and a half ago as the more narrow scoped Jbuilder and as since then proven itself to be the right tool for the job.

A big part of the work for this release was preparing the project for long-term support. Dune is the kind of project that will pretty much continue to evolve forever: it needs to keep up with the OCaml compiler evolving, development workflows changing, new kinds of tools with specific needs, etc... While doing so, it also needs to offer stability so that projects released now will continue to build with future versions of Dune.

Meeting these two constraints is a challenge. However, we had to do this for the renaming: we changed many things in Dune using what we learned from the Jbuilder experience. Still, Dune is able to understand and build Jbuilder projects. The mechanism used to support both Jbuilder and Dune projects is fully generic and will be the basis for future evolution.

You can find the full list of changes and bug fixes since Jbuilder 1.0+beta20 on the github release page. Following is an overview of some the new features:

  • General cleanup of the syntax: less parentheses, better behaved variables

  • Introduction of a dune.configurator library to help projects with C stubs detect and query the environment

  • General improvement of the default behavior: more parallelism by default, development mode by default

  • Better support for changing the defaults: it is now possible to set the default flags or change what dune build does by default

  • Support for setting the build directory

  • Better support for expectation tests on Windows