You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CHANGES:
### Fixed
- Fix promotion failure when a target changes from a directory to a file
between builds, causing "Is a directory" errors.
(ocaml/dune#14371, fixesocaml/dune#5647, fixesocaml/dune#6575, @Alizter)
- Make `dune build @doc` pick up an odoc installed via `dune tools install
odoc` even without `DUNE_CONFIG__LOCK_DEV_TOOL=enabled`, mirroring how
`dune fmt` consumes a locked ocamlformat (ocaml/dune#14426, fixesocaml/dune#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. (ocaml/dune#14499, @Alizter)
- Fix incorrect dependency in the `.cmxs` build 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`. (ocaml/dune#14500, fixesocaml/dune#12964, @Alizter)
- Fix `dune build` failing with "No rule found" when `lock_dir` paths in
`dune-workspace` contain a subdirectory (e.g. `(path sub/dune.lock)`).
(ocaml/dune#14524, fixesocaml/dune#14523, @Alizter)
- Artifact substitution repairs executable bit if it's not set correctly in the workspace
(ocaml/dune#14556, @rgrinberg)
- Ignore `EINVAL` when accepting sockets on MacOS (ocaml/dune#14612, fixesocaml/dune#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. (ocaml/dune#14657, fixesocaml/dune#14630, @rlepigre)
### Added
- Add `%{pkg:<package>:<section>:<path>}` pform for resolving package install
files. Works with workspace packages, lock-file packages, and installed
packages. (ocaml/dune#14200, fixesocaml/dune#14193, fixesocaml/dune#3378, @Alizter)
- Enable the relocatable compiler by default for package management (ocaml/dune#14357,
fixesocaml/dune#14012, @Alizter)
- Add changed source files to the `build-start` trace event for watch-mode
restarts, showing the paths that triggered the rebuild (ocaml/dune#14396, @rgrinberg)
- Add dune's rusage information in start/finish build trace events (ocaml/dune#14402, @rgrinberg)
- Add a status message for RPC clients that manage to connect (ocaml/dune#14424, @rgrinberg)
- Allow blang expressions in the `runtest_alias` field in the `cram` stanza (ocaml/dune#14425, @rgrinberg)
- Extend the stat based cache to cache the contents of directories and not just
source files (ocaml/dune#14469, @rgrinberg).
- Show the number of connected RPC clients in the watch mode status line
(ocaml/dune#14489, @rgrinberg)
- Promote directory targets from experimental to generally available in 3.24
(ocaml/dune#14579, @rgrinberg)
### Changed
- Use `/` as directory separator when appending local paths to external paths,
making path construction consistent across platforms. (ocaml/dune#14278, @Alizter)
- On Windows, normalise process paths to `\` before passing them to
`CreateProcessW` so that programs which scan `argv[0]` (notably `cmd.exe`)
do not misparse mixed separators. (ocaml/dune#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 `.binaries` directory prepended to the action's
`PATH`, containing correctly-named symlinks for each declared bin
pform dep. (ocaml/dune#14432, fixesocaml/dune#3324, @Alizter)
- Replace the Rocq language field `(stdlib ...)` with the presence-only field
`(no_corelib)` in Rocq language 0.14. (ocaml/dune#14452, fixesocaml/dune#14358, @Durbatuluk1701)
- Throttle sandbox creation to 250 concurrent sandboxes. (ocaml/dune#14464, @rgrinberg)
- The package solver now uses cached revision store lookups for improved
performance. (ocaml/dune#14494, fixesocaml/dune#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. (ocaml/dune#14525, fixesocaml/dune#12788, @Alizter)
0 commit comments