Releases: ocaml/dune
3.14.2
3.14.1
CHANGES:
Fixed
-
When a directory is changed to a file, correctly remove it in subsequent
dune build
runs. (#9327, fix #6575, @emillon) -
Fix a problem with the doc-new target where transitive dependencies were
missed during compile. This leads to missing expansions in the output docs.
(#9955, @jonludlam) -
coq: fix performance regression in coqdep unescaping (#10115, fixes #10088,
@ejgallego, thanks to Dan Christensen for the report) -
coq: memoize coqdep parsing, this will reduce build times for Coq users, in
particular for those with many .v files (#10116, @ejgallego, see also #10088) -
on Windows, use an unicode-aware version of
CreateProcess
to avoid crashes
when paths contains non-ascii characters. (#10212, fixes #10180, @emillon)
3.14.0
CHANGES:
Added
-
Introduce a
(dynamic_include ..)
stanza. This is like(include foo)
but
allowsfoo
to be the target of a rule. Currently, there are some
limitations on the stanzas that can be generated. For example, public
executables, libraries are currently forbidden. (#9913, @rgrinberg) -
Introduce
$ dune promotion list
to print the list of available promotions.
(#9705, @moyodiallo) -
If Sherlodoc is installed, add a search bar in generated HTML docs (#9772,
@EmileTrotignon) -
Add
only_sources
field tocopy_files
stanza (#9827, fixes #9709,
@jchavarri) -
The
(foreign_library)
stanza now supports the(enabled_if)
field. (#9914,
@nojb)
Fixed
-
Fix
$ dune install -p
incorrectly recognizing packages that are supposed to
be filtered (#9879, fixes #4814, @rgrinberg) -
subst: correctly handle opam files in opam/ subdirectory (#9895, fixes #9862,
@emillon) -
Odoc private rules are not set up if a library is not available due to
enabled_if
(#9897, @rgrinberg and @jchavarri)
Changed
-
When dune language 3.14 is enabled, resolve the binary in
(run %{bin:..} ..)
from where the binary is built. (#9708, @rgrinberg) -
boot: remove single-command bootstrap. This was an alternative bootstrap
strategy that was used in certain conditions. Removal makes the bootstrap a
bit slower on Linux when only a single core is available, but bootstrap is
now reproducible in all cases. (#9735, fixes #9507, @emillon)
3.14.0~alpha1
CHANGES:
Added
-
Introduce a
(dynamic_include ..)
stanza. This is like(include foo)
but
allowsfoo
to be the target of a rule. Currently, there are some
limitations on the stanzas that can be generated. For example, public
executables, libraries are currently forbidden. (#9913, @rgrinberg) -
Introduce
$ dune promotion list
to print the list of available promotions.
(#9705, @moyodiallo) -
If Sherlodoc is installed, add a search bar in generated HTML docs (#9772,
@EmileTrotignon) -
Add
only_sources
field tocopy_files
stanza (#9827, fixes #9709,
@jchavarri) -
The
(foreign_library)
stanza now supports the(enabled_if)
field. (#9914,
@nojb)
Fixed
-
Fix
$ dune install -p
incorrectly recognizing packages that are supposed to
be filtered (#9879, fixes #4814, @rgrinberg) -
subst: correctly handle opam files in opam/ subdirectory (#9895, fixes #9862,
@emillon) -
Odoc private rules are not set up if a library is not available due to
enabled_if
(#9897, @rgrinberg and @jchavarri)
Changed
-
When dune language 3.14 is enabled, resolve the binary in
(run %{bin:..} ..)
from where the binary is built. (#9708, @rgrinberg) -
boot: remove single-command bootstrap. This was an alternative bootstrap
strategy that was used in certain conditions. Removal makes the bootstrap a
bit slower on Linux when only a single core is available, but bootstrap is
now reproducible in all cases. (#9735, fixes #9507, @emillon)
3.13.1
CHANGES:
-
Fix performance regression for incremental builds (#9769, fixes #9738,
@rgrinberg) -
Fix
dune ocaml top-module
to correctly handle absolute paths. (#8249, fixes
#7370, @Alizter) -
subst: ignore broken symlinks when looking at source files (#9810, fixes
#9593, @emillon) -
subst: do not fail on 32-bit systems when large files are encountered. Just
log a warning in this case. (#9811, fixes #9538, @emillon) -
boot: sort directory entries in readdir. This makes the dune binary
reproducible in terms of filesystem order. (#9861, fixes #9794, @emillon)
3.13.0
CHANGES:
Added
-
Add command
dune cache clear
to completely delete all traces of the Dune
cache. (#8975, @nojb) -
Allow to disable Coq 0.8 deprecation warning (#9439, @ejgallego)
-
Allow
OCAMLFIND_TOOLCHAIN
to be set per context in the workspace file
through theenv
stanza. (#9449, @rgrinberg) -
Menhir: generate
.conflicts
file by default. Add new field to the
(menhir)
stanza to control the generation of this file:(explain <blang expression>)
. Introduce(menhir (flags ...) (explain ...))
field in the
(env)
stanza, delete(menhir_flags)
field. All changes are guarded under
a new version of the Menhir extension, 3.0. (#9512, @nojb) -
Directory targets can now be cached. (#9535, @rleshchinskiy)
-
It is now possible to use special forms such as
(:include)
and variables
%{read-lines:}
in(modules)
and similar fields. Note that the
dependencies introduced in this way (ie the files being read) must live in a
different directory than the stanza making use of them. (#9578, @nojb) -
Remove warning 30 from default set for projects where dune lang is at least
3.13 (#9568, @gasche) -
Add
coqdoc_flags
field tocoq
field ofenv
stanza allowing the setting
of workspace-wide defaults forcoqdoc_flags
. (#9280, fixes #9139, @Alizter) -
ctypes: fix an error where
(ctypes)
with no(function_description)
would
cause an error trying refer to a nonexistent_stubs.a
dependency (#9302,
fix #9300, @emillon)
Changed
- Check that package names in
(depends)
and related fields indune-project
are well-formed. (#9472, fixes #9270, @ElectreAAS)
Fixed
-
Do not ignore
(formatting ..)
settings in context or workspace files
(#8447, @rgrinberg) -
Fixed a bug where Dune was incorrectly parsing the output of coqdep when it
was escaped, as is the case on Windows. (#9231, fixes #9218, @Alizter) -
Copying mode for sandboxes will now follow symbolic links (#9282, @rgrinberg)
-
Forbid the empty
(binaries ..)
field in theenv
stanza in the workspace
file unless language version is at least 3.2. -
[coq] Fix bug in computation of flags when composed with boot theories.
(#9347, fixes #7909, @ejgallego) -
Fixed a bug where the
(select)
field of the(libraries)
field of the
(test)
stanza wasn't working properly. (#9387, fixes #9365, @Alizter) -
Fix handling of the
PATH
argument todune init proj NAME PATH
. An
intermediate directory calledNAME
is no longer created ifPATH
is
supplied, sodune init proj my_project .
will now initialize a project in
the current working directory. (#9447, fixes #9209, @shonfeder) -
Experimental doc rules: Correctly handle the case when a package depends upon
its own sublibraries (#9461, fixes #9456, @jonludlam) -
Resolve various public binaries to their build location, rather than to where
they're copied in the_build/install
directory (#9496, fixes #7908,
@rgrinberg). -
Correctly ignore warning flags in vendored projects (#9515, @rgrinberg)
-
Use watch exclusions in watch mode on MacOS (#9643, fixes #9517,
@PoorlyDefinedBehaviour) -
Fix merlin configuration for
(include_subdirs qualified)
modules (#9659,
fixes #8297, @rgrinberg) -
Fix handling of
enabled_if
in binary install stanzas. Previously, we'd
ignore the result ofenabled_if
when evaluating%{bin:..}
(#9707,
@rgrinberg)
3.13.0~alpha1
CHANGES:
-
Do not ignore
(formatting ..)
settings in context or workspace files
(#8447, @rgrinberg) -
Add command
dune cache clear
to completely delete all traces of the Dune
cache. (#8975, @nojb) -
Fixed a bug where Dune was incorrectly parsing the output of coqdep when it
was escaped, as is the case on Windows. (#9231, fixes #9218, @Alizter) -
Copying mode for sandboxes will now follow symbolic links (#9282, @rgrinberg)
-
Forbid the empty
(binaries ..)
field in theenv
stanza in the workspace
file unless language version is at least 3.2. -
[coq] Fix bug in computation of flags when composed with boot theories.
(#9347, fixes #7909, @ejgallego) -
Fixed a bug where the
(select)
field of the(libraries)
field of the
(test)
stanza wasn't working properly. (#9387, fixes #9365, @Alizter) -
Allow to disable Coq 0.8 deprecation warning (#9439, @ejgallego)
-
Fix handling of the
PATH
argument todune init proj NAME PATH
. An
intermediate directory calledNAME
is no longer created ifPATH
is
supplied, sodune init proj my_project .
will now initialize a project in
the current working directory. (#9447, fixes #9209, @shonfeder) -
Allow
OCAMLFIND_TOOLCHAIN
to be set per context in the workspace file
through theenv
stanza. (#9449, @rgrinberg) -
Experimental doc rules: Correctly handle the case when a package depends upon
its own sublibraries (#9461, fixes #9456, @jonludlam) -
Resolve various public binaries to their build location, rather than to where
they're copied in the_build/install
directory (#9496, fixes #7908,
@rgrinberg). -
Menhir: generate
.conflicts
file by default. Add new field to the
(menhir)
stanza to control the generation of this file:(explain <blang expression>)
. Introduce(menhir (flags ...) (explain ...))
field in the
(env)
stanza, delete(menhir_flags)
field. All changes are guarded under
a new version of the Menhir extension, 3.0. (#9512, @nojb) -
Correctly ignore warning flags in vendored projects (#9515, @rgrinberg)
-
Directory targets can now be caches. (#9535, @rleshchinskiy)
-
Remove warning 30 from default set for projects where dune lang is at least
3.13 (#9568, @gasche) -
It is now possible to use special forms such as
(:include)
and variables
%{read-lines:}
in(modules)
and similar fields. Note that the
dependencies introduced in this way (ie the files being read) must live in a
different directory than the stanza making use of them. (#9578, @nojb) -
Use watch exclusions in watch mode on MacOS (#9643, fixes #9517,
@PoorlyDefinedBehaviour) -
Fix merlin configuration for
(include_subdirs qualified)
modules (#9659,
fixes #8297, @rgrinberg) -
Fix handling of
enabled_if
in binary install stanzas. Previously, we'd
ignore the result ofenabled_if
when evaluating%{bin:..}
(#9707,
@rgrinberg) -
Add
coqdoc_flags
field tocoq
field ofenv
stanza allowing the setting
of workspace-wide defaults forcoqdoc_flags
. (#9280, fixes #9139, @Alizter) -
ctypes: fix an error where
(ctypes)
with no(function_description)
would
cause an error trying refer to a nonexistent_stubs.a
dependency (#9302,
fix #9300, @emillon)
3.12.2
3.12.1
3.12.0
CHANGES:
-
Introduce
$ dune ocaml doc
to open and browse documentation. (#7262, fixes
#6831, @EmileTrotignon) -
dune cache trim
now accepts binary byte units:KiB
,MiB
, etc. (#8618,
@Alizter) -
No longer force colors for OCaml 4.03 and 4.04 (#8778, @rgrinberg)
-
Introduce new experimental odoc rules (#8803, @jonjudlam)
-
Introduce the
runtest_alias
field to thecram
stanza. This allows
removing defaultruntest
alias from tests. (@rgrinberg, #8887) -
Do not ignore libraries named
bigarray
when they are defined in conjunction
with OCaml 5.0 (#8902, fixes #8901, @rgrinberg) -
Dependencies in the copying sandbox are now writeable (#8920, @rgrinberg)
-
Absent packages shouldn't prevent all rules from being loaded (#8948, fixes
#8630, @rgrinberg) -
Correctly determine the stanza of menhir modules when
(include_subdirs qualified)
is enabled (@rgrinberg, #8949, fixes #7610) -
Re-run actions whenever
(expand_aliases_in_sandbox)
changes (#8990,
@rgrinberg) -
Rules that only use internal dune actions (
write-file
,echo
, etc.) can
now be sandboxed. (#9041, fixes #8854, @rgrinberg) -
Do not re-run rules when their location changes (#9052, @rgrinberg)
-
Correctly ignore
bigarray
on recent version of OCaml (#9076, @rgrinberg) -
Add
test_
prefix to default test name indune init project
(#9257, fixes
#9131, @9sako6) -
Add
coqdoc_flags
field tocoq
field ofenv
stanza allowing the setting
of workspace-wide defaults forcoqdoc_flags
. (#9280, fixes #9139, @Alizter) -
[coq rules] Be more tolerant when coqc --print-version / --config don't work
properly, and fallback to a reasonable default. This fixes problems when
building Coq projects with(stdlib no)
and likely other cases. (#8966, fix
#8958, @Alizter, reported by Lasse Blaauwbroek) -
Dune will now run at a lower framerate of 15 fps rather than 60 when
INSIDE_EMACS
. (#8812, @Alizter) -
dune-build-info: when
version=""
is found in aMETA
file, we now return
None
as a version string (#9177, @emillon) -
Dune can now be built and installed on Haiku (#8795, fix #8551, @Alizter)
-
Mark installed directories in
dune-package
files. This fixes(package)
dependencies against packages that contain such directories. (#8953, fixes
#8915, @emillon)