Dune 3.19.0~alpha0

Dune 3.19.0~alpha0 is now available. This alpha release includes several bug fixes and new features for OCaml developers.

Bug Fixes

This release addresses several issues that affected build reliability and functionality:

  • Cram tests: Fixed duplicate execution of cram tests attached to multiple aliases
  • pkg-config integration: Resolved missing --personality flag in pkgconfig invocations that prevented library detection in certain contexts
  • Foreign libraries: Fixed evaluation of enabled_if conditions when computing stubs for foreign_library stanzas
  • Preprocessing: Corrected dune describe pp behavior for libraries using (include_subdirs unqualified)
  • Git integration: Fixed dune subst functionality in subdirectories of git repositories
  • Windows compatibility: Resolved crash in Path.drop_prefix when using Melange on Windows

New Features

  • Dependency validation: Added automatic detection and warnings for common typos in package dependency constraints
  • Foreign library support: Added (extra_objects) field to (foreign_library) stanza with (:include) support

Improvements

  • RPC server: Enhanced RPC server to handle build messages in eager watch mode and support concurrent builds

Installation

Install via opam:

opam install dune.3.19.0~alpha0

As this is an alpha release, please test thoroughly before using in production environments. Bug reports and feedback are welcome on the Dune issue tracker.

For the complete list of changes with pull request references, see the release notes.

See full changelog

Fixed

  • Fixed a bug that was causing cram tests attached to multiple aliases to be run multiple
    times. (#11547, @Alizter)

  • 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)

  • Fix: Evaluate enabled_if when computing the stubs for stanzas such as
    foreign_library (#11707, @Alizter, @rgrinberg)

  • Fix $ dune describe pp for libraries in the presence of (include_subdirs unqualified) (#11729, fixes #10999, @rgrinberg)

  • Fix $ dune subst in sub directories of a git repository (#11760, fixes
    #11045, @Richard-Degenne)

  • Fix a crash involving Path.drop_prefix when using Melange on Windows
    (#11767, @nojb)

Added

  • Added detection and warning for common typos in package dependency
    constraints (#11600, fixes #11575, @kemsguy7)

  • Added (extra_objects) field to (foreign_library) stanza with (:include) support.
    (#11683, @Alizter)

Changed

  • Allow build RPC messages to be handled by dune's RPC server in eager watch
    mode (#11622, @gridbugs)

  • Allow concurrent build with RPC server (#11712, @gridbugs)