Dune 1.6.0

The dune team is pleased to announce the release of Dune 1.6.0. This release does not contain any notable features or bug fixes that need to be specifically pointed out. Nevertheless, I expect that this will be a quality of life improvement to power users who have experienced dune's sharper corners.

Happy hacking!

See full changelog
  • Expand variables in install stanzas (#1354, @mseri)

  • Add predicate language support for specifying sub directories. This allows the use globs, set operations, and special values in specifying the sub directories used for the build. For example: (dirs :standard \ lib*) will use all directories except those that start with lib. (#1517, #1568, @rgrinberg)

  • Add binaries field to the (env ..) stanza. This field sets and overrides binaries for rules defined in a directory. (#1521, @rgrinberg)

  • Fix a crash caused by using an extension in a project without dune-project file (#1535, fix #1529, @jeremiedimino)

  • Allow %{bin:..}, %{exe:..}, and other static expansions in the deps field. (#1155, fix #1531, @rgrinberg)

  • Fix bad interaction between on-demand ppx rewriters and using multiple build contexts (#1545, @jeremiedimino)

  • Fix handling of installed .dune files when the backend is declared via a dune file (#1551, fixes #1549, @jeremiedimino)

  • Add a --stats command line option to record resource usage (#1543, @jeremiedimino)

  • Fix dune build @doc deleting highlight.pack.js on rebuilds, after the first build (#1557, @aantron).

  • Allow targets to be directories, which Dune will treat opaquely (#1547, @jordwalke)

  • Support for OCaml 4.08: List.t is now provided by OCaml (#1561, @ejgallego)

  • Exclude the local esy directory (_esy) from the list of watched directories (#1578, @andreypopp)

  • Fix the output of dune external-lib-deps (#1594, @jeremiedimino)

  • Introduce data_only_dirs to replace ignored_subdirs. ignored_subdirs is deprecated since 1.6. (#1590, @rgrinberg)

  • Add dune external-lib-deps --sexp --unstable-by-dir so that the output can be easily processed by a machine (#1599, @jeremiedimino)