Dune 2.5.0
The dune team is pleased to announce the release of dune 2.5.0. This release has been brewing for a while and contains a few interesting features. I'll highlight some of the bigger ones:
- 
The coq support has been thoroughly extended. There's now support for both composition of coq libraries in the same workspace and extraction of coq code to OCaml.
 - 
There's a new
$ dune upgradesubcommand to help you upgrade dune files from 1.x to 2.x - 
$ dune utopwill now load ppx preprocessors to the toplevel. Ppx authors might enjoy this style of interactive development. - 
There's a new
(subdir ..)stanza that can be used to evaluate stanzas in sub directories. This makes it possible to have a single dune file for an entire project (generated or not). 
I'd like to thank everyone who contributed to dune 2.5.0. Your help is greatly appreciated.
See full changelog
- 
Add a
--releaseoption meaning the same as-pbut without the package filtering. This is useful for customduneinvocation in opam files where we don't want-p(#3260, @jeremiedimino) - 
Fix a bug introduced in 2.4.0 causing
.bcprograms to be built with-customby default (#3269, fixes #3262, @jeremiedimino) - 
Allow contexts to be defined with local switches in workspace files (#3265, fix #3264, @rgrinberg)
 - 
Delay expansion errors until the rule is used to build something (#3261, fix #3252, @rgrinberg, @jeremiedimino)
 - 
[coq] Support for theory dependencies and compositional builds using new field
(theories ...)(#2053, @ejgallego, @rgrinberg) - 
From now on, each version of a syntax extension must be explicitely tied to a minimum version of the dune language. Inconsistent versions in a
dune-projectwill trigger a warning for version <=2.4 and an error for versions >2.4 of the dune language. (#3270, fixes #2957, @voodoos) - 
[coq] Bump coq lang version to 0.2. New coq features presented this release require this version of the coq lang. (#3283, @ejgallego)
 - 
Prevent installation of public executables disabled using the
enabled_iffield. Installation will now simply skip such executables instead of raising an error. (#3195, @voodoos) - 
dune upgradewill now try to upgrade projects using versions <2.0 to version 2.0 of the dune language. (#3174, @voodoos) - 
Add a
topcommand to integrate dune with any toplevel, not just utop. It is meant to be used with the new#use_outputdirective of OCaml 4.11 (#2952, @mbernat, @jeremiedimino) - 
Allow per-package
versionin generatedopamfiles (#3287, @toots) - 
[coq] Introduce the
coq.extractionstanza. It can be used to extract OCaml sources (#3299, fixes #2178, @rgrinberg) - 
Load ppx rewriters in dune utop and add pps field to toplevel stanza. Ppx extensions will now be usable in the toplevel (#3266, fixes #346, @stephanieyou)
 - 
Add a
(subdir ..)stanza to allow evaluating stanzas in sub directories. (#3268, @rgrinberg) - 
Fix a bug preventing one from running inline tests in multiple modes (#3352, @jeremiedimino)
 - 
Allow the use of the
%{profile}variable in theenabled_iffield of the library stanza. (#3344, @mrmr1993) - 
Allow the use of
%{ocaml_version}variable inenabled_iffield of the library stanza. (#3339, @voodoos) - 
Fix dune build freezing on MacOS when cache is enabled. (#3249, fixes ##2973, @artempyanykh)