3.24.0~alpha0
CHANGES:
Fixed
-
Fix promotion failure when a target changes from a directory to a file
between builds, causing "Is a directory" errors.
(#14371, fixes #5647, fixes #6575, @Alizter) -
Make
dune build @docpick up an odoc installed viadune tools install odoceven withoutDUNE_CONFIG__LOCK_DEV_TOOL=enabled, mirroring how
dune fmtconsumes a locked ocamlformat (#14426, fixes #14235, @mt-caret) -
Reject
(package ...)inside a named dependency binding
((deps (:name (package foo)))). Previously this was silently accepted but
%{name}would resolve to an empty path list. (#14499, @Alizter) -
Fix incorrect dependency in the
.cmxsbuild for libraries with
mode-dependent foreign stubs: the rule depended on the byte stubs archive
instead of the native one, so parallel builds could fail to find
-l<lib>_stubs_native. (#14500, fixes #12964, @Alizter) -
Fix
dune buildfailing with "No rule found" whenlock_dirpaths in
dune-workspacecontain a subdirectory (e.g.(path sub/dune.lock)).
(#14524, fixes #14523, @Alizter) -
Artifact substitution repairs executable bit if it's not set correctly in the workspace
(#14556, @rgrinberg) -
Ignore
EINVALwhen accepting sockets on MacOS (#14612, fixes #12660, @rgrinberg) -
Validate profile names. Profile names must be non-empty and can only contain
letters, digits,_and-. The name_is reserved as a wildcard in
(env ...)stanzas. (#14657, fixes #14630, @rlepigre)
Added
-
Add
%{pkg:<package>:<section>:<path>}pform for resolving package install
files. Works with workspace packages, lock-file packages, and installed
packages. (#14200, fixes #14193, fixes #3378, @Alizter) -
Enable the relocatable compiler by default for package management (#14357,
fixes #14012, @Alizter) -
Add changed source files to the
build-starttrace event for watch-mode
restarts, showing the paths that triggered the rebuild (#14396, @rgrinberg) -
Add dune's rusage information in start/finish build trace events (#14402, @rgrinberg)
-
Add a status message for RPC clients that manage to connect (#14424, @rgrinberg)
-
Allow blang expressions in the
runtest_aliasfield in thecramstanza (#14425, @rgrinberg) -
Extend the stat based cache to cache the contents of directories and not just
source files (#14469, @rgrinberg). -
Show the number of connected RPC clients in the watch mode status line
(#14489, @rgrinberg) -
Promote directory targets from experimental to generally available in 3.24
(#14579, @rgrinberg)
Changed
-
Use
/as directory separator when appending local paths to external paths,
making path construction consistent across platforms. (#14278, @Alizter) -
On Windows, normalise process paths to
\before passing them to
CreateProcessWso that programs which scanargv[0](notablycmd.exe)
do not misparse mixed separators. (#14278, @Alizter) -
%{bin:NAME}now resolves to the build artifact path rather than
the install staging path. Rules with%{bin:NAME}deps additionally
get a per-rule.binariesdirectory prepended to the action's
PATH, containing correctly-named symlinks for each declared bin
pform dep. (#14432, fixes #3324, @Alizter) -
Replace the Rocq language field
(stdlib ...)with the presence-only field
(no_corelib)in Rocq language 0.14. (#14452, fixes #14358, @Durbatuluk1701) -
Throttle sandbox creation to 250 concurrent sandboxes. (#14464, @rgrinberg)
-
The package solver now uses cached revision store lookups for improved
performance. (#14494, fixes #12637, @Alizter, @rgrinberg) -
Remove the deprecated
(lang coq)Coq Build Language. Use the
Rocq Build Language ((using rocq <version>)) instead. Projects that
still declare(using coq <version>)now get an error pointing them
at Rocq. (#14525, fixes #12788, @Alizter)