[new release] dune (15 packages) (3.11.0)
CHANGES:
- `enabled_if` now supports `arch_sixtyfour` variable (ocaml/dune#8023, fixes ocaml/dune#7997,
@Alizter)
- Use `posix_spawn` instead of `fork` on MacOS. This gives us a performance
boost and allows us to re-enable thread. (ocaml/dune#8090, @rgrinberg)
- Experimental: Added a `$ dune monitor` command that can connect to a running
`dune build` in watch mode and display the errors and progress. (ocaml/dune#8152,
@Alizter)
- The `progress` RPC procedure now has an extra field for the `In_progress`
constructor for the number of failed jobs. (ocaml/dune#8212, @Alizter)
- Add a `--preview` flag to `dune fmt` which causes it to print out the changes
it would make without applying them (ocaml/dune#8289, @gridbugs)
- Introduce `(source_trees ..)` to the install stanza to allow installing
entire source trees. (ocaml/dune#8349, @rgrinberg)
- Add `--stop-on-first-error` option to `dune build` which will terminate the
build when the first error is encountered. (ocaml/dune#8400, @pmwhite and @Alizter)
- Dune now displays the number of errors when waiting for changes in watch
mode. (ocaml/dune#8408, fixes ocaml/dune#6889, @Alizter)
- Add `with_prefix` keyword for changing the prefix of the destination of
installed files matched by globs. (ocaml/dune#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. (ocaml/dune#8429, @Alizter and
@rgrinberg)
- Add a `warnings` field to `dune-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 like `dune exec time %{bin:program}` now work.
(ocaml/dune#6035, ocaml/dune#8474, fixes ocaml/dune#2691, @emillon, @Leonidas-from-XIV)
- Make copy sandbox support directory targets. (ocaml/dune#8705, fixes ocaml/dune#7724, @emillon)
- Add a new alias `@doc-json` to build odoc documentation in JSON format. This
output can be consumed by external tools. (ocaml/dune#8178, @emillon)
- Modules that were declared in `(modules_without_implementation)`,
`(private_modules)` or `(virtual_modules)` but not declared in `(modules)`
will raise an error. (ocaml/dune#7674, @Alizter)
- No longer emit linkopts(javascript) in META files (ocaml/dune#8168, @hhugo)
- Deprecate install destination paths beginning with ".." to prevent packages
escaping their designated installation directories. (ocaml/dune#8350, @gridbugs)
- RPC message styles are now serialised meaning that RPC diagnostics keep their
Ansi styling. (ocaml/dune#8516, fixes ocaml/dune#6921, @Alizter)
- Truncate output from actions that produce too much output (@tov, ocaml/dune#8351)
- Allow libraries to shadow OCaml builtin libraries. Previously, builtin
libraries would always take precedence. (@rgrinberg, ocaml/dune#8558)
- Remove warning against `.dune` files generated by pre dune 2.0 (ocaml/dune#8611,
@rgrinberg)
- `dune utop` no longer links `utop` in "custom" mode, which should make this
command considerably faster. (ocaml/dune#8631, fixes ocaml/dune#6894, @nojb)
- Ensure that package names in `dune-project` are valid opam package names.
(ocaml/dune#8331, @emillon)
- init: check that module names are valid (ocaml/dune#8644, fixes ocaml/dune#8252, @emillon)
- dune init: parse `--public` as a public name (ocaml/dune#8603, fixes ocaml/dune#7108, @emillon)
- Stop signing source files with substitutions. Sign only binaries instead
(ocaml/dune#8361, fixes ocaml/dune#8360, @anmonteiro)
- Remove versions 0.1 and 0.2 of the experimental ctypes extension. (ocaml/dune#8293,
@emillon)