Dune 1.9.0

On behalf of the dune team, I'm pleased to announce the release of Dune 1.9.0. This release introduces a few exciting new features:

  • A tagging mechanism for implementations called variants
  • The ability to build libraries in the Coq proof assistant.
  • A new dune init command to help users quickly generate boilerplate and get start with dune projects (contributed by @shonfeder)

I would like to thank Lucas Pluvinage and @ejgallego for contributing the first two features respectively. They've also collaborated on a blog post to describe these features in detail.

See full changelog
  • Warn when generated .merlin does not reflect the preprocessing specification. This occurs when multiple stanzas in the same directory use different preprocessing specifications. This warning can now be disabled with allow_approx_merlin (#1947, fix #1946, @rgrinberg)

  • Watch mode: display "Success" in green and "Had errors" in red (#1956, @emillon)

  • Fix glob dependencies on installed directories (#1965, @rgrinberg)

  • Add support for library variants and default implementations. (#1900, @TheLortex)

  • Add experimental $ dune init command. This command is used to create or update project boilerplate. (#1448, fixes #159, @shonfeder)

  • Experimental Coq support (fix #1466, @ejgallego)

  • Install .cmi files of private modules in a .private directory (#1983, fix #1973 @rgrinberg)

  • Fix dune subst attempting to substitute on directories. (#2000, fix #1997, @rgrinberg)

  • Do not list private modules in the generated index. (#2009, fix #2008, @rgrinberg)

  • Warn instead of failing if an opam file fails to parse. This opam file can still be used to define scope. (#2023, @rgrinberg)

  • Do not crash if unable to read a directory when traversing to find root (#2024, @rgrinberg)

  • Do not exit dune if some source directories are unreadable. Instead, warn the user that such directories need to be ignored (#2004, fix #310, @rgrinberg)

  • Fix nested (binaries ..) fields in the env stanza. Previously, parent binaries fields would be ignored, but instead they should be combined. (#2029, @rgrinberg)

  • Allow "." in c_names and cxx_names (#2036, fix #2033, @rgrinberg)

  • Format rules: if a dune file uses OCaml syntax, do not format it. (#2014, fix #2012, @emillon)