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 upgrade
subcommand to help you upgrade dune files from 1.x to 2.x -
$ dune utop
will 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
--release
option meaning the same as-p
but without the package filtering. This is useful for customdune
invocation in opam files where we don't want-p
(#3260, @jeremiedimino) -
Fix a bug introduced in 2.4.0 causing
.bc
programs to be built with-custom
by 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-project
will 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_if
field. Installation will now simply skip such executables instead of raising an error. (#3195, @voodoos) -
dune upgrade
will now try to upgrade projects using versions <2.0 to version 2.0 of the dune language. (#3174, @voodoos) -
Add a
top
command to integrate dune with any toplevel, not just utop. It is meant to be used with the new#use_output
directive of OCaml 4.11 (#2952, @mbernat, @jeremiedimino) -
Allow per-package
version
in generatedopam
files (#3287, @toots) -
[coq] Introduce the
coq.extraction
stanza. 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_if
field of the library stanza. (#3344, @mrmr1993) -
Allow the use of
%{ocaml_version}
variable inenabled_if
field of the library stanza. (#3339, @voodoos) -
Fix dune build freezing on MacOS when cache is enabled. (#3249, fixes ##2973, @artempyanykh)