Releases: ocaml/dune
3.17.0~alpha0
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) -
Format long lists in s-expressions to fill the line instead of formatting
them in a vertical way (#10892, fixes #10860, @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)
3.16.1
3.16.0
CHANGES:
Added
-
allow libraries with the same
(name ..)
in projects as long as they don't
conflict during resolution (viaenabled_if
). (#10307, @anmonteiro,
@jchavarri) -
dune describe pp
now finds the exact module and the stanza it belongs to,
instead of guessing the name of the preprocessed file. (#10321, @anmonteiro) -
Print the result of
dune describe pp
with the respective dialect printer.
(#10322, @anmonteiro) -
Add new flag
--context
todune ocaml-merlin
, which allows to select a
Dune context when requesting Merlin config. Adddune describe contexts
subcommand. Introduce a fieldgenerate_merlin_rules
for contexts declared
in the workspace, that allows to optionally produce Merlin rules for other
contexts besides the one selected for Merlin (#10324, @jchavarri) -
melange: add include paths for private library
.cmj
files during JS
emission. (#10416, @anmonteiro) -
dune ocaml-merlin
: communicate additional directivesSOURCE_ROOT
,
UNIT_NAME
(the actual name with wrapping) andINDEX
with the paths to the
index(es). (#10422, @voodoos) -
Add a new alias
@ocaml-index
that uses theocaml-index
binary to generate
indexes that can be read by tools such as Merlin to provide project-wide
references search. (#10422, @voodoos) -
merlin: add optional
(merlin_reader CMD)
construct to(dialect)
stanza to
configure a merlin reader (#8567, @andreypopp)
Changed
-
melange: treat private libraries with
(package ..)
as public libraries,
fixing an issue whereimport
paths were wrongly emitted. (#10415,
@anmonteiro) -
install
.glob
files for Coq theories too (#10602, @ejgallego)
Fixed
-
Don't try to document non-existent libraries in doc-new target (#10319, fixes
#10056, @jonludlam) -
Make
dune-site
'sload_all
function look forMETA
files so that it
doesn't fail on empty directories in the plugin directory (#10458, fixes
#10457, @shym) -
Fix incorrect warning for libraries defined inside non-existant directories
using(subdir ..)
and used by executables usingdune-build-info
(#10525,
@rgrinberg) -
Don't try to take build lock when running
coq top --no-build
(#10547, fixes
#7671, @lzy0505) -
Make sure to truncate dune's lock file after locking and unlocking so that
users cannot observe incorrect pid's (#10575, @rgrinberg) -
mdx: link mdx binary with
byte_complete
. This fixes(libraries)
with
foreign archives on Linux. (#10586, fixes #10582, @anmonteiro) -
virtual libraries: fix an issue where linking an executable involving several
virtual libries would cause an error. (#10581, fixes #10460, @rgrinberg)
3.16.0~alpha2
3.16.0~alpha1
CHANGES:
Added
-
allow libraries with the same
(name ..)
in projects as long as they don't
conflict during resolution (viaenabled_if
). (#10307, @anmonteiro,
@jchavarri) -
dune describe pp
now finds the exact module and the stanza it belongs to,
instead of guessing the name of the preprocessed file. (#10321, @anmonteiro) -
Print the result of
dune describe pp
with the respective dialect printer.
(#10322, @anmonteiro) -
Add new flag
--context
todune ocaml-merlin
, which allows to select a
Dune context when requesting Merlin config. Adddune describe contexts
subcommand. Introduce a fieldgenerate_merlin_rules
for contexts declared
in the workspace, that allows to optionally produce Merlin rules for other
contexts besides the one selected for Merlin (#10324, @jchavarri) -
melange: add include paths for private library
.cmj
files during JS
emission. (#10416, @anmonteiro) -
dune ocaml-merlin
: communicate additional directivesSOURCE_ROOT
,
UNIT_NAME
(the actual name with wrapping) andINDEX
with the paths to the
index(es). (#10422, @voodoos) -
Add a new alias
@ocaml-index
that uses theocaml-index
binary to generate
indexes that can be read by tools such as Merlin to provide project-wide
references search. (#10422, @voodoos) -
merlin: add optional
(merlin_reader CMD)
construct to(dialect)
stanza to
configure a merlin reader (#8567, @andreypopp)
Changed
-
melange: treat private libraries with
(package ..)
as public libraries,
fixing an issue whereimport
paths were wrongly emitted. (#10415,
@anmonteiro) -
install
.glob
files for Coq theories too (#10602, @ejgallego)
Fixed
-
Don't try to document non-existent libraries in doc-new target (#10319, fixes
#10056, @jonludlam) -
Make
dune-site
'sload_all
function look forMETA
files so that it
doesn't fail on empty directories in the plugin directory (#10458, fixes
#10457, @shym) -
Fix incorrect warning for libraries defined inside non-existant directories
using(subdir ..)
and used by executables usingdune-build-info
(#10525,
@rgrinberg) -
Don't try to take build lock when running
coq top --no-build
(#10547, fixes
#7671, @lzy0505) -
Make sure to truncate dune's lock file after locking and unlocking so that
users cannot observe incorrect pid's (#10575, @rgrinberg) -
mdx: link mdx binary with
byte_complete
. This fixes(libraries)
with
foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)
3.15.3
3.15.2
3.15.1
CHANGES:
Fixed
-
Fix overflow in sendfile stubs (copy of large files could fail or end with
truncated files) (#10333, @tonyfettes) -
Fix crash when a rule with a directory target is disabled with
enabled_if
(#10382, fixes #10310, @gridbugs) -
melange: remove all restrictions around virtual libraries in Melange. They
may be used as otherwise in libraries and executables. (#10412, @anmonteiro)
3.15.0
CHANGES:
Added
-
Add link flags to to
ocamlmklib
for ctypes stubs (#8784, @frejsoya) -
Remove some unnecessary limitations in the expansions of percent forms in
install stanza. For example, the%{env:..}
form can be used to select files
to be installed. (#10160, @rgrinberg) -
Allow artifact expansion percent forms (
%{cma:..}
,%{cmo:..}
, etc.) in
more contexts. Previously, they would be randomly forbidden in some fields.
(#10169, @rgrinberg) -
Allow
%{inline_tests}
in more contexts (#10191, @rgrinberg) -
Remove limitations on percent forms in the
(enabled_if ..)
field of
libraries (#10250, @rgrinberg) -
Allow defining executables or melange emit stanzas with the same name in the
same folder under different contexts. (#10220, @rgrinberg, @jchavarri)
Fixed
-
coq: Delay Coq rule setup checks so OCaml-only packages can build in hybrid
Coq/OCaml projects whencoqc
is not present. Thanks to @vzaliva for the
test case and report (#9845, fixes #9818, @rgrinberg, @ejgallego) -
Fix conditional source selection with
select
onbigarray
in OCaml 5
(#10011, @moyodiallo) -
melange: fix inconsistency in virtual library implementation. Concrete
modules within a virtual library can now refer to its virtual modules too
(#10051, fixes #7104, @anmonteiro) -
melange: fix a bug that would cause stale
import
paths to be emitted when
moving source files within(include_subdirs ..)
(#10286, fixes #9190,
@anmonteiro) -
Dune file formatting: output utf8 if input is correctly encoded (#10113,
fixes #9728, @moyodiallo) -
Fix expanding dependencies and locks specified in the cram stanza.
Previously, they would be installed in the context of the cram test, rather
than the cram stanza itself (#10165, @rgrinberg) -
Fix bug with
dune exec --watch
where the working directory would always be
set to the project root rather than the directory where the command was run
(#10262, @gridbugs) -
Regression fix: sign executables that are promoted into the source tree
(#10263, fixes #9272, @emillon) -
Fix crash when decoding dune-package for libraries with
(include_subdirs qualified)
(#10269, fixes #10264, @emillon)
Changed
- Remove the
--react-to-insignificant-changes
option. (#10083, @rgrinberg)
3.15.0~alpha2
CHANGES:
Fixed
- Backport #10327: fix a regression in
dune install
not performing artifact
substitution.