Dune 3.2.0
On behalf of the dune team, I'm pleased to announce the availability of version 3.2.0. This release contains few new features, but is packed with bug fixes and usability improvements. In particular, I'd like to point out that we've continued to improve the user experience with the watch mode. I encourage you all to try it out if you haven't already.
Happy Hacking.
See full changelog
-
Fixed
dune describe workspace --with-deps
so that it correctly handles Reason files, as well as files any other dialect. (#5701, @esope) -
Disable alerts when compiling code in vendored directories (#5683, @NathanReb)
-
Fixed
dune describe --with-deps
, that crashed when some preprocessing was required in a dune file usingper_module
. (#5682, fixes #5680, @esope) -
Add
$ dune describe pp
to print the preprocssed ast of sources. (#5615, fixes #4470, @cannorin) -
Report dune file evaluation errors concurrently. In the same way we report build errors. (#5655, @rgrinberg)
-
Watch mode now default to clearing the terminal on rebuild (#5636, fixes, #5216, @rgrinberg)
-
The output of jobs that finished but were cancelled is now omitted. (#5631, fixes #5482, @rgrinberg)
-
Allows to configure all the default destination directories with
./configure
(addsbin
,sbin
,data
,libexec
). UseOPAM_SWITCH_PREFIX
instead of calling theopam
binaries indune install
. Fix handling of multiplelibdir
in./configure
for handling/usr/lib/ocaml/
and/usr/local/lib/ocaml
. Indune install
forbid relative directories inlibdir
,docdir
and others specific directory setting because their handling was inconsistent (#5516, fixes #3978 and #5455, @bobot) -
--terminal-persistence=clear-on-rebuild
will no longer destroy scrollback on some terminals (#5646, @rgrinberg) -
Add a fmt command as a shortcut of
dune build @fmt --auto-promote
(#5574, @tmattio) -
Watch mode now tracks copied external files, external directories for dependencies, dune files in OCaml syntax, files used by
include
stanzas, dune-project, opam files, libraries builtin with compiler, and foreign sources (#5627, #5645, #5652, #5656, #5672, #5691, #5722, fixes #5331, @rgrinberg) -
Improve metrics for cram tests. Include test names in the event and add a category for cram tests (#5626, @rgrinberg)
-
Allow specifying multiple licenses in project file (#5579, fixes #5574, @liyishuai)
-
Match
glob_files
only against files in external directories (#5614, fixes #5540, @rgrinberg) -
Add pid's to chrome trace output (#5617, @rgrinberg)
-
Fix race when creating local cache directory (#5613, fixes #5461, @rgrinberg)
-
Add
not
to boolean expressions (#5610, fix #5503, @rgrinberg) -
Fix relative dependencies outside the workspace (#4035, fixes #5572, @bobot)
-
Allow to specify
--prefix
via the environment variableDUNE_INSTALL_PREFIX
(#5589, @vapourismo) -
Dune-site.plugin: add support for
archive(native|byte, plugin)
used in the wild before findlib documentedplugin(native|byte)
in 2015 (#5518, @bobot) -
Fix a bug where Dune would not correctly interpret
META
files in alternative layout (ie when the META file is namedMETA.$pkg
). TheLlvm
bindings were affected by this issue. (#5619, fixes #5616, @nojb) -
Support
(binaries)
in(env)
in dune-workspace files (#5560, fix #5555, @emillon) -
(mdx) stanza: add support for (locks). (#5628, fixes #5489, @emillon)
-
(mdx) stanza: support including files in different directories using relative paths, and provide better error messages when paths are invalid (#5703, #5704, fixes #5596, @emillon)
-
Fix ctypes rules for external lib names which aren't valid ocaml names (#5667, fixes #5511, @Khady)