Dune 3.24.1

The Dune team is pleased to announce the release of dune 3.24.1.

This patch release includes bug fixes and a change to Melange sandboxing defaults. See the full changelog for all the changes and for attribution to the contributors who made it all possible. Thank you, contributors!

If you encounter a problem with this release, please report it in our issue tracker.

See full changelog

Fixed

  • Fix an internal error (modules_and_obj_dir: failed lookup) when generating js_of_ocaml archive rules for a dune file that defines two libraries with the same name distinguished by mutually exclusive enabled_if clauses, as ocaml-re does for ppx_expect_common (#14904, fixes #14775, @vouillon)
  • Fix passing environment variables to formatter actions (#15386, @anmonteiro)
  • Fix missing source dependency in the sandbox when preprocessing Melange sources (#15395, @anmonteiro)
  • Treat OCaml compiler packages version 5.5 or newer as relocatable so their installations do not use the toolchain cache (#15444, fixes #15443, @Alizter)
  • Fix build_runtime_flags given in a js_of_ocaml/wasm_of_ocaml field of an executable being silently ignored in separate compilation mode: such executables were given the workspace-shared standalone runtime, which is built with the default flags. Executables customizing build_runtime_flags now get their own standalone runtime again. (#15455, @hhugo)
  • Use installed filenames for local package binaries in %{bin:...} PATH layouts on Windows (#15518, fixes #15512, @Alizter)

Changed

  • Revert sandboxing Melange rules by default in the (library ..) and (melange.emit ..) stanzas. In Melange libraries with many modules, sandbox creation / destruction dominates build time and adds significant overhead to build time (#15418, @anmonteiro)