The Dune team is pleased to announce the release of Dune 3.11 “for workgroups”.
Here is the changelog:
Added
-
enabled_ifnow supportsarch_sixtyfourvariable (#8023, fixes #7997,
@Alizter) -
Experimental: Added a
$ dune monitorcommand that can connect to a running
dune buildin watch mode and display the errors and progress. (#8152,
@Alizter) -
The
progressRPC procedure now has an extra field for theIn_progress
constructor for the number of failed jobs. (#8212, @Alizter) -
Add a
--previewflag todune fmtwhich causes it to print out the changes
it would make without applying them (#8289, @gridbugs) -
Introduce
(source_trees ..)to the install stanza to allow installing
entire source trees. (#8349, @rgrinberg) -
Add
--stop-on-first-erroroption todune buildwhich will terminate the
build when the first error is encountered. (#8400, @pmwhite and @Alizter) -
Dune now displays the number of errors when waiting for changes in watch
mode. (#8408, fixes #6889, @Alizter) -
Add
with_prefixkeyword for changing the prefix of the destination of
installed files matched by globs. (#8416, @gridbugs) -
Added experimental
--display tuioption for Dune that opens an interactive
Terminal User Interface (TUI) when Dune is running. Press ‘?’ to open up a
help screen when running for more information. (#8429, @Alizter and
@rgrinberg) -
Add a
warningsfield todune-projectfiles as a unified mechanism to
enable or disable dune warnings (@rgrinberg, 8448) -
dune exec: support syntax like%{bin:program}. This can appear anywhere
in the command line, so things likedune exec time %{bin:program}now work.
(#6035, #8474, fixes #2691, @emillon, @Leonidas-from-XIV) -
Add a new alias
@doc-jsonto build odoc documentation in JSON format. This
output can be consumed by external tools. (#8178, @emillon)
Changed and fixed
-
Use
posix_spawninstead offorkon MacOS. This gives us a performance
boost and allows us to re-enable thread. (#8090, @rgrinberg) -
Modules that were declared in
(modules_without_implementation),
(private_modules)or(virtual_modules)but not declared in(modules)
will raise an error. (#7674, @Alizter) -
No longer emit linkopts(javascript) in META files (#8168, @hhugo)
-
RPC message styles are now serialised meaning that RPC diagnostics keep their
Ansi styling. (#8516, fixes #6921, @Alizter) -
Truncate output from actions that produce too much output (@tov, #8351)
-
Allow libraries to shadow OCaml builtin libraries. Previously, builtin
libraries would always take precedence. (@rgrinberg, #8558) -
dune utopno longer linksutopin “custom” mode, which should make this
command considerably faster. (#8631, fixes #6894, @nojb) -
Ensure that package names in
dune-projectare valid opam package names.
(#8331, @emillon) -
init: check that module names are valid (#8644, fixes #8252, @emillon)
-
dune init: parse
--publicas a public name (#8603, fixes #7108, @emillon) -
Stop signing source files with substitutions. Sign only binaries instead
(#8361, fixes #8360, @anmonteiro) -
Make copy sandbox support directory targets. (#8705, fixes #7724, @emillon)
Deprecated and removed
-
Deprecate install destination paths beginning with “..” to prevent packages
escaping their designated installation directories. (#8350, @gridbugs) -
Remove warning against
.dunefiles generated by pre dune 2.0 (#8611,
@rgrinberg) -
Remove versions 0.1 and 0.2 of the experimental ctypes extension. (#8293,
@emillon)