The Dune team is pleased to announce the release of Dune 3.11 “for workgroups”.
Here is the changelog:
Added
-
enabled_if
now supportsarch_sixtyfour
variable (#8023, fixes #7997,
@Alizter) -
Experimental: Added a
$ dune monitor
command that can connect to a running
dune build
in watch mode and display the errors and progress. (#8152,
@Alizter) -
The
progress
RPC procedure now has an extra field for theIn_progress
constructor for the number of failed jobs. (#8212, @Alizter) -
Add a
--preview
flag todune fmt
which 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-error
option todune build
which 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_prefix
keyword for changing the prefix of the destination of
installed files matched by globs. (#8416, @gridbugs) -
Added experimental
--display tui
option 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
warnings
field todune-project
files 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-json
to build odoc documentation in JSON format. This
output can be consumed by external tools. (#8178, @emillon)
Changed and fixed
-
Use
posix_spawn
instead offork
on 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 utop
no longer linksutop
in “custom” mode, which should make this
command considerably faster. (#8631, fixes #6894, @nojb) -
Ensure that package names in
dune-project
are valid opam package names.
(#8331, @emillon) -
init: check that module names are valid (#8644, fixes #8252, @emillon)
-
dune init: parse
--public
as 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
.dune
files generated by pre dune 2.0 (#8611,
@rgrinberg) -
Remove versions 0.1 and 0.2 of the experimental ctypes extension. (#8293,
@emillon)