A composable build system for OCaml.
CHANGES:
Turn internal promote rules into fallback rules when
--ignore-promoted-rules
is set (#8518, #8706, fix #8417, fix #8703,
@rgrinberg, @emillon)
Make copy sandbox support directory targets. (#8705, fixes #7724, @emillon)
CHANGES:
init: check that module names are valid (#8644, fixes #8252, @emillon)
Add a new alias @doc-json
to build odoc documentation in JSON format. This
output can be consumed by external tools. (#8178, @emillon)
CHANGES:
Modules that were declared in (modules_without_implementation)
,
(private_modules)
or (virtual_modules)
but not declared in (modules)
will raise an error. (#7674, @Alizter)
enabled_if
now supports arch_sixtyfour
variable (#8023, fixes #7997,
@Alizter)- Use posix_spawn
instead of fork
on MacOS. This gives us a
performance boost and allows us to re-enable thread. (#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. (#8152,
@Alizter)
No longer emit linkopts(javascript) in META files (#8168, @hhugo)
The progress
RPC procedure now has an extra field for the In_progress
constructor for the number of failed jobs. (#8212, @Alizter)
Add a --preview
flag to dune 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)
Deprecate install destination paths beginning with ".." to prevent packages escaping their designated installation directories. (#8350, @gridbugs)
Stop signing source files with substitutions. Sign only binaries instead (#8361, fixes #8360, @anmonteiro)
Add --stop-on-first-error
option to dune 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 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.
(#6035, #8474, fixes #2691, @emillon, @Leonidas-from-XIV)
RPC message styles are now serialised meaning that RPC diagnostics keep their
Ansi styling. (#8516, fixes #6921, @Alizter)- Ignore internal promote rules
when --ignore-promoted-rules
is set (#8518, fix #8417, @rgrinberg)
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)
Remove warning against .dune
files generated by pre dune 2.0 (#8611,
@rgrinberg)
dune utop
no longer links utop
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)
dune init: parse --public
as a public name (#8603, fixes #7108, @emillon)
Remove versions 0.1 and 0.2 of the experimental ctypes extension. (#8293, @emillon)
CHANGES:
Add dune show rules
as alias of the dune rules
command. (#8000, @Alizter)
Fix %{deps}
to expand properly in (cat ...)
when containing 2 or more
items. (#8196, @Alizter)
Add dune show installed-libraries
as an alias of the dune installed-libraries
command. (#8135, @Alizter)
Fix the severity
of error messages sent over RPC which was missing. (#8193,
@Alizter)
Add dune build --dump-gc-stats FILE
argument to dump garbage collection
stats to a named file. (#8072, @Alizter)
Fix bug with ppx and Reason syntax due to missing dependency in sandboxed action (#7932, fixes #7930, @Alizter)
Add dune describe package-entries
to print all package entries (#7480,
@moyodiallo)
Improve dune describe external-lib-deps
by adding the internal dependencies
for more information. (#7478, @moyodiallo)
Re-enable background file digests on Windows. The files are now open in a way that prevents race condition around deletion. (#8262, fixes #8268, @emillon)
CHANGES:
sendfile
fallback (#8288, @alan-j-hu)CHANGES:
Add dune show rules
as alias of the dune rules
command. (#8000, @Alizter)
Fix %{deps}
to expand properly in (cat ...)
when containing 2 or more
items. (#8196, @Alizter)
Add dune show installed-libraries
as an alias of the dune installed-libraries
command. (#8135, @Alizter)
Fix the severity
of error messages sent over RPC which was missing. (#8193,
@Alizter)
Add dune build --dump-gc-stats FILE
argument to dump garbage collection
stats to a named file. (#8072, @Alizter)
Fix bug with ppx and Reason syntax due to missing dependency in sandboxed action (#7932, fixes #7930, @Alizter)
Add dune describe package-entries
to print all package entries (#7480,
@moyodiallo)
Improve dune describe external-lib-deps
by adding the internal dependencies
for more information. (#7478, @moyodiallo)
Re-enable background file digests on Windows. The files are now open in a way that prevents race condition around deletion. (#8262, fixes #8268, @emillon)
CHANGES:
Disable background digests on Windows. This prevents an issue where unremovable files would make dune crash when the shared cache is enabled. (#8243, fixes #8228, @emillon)
Fix permission errors when sendfile
is not available (#8234, fixes #8120,
@emillon)
CHANGES:
Disable background operations and threaded console on MacOS and other Unixes where we rely on fork. (#8100, #8121, fixes #8083, @rgrinberg, @emillon)
Initialize async IO thread lazily. (#8122, @emillon)
CHANGES:
Validate file extension for $ dune ocaml top-module
. (#8005, fixes #8004, @3Rafal)
Include the time it takes to read/write state files when --trace-file
is
enabled (#7960, @rgrinberg)
Add dune show
command group which is an alias of dune describe
. (#7946,
@Alizter)
Include source tree scans in the traces produced by --trace-file
(#7937,
@rgrinberg)
Cinaps: The promotion rules for cinaps would only offer one file at a time no matter how many promotions were available. Now we offer all the promotions at once (#7901, @rgrinberg)
Do not re-run OCaml syntax files on every iteration of the watch mode. This is too memory consuming. (#7894, fix #6900, @rgrinberg)
Add --all
option to dune rpc status
to show all Dune RPC servers running.
(#8011, fix #7902, @Alizter)
Remove some compatibility code for old version of dune that generated
.merlin
files. Now dune will never remove .merlin
files automatically
(#7562)
Add dune show env
command and make dune printenv
an alias of it. (#7985,
@Alizter)
Add additional metadata to the traces provided by --trace-file
whenever
--trace-extended
is passed (#7778, @rleshchinskiy)
Extensions used in (dialect)
can contain periods (e.g., cppo.ml
). (#7782,
fixes #7777, @nojb)
Allow (include_subdirs qualified)
to be used when libraries define a
(modules ...)
field (#7797, fixes #7597, @anmonteiro)
$ dune describe
is now a command group, so arguments to subcommands must be
passed after subcommand itself. (#7919, @Alizter)
The interface
and implementation
fields of a (dialect)
are now optional
(#7757, @gpetiot)
Add commands dune show targets
and dune show aliases
that display all the
available targets and aliases in a given directory respectively. (#7770,
grants #265, @Alizter)
Allow multiple globs in library's (stdlib (internal_modules ..))
(@anmonteiro, #7878)
Attach melange rules to the default alias (#7926, @haochenx)
In opam constraints, reject (and)
and (or)
with no arguments at parse
time (#7730, @emillon)
Compute digests and manage sandboxes in background threads (#7947, @rgrinberg)
Add (build_if)
to the (test)
stanza. When it evaluates to false, the
executable is not built. (#7899, fixes #6938, @emillon)
Add necessary parentheses in generated opam constraints (#7682, fixes #3431, @Lucccyo)
CHANGES:
Fix deadlock on Windows (#8044, @nojb)
When using sendfile
to copy files on Linux, fall back to the portable
version if it fails at runtime for some reason (NFS, etc).
(#8049, fixes #8041, @emillon)