The Dune team is happy to announce the release of Dune 3.17.0! ![]()
Among the list of changes, this minor release enables the Dune cache by default for known-safe operations, adds out-of-the-box support for Wasm_of_ocaml, adds support for the-H compiler flag introduced in OCaml 5.2, allows specifying code hosting services like Codeberg or GitLab organisations, and gives the possibility to run individual tests with dune runtest.
If you encounter a problem with this release, you can report it on the ocaml/dune repository.
Changelog
Added
-
Make Merlin/OCaml-LSP aware of “hidden” dependencies used by
(implicit_transitive_deps false)via the-Hcompiler flag. (#10535, @voodoos) -
Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
(requires lang versions 3.17). This adaptation gives
the correct semantics for(implicit_transitive_deps false).
(#10644, fixes #9333, ocsigen/tyxml#274, #2733, #4963, @MA0100) -
Add support for specifying Gitlab organization repositories in
source
stanzas (#10766, fixes #6723, @H-ANSEN) -
New option to control jsoo sourcemap generation in env and executable stanza
(#10777, fixes #10673, @hhugo) -
One can now control jsoo compilation_mode inside an executable stanza
(#10777, fixes #10673, @hhugo) -
Add support for specifying default values of the
authors,maintainers, and
licensestanzas of thedune-projectfile via the dune config file. Default
values are set using the(project_defaults)stanza (#10835, @H-ANSEN) -
Add names to source tree events in performance traces (#10884, @jchavarri)
-
Add
codebergas an option for defining project sources in dune-project
files. For example,(source (codeberg user/repo)). (#10904, @nlordell) -
dune runtestcan now run individual tests withdune runtest mytest.t
(#11041, @Alizter). -
Wasm_of_ocaml support (#11093, @vouillon)
-
Add a
coqdep_flagsfield to thecoqfield of theenvstanza, and to the
coq.theorystanza, allowing to configurecoqdepflags. (#11094,
@rlepigre)
Fixed
-
Show the context name for errors happening in non-default contexts.
(#10414, fixes #10378, @jchavarri) -
Correctly declare dependencies of indexes so that they are rebuilt when
needed. (#10623, @voodoos) -
Don’t depend on coq-stdlib being installed when expanding variables
of thecoq.versionfamily (#10631, fixes #10629, @gares) -
Error out if no files are found when using
copy_files. (#10649, @jchavarri) -
Re_export dune-section private library in the dune-site library stanza,
in order to avoid failure when generating and building sites modules
with implicit_transitive_deps = false. (#10650, fixes #9661, @MA0100) -
Expect test fixes: support multiple modes and fix dependencies when there is
a custom runner (#10671, @vouillon) -
In a
(library)stanza with(extra_objects)and(foreign_stubs), avoid
double linking the extra object files in the final executable.
(#10783, fixes #10785, @nojb) -
Map
(re_export)library dependencies to theexportsfield inMETAfiles,
and vice-versa. This field was proposed in to
Proposal: a new `exports` field in `findlib` META files.
The field is included in Dune-generatedMETAfiles only when the Dune lang
version is >= 3.17.
(#10831, fixes #10830, @nojb) -
Fix staged pps preprocessors on Windows (which were not working at all
previously) (#10869, fixes #10867, @nojb) -
Fix
dune describewhen an executable is disabled withenabled_if.
(#10881, fixes #10779, @moyodiallo) -
Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
redirected. (#10883, fixes #10882, @nojb) -
Fix the URL opened by the command
dune ocaml doc. (#10897, @gridbugs) -
Fix the file referred to in the error/warning message displayed due to the
dune configuration version not supporting a particular configuration
stanza in use. (#10923, @H-ANSEN) -
Fix
enabled_ifwhen it usesenvvariable. (#10936, fixes #10905, @moyodiallo) -
Fix exec -w for relative paths with --root argument (#10982, @gridbugs)
-
Do not ignore the
(locks ..)field in thetestandtestsstanza
(#11081, @rgrinberg) -
Tolerate files without extension when generating merlin rules.
(#11128, @anmonteiro)
Changed
-
Remove all remnants of the experimental
patch-back-source-tree. (#10771,
@rgrinberg) -
Change the preset value for author and maintainer fields in the
dune-projectfile to encourage including emails. (#10848, @punchagan) -
Tweak the preset value for tags in the
dune-projectfile to hint at topics
not having a special meaning. (#10849, @punchagan) -
Change some colors to improve readability in light-mode terminals
(#10890, @gridbugs) -
Forward the linkall flag to jsoo in whole program compilation as well (#10935, @hhugo)
-
Configurator uses
pkgconfas pkg-config implementation when available
and forwards it thetargetofocamlc -config. (#10937, @pirbo) -
Enable Dune cache by default. Add a new Dune cache setting
enabled-except-user-rules, which enables the Dune cache, but excludes
user-written rules from it. This is a conservative choice that can avoid
breaking rules whose dependencies are not correctly specified. This is the
current default. (#10944, #10710, @nojb, @ElectreAAS) -
Do not add
dunedependency indune-projectwhen creating projects with
dune init proj. The Dune dependency is implicitely added when generating
opam files (#11129, @Leonidas-from-XIV)