Releases: ocaml/dune
3.19.1
3.19.0
CHANGES:
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
3.19.0~alpha0
CHANGES:
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
3.18.2
3.18.1
3.18.0
CHANGES:
Fixed
- Support HaikuOS: don't call
execve
since it's not allowed if other pthreads
have been created. The fact that Haiku can't callexecve
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 a replacement to
dune format-dune-file
command. (#11166, @nojb) - Allow the
--prefix
flag when configuring dune withocaml 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 displayNTSTATUS
codes (#11504, @MisterDA)
3.18.0~alpha0
CHANGES:
Fixed
- Support HaikuOS: don't call
execve
since it's not allowed if other pthreads
have been created. The fact that Haiku can't callexecve
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 a replacement to
dune format-dune-file
command. (#11166, @nojb) - Allow the
--prefix
flag when configuring dune withocaml 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 displayNTSTATUS
codes (#11504, @MisterDA)
3.17.2
CHANGES:
Fixed
- Fix a crash in the Melange rules that would prevent compiling public library
implementations of virtual libraries. (@anmonteiro, #11248) - Pass
melange.emit
'scompile_flags
to the JS emission phase. (@anmonteiro, #11252) - Disallow private implementations of public virtual libs in melange mode. (@anmonteiro, #11253)
- Wasm_of_ocaml: fix the execution of tests in a sandbox. (#11304, @vouillon)
3.17.1
CHANGES:
Fixed
-
When a library declares
(no_dynlink)
, then the.cmxs
file for it
is no longer built. (#11176, @nojb) -
Fix bug that could result in corrupted file copies by Dune, for example when
using thecopy_files#
stanza or thecopy#
action. (@nojb, #11194, fixes
#11193) -
Remove useless error message when running
$ dune subst
in empty projects.
(@rgrinberg, #11204, fixes #11200)
3.17.0
CHANGES:
Fixed
-
Show the context name for errors happening in non-default contexts.
(#10414, fixes #10378, @jchavarri) -
Correctly declare dependencies of indexes so that they are rebuilt when
needed. (#10623, @voodoos) -
Don't depend on coq-stdlib being installed when expanding variables
of thecoq.version
family (#10631, fixes #10629, @gares) -
Error out if no files are found when using
copy_files
. (#10649, @jchavarri) -
Re_export dune-section private library in the dune-site library stanza,
in order to avoid failure when generating and building sites modules
with implicit_transitive_deps = false. (#10650, fixes #9661, @MA0100) -
Expect test fixes: support multiple modes and fix dependencies when there is
a custom runner (#10671, @vouillon) -
In a
(library)
stanza with(extra_objects)
and(foreign_stubs)
, avoid
double linking the extra object files in the final executable.
(#10783, fixes #10785, @nojb) -
Map
(re_export)
library dependencies to theexports
field inMETA
files,
and vice-versa. This field was proposed in to
https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947.
The field is included in Dune-generatedMETA
files only when the Dune lang
version is >= 3.17.
(#10831, fixes #10830, @nojb) -
Fix staged pps preprocessors on Windows (which were not working at all
previously) (#10869, fixes #10867, @nojb) -
Fix
dune describe
when an executable is disabled withenabled_if
.
(#10881, fixes #10779, @moyodiallo) -
Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
redirected. (#10883, fixes #10882, @nojb) -
Fix the URL opened by the command
dune ocaml doc
. (#10897, @gridbugs) -
Fix the file referred to in the error/warning message displayed due to the
dune configuration version not supporting a particular configuration
stanza in use. (#10923, @H-ANSEN) -
Fix
enabled_if
when it usesenv
variable. (#10936, fixes #10905, @moyodiallo) -
Fix exec -w for relative paths with --root argument (#10982, @gridbugs)
-
Do not ignore the
(locks ..)
field in thetest
andtests
stanza
(#11081, @rgrinberg) -
Tolerate files without extension when generating merlin rules.
(#11128, @anmonteiro)
Added
-
Make Merlin/OCaml-LSP aware of "hidden" dependencies used by
(implicit_transitive_deps false)
via the-H
compiler flag. (#10535, @voodoos) -
Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
(requires lang versions 3.17). This adaptation gives
the correct semantics for(implicit_transitive_deps false)
.
(#10644, fixes #9333, ocsigen/tyxml#274, #2733, #4963, @MA0100) -
Add support for specifying Gitlab organization repositories in
source
stanzas (#10766, fixes #6723, @H-ANSEN) -
New option to control jsoo sourcemap generation in env and executable stanza
(#10777, fixes #10673, @hhugo) -
One can now control jsoo compilation_mode inside an executable stanza
(#10777, fixes #10673, @hhugo) -
Add support for specifying default values of the
authors
,maintainers
, and
license
stanzas of thedune-project
file via the dune config file. Default
values are set using the(project_defaults)
stanza (#10835, @H-ANSEN) -
Add names to source tree events in performance traces (#10884, @jchavarri)
-
Add
codeberg
as an option for defining project sources in dune-project
files. For example,(source (codeberg user/repo))
. (#10904, @nlordell) -
dune runtest
can now run individual tests withdune runtest mytest.t
(#11041, @Alizter). -
Add a
coqdep_flags
field to thecoq
field of theenv
stanza, and to thecoq.theory
stanza, allowing to configurecoqdep
flags.
(#11094, @rlepigre)
Changed
-
Remove all remnants of the experimental
patch-back-source-tree
. (#10771,
@rgrinberg) -
Change the preset value for author and maintainer fields in the
dune-project
file to encourage including emails. (#10848, @punchagan) -
Tweak the preset value for tags in the
dune-project
file to hint at topics
not having a special meaning. (#10849, @punchagan) -
Change some colors to improve readability in light-mode terminals
(#10890, @gridbugs) -
Forward the linkall flag to jsoo in whole program compilation as well (#10935, @hhugo)
-
Configurator uses
pkgconf
as pkg-config implementation when available
and forwards it thetarget
ofocamlc -config
. (#10937, @pirbo) -
Enable Dune cache by default. Add a new Dune cache setting
enabled-except-user-rules
, which enables the Dune cache, but excludes
user-written rules from it. This is a conservative choice that can avoid
breaking rules whose dependencies are not correctly specified. This is the
current default. (#10944, #10710, @nojb, @ElectreAAS) -
Do not add
dune
dependency indune-project
when creating projects with
dune init proj
. The Dune dependency is implicitely added when generating
opam files (#11129, @Leonidas-from-XIV)