[ANN] Dune 3.18

On the behalf of the dune team, I’m glad to announce the release of dune 3.18.0 :partying_face:

This release contains changes to support the new x-maintenance-intent field by default. It also contains some changes regarding the cache, about how it handles file permissions. It introduces a new (format-dune-file ...) stanza with the intention to formalize the dune format-dune-file command as an inside rule. Finally, it includes various bug fixes for Dune.

If you encounter a problem with this release, you can report it on the ocaml/dune repository.

Changelog

Fixed

  • Support HaikuOS: don’t call execve since it’s not allowed if other pthreads
    have been created. The fact that Haiku can’t call execve from other threads
    than the principal thread of a process (a team in haiku jargon), is a
    discrepancy to POSIX and hence there is a bug about
    it
    . (@Sylvain78, #10953)

  • Fix flag ordering in generated Merlin configurations (#11503, @voodoos, fixes
    ocaml/merlin#1900, reported by @vouillon)

Added

  • Add (format-dune-file <src> <dst>) action. It provides an alternative to the
    dune format-dune-file command. (#11166, @nojb)

  • Allow the --prefix flag when configuring dune with ocaml configure.ml.
    This allows to set the prefix just like $ dune install --prefix. (#11172,
    @rgrinberg)

  • Allow arguments starting with + in preprocessing definitions (starting with
    (lang dune 3.18)). (@amonteiro, #11234)

  • Support for opam (maintenance_intent ...) in dune-project (#11274, @art-w)

  • Validate opam maintenance_intent (#11308, @art-w)

  • Support not in package dependencies constraints (#11404, @art-w, reported
    by @hannesm)

Changed

  • Warn when failing to discover root due to reads failing. The previous
    behavior was to abort. (@KoviRobi, #11173)

  • Use shorter path for inline-tests artifacts. (@hhugo, #11307)

  • Allow dash in dune init project name (#11402, @art-w, reported by @saroupille)

  • On Windows, under heavy load, file delete operations can sometimes fail due to
    AV programs, etc. Guard against it by retrying the operation up to 30x with a
    1s waiting gap (#11437, fixes #11425, @MSoegtropIMC)

  • Cache: we now only store the executable permission bit for files (#11541,
    fixes #11533, @ElectreAAS)

  • Display negative error codes on Windows in hex which is the more customary
    way to display NTSTATUS codes (#11504, @MisterDA)

10 Likes

We are happy to announce the release of Dune 3.18.1 :camel:

This version is a minor release that contains a bug fix to an issue that was preventing pkg-config from finding some libraries in some contexts.

If you encounter a problem with this release, you can report it on the ocaml/dune repository.

Changelog

Fixed

  • fix: pass pkg-config (extra) args in all pkgconfig invocations. A missing
    --personality flag would result in pkgconf not finding libraries in some
    contexts. (#11619, @MisterDA)
1 Like