Releases: ocaml/dune
3.22.0~alpha1
CHANGES:
Fixed
-
Dyn.to_stringnow uses a smarter way to convert floats. This ensures that
floats are printed with enough precision to round-trip and are valid OCaml
lexemes. (#12982, fixes #12980, @Alizter) -
Fix
dune install --prefixfailing with relative paths outside the workspace
like../foo(#12993, fixes #12241, @benodiwal) -
Place the default trace file inside the build directory at the
workspace root, rather than relative to the current directory.
(#13735, @vouillon) -
Fixed interpreting relative paths in
%{bin:..}and%{bin-available:..}.
These are now interpreted correctly, relative to the dune file they're in.
(#13712, fixes #9564, @anmonteiro) -
Delete sandboxes with broken permissions (#13511, @rgrinberg)
-
Fix compiling Menhir parsers that refer to sibling modules within a
subdirectory of(include_subdirs qualified). (#13118, fixes #11119,
@anmonteiro) -
Fixed the dependency specification of C stubs, which could result in C
stubs not getting rebuilt when needed (which could in turn lead to
segmentation faults and other hard-to-track bugs).
(#13652, fixes #13651, @nojb) -
Fix the Dune cache on Windows by correctly handling renames onto read-only
files. Before this change, the Dune cache would be filled but the stored
artifacts would not generally be usable by Dune. (#13713, @Nevor) -
Fix rpc not transferring promotion warnings to the client
(#12604, fixes #12578, @ElectreAAS) -
Fix issue where
dune exec -wwas unable to kill running programs on
rebuild. (#12360, fixes #12323, @Alizter) -
Fix package extraction on systems with tar implementations that don't
auto-detect compression (e.g., OpenBSD). Dune now passes explicit
decompression flags (-z for gzip, -j for bzip2) when needed, and provides
clear error messages for unsupported formats like XZ and LZMA. (#13688,
fixes #10123, @Alizter) -
Resolve context and workspace binaries introduced by the respective
(env (binaries ..))stanzas. (#12952, fixes #6220, @anmonteiro) -
Fix
diffpromotions originating from sandboxed rules. Previously, they
would be completely ignored as the sandbox with the promoted file would be
destroyed if the promotion fired (#13520, @rgrinberg) -
Fix failure to digest installed directory targets, allowing them to be used
as dependencies to other rules. (#13045, @anmonteiro) -
Fix handling of
(select ..)field when used with(include_subdirs ..).
(select <path> from ..)modules now parsepathas a relative path
starting from the module group root (#13175, fixes #4383, #12450,
@anmonteiro) -
Fix dune trying to kill processes that were already reaped due to race
conditions (#13245, @rgrinberg) -
Add
O_CLOEXECto all files used for stdin/stdout/stderr (#13385, @rgrinberg) -
Fix
$ dune promote dir/foowhendirdoes not exist (#13493, @rgrinberg) -
Fix
(select ..)field evaluation when a transitive library has optional
dependencies (fixes #13299, #13389, @anmonteiro) -
Fix sandboxed builds of
librarystanzas that set
(stdlib (modules_before_stdlib ..))(#13624, @anmonteiro) -
Dune cache: use of hard links under Windows. (#13714, @Nevor)
-
Fixed non-build caches not following
$DUNE_CACHE_ROOTand instead only
relying on$XDG_CACHE_HOME.
This means the normal build cache moves:
$DUNE_CACHE_ROOT -> $DUNE_CACHE_ROOT/db(no changes if that variable was
unset). Affected users can prevent a full cache invalidation by moving
previous contents:
cd $DUNE_CACHE_ROOT; mkdir db; mv <contents of directory> db.
(#11612, fixes #11584, @ElectreAAS) -
$ dune promotion listwrites output to stdout rather than stderr (#13462) -
Improve handling of empty files in the
diffaction. These are now correctly
distinguished from empty files. (#13696, @rgrinberg) -
Pass
/dev/nullto--diff-commandinstead of non-existent files (#13696,
@rgrinberg) -
Fix failure when multiple
rocq.extractionstanzas existing in a directory
(#13531, fixes #8042, @rlepigre-skylabs-ai) -
Print
$ dune promotion showoutput to stdout rather than stderr (#13481,
@rgrinberg) -
Fix deadlock in the
memolibrary in the presence of dependency cycles
(#13625, @anmonteiro) -
Fix promotions that modify a directory into a file (#13516, fixes #4067,
@rgrinberg) -
Fix installation of implementations of virtual libraries. This failed when
the implementation had no private modules, but the virtual library did
(#10635, @rgrinberg) -
Respect the
(dir ..)field on packages when setting up cram tests (#13581,
@rgrinberg)
Added
-
Add support for generating
.cmsfiles using oxcaml and adding.cmsor
.cmtfiles as compilation dependencies (#13397, @spiessimon) -
Add trace events for custom actions (#13265, @rgrinberg)
-
Allow enabling extensions with
(using ..)indune-workspacefiles
(#13395, @spiessimon) -
Add sandbox extraction trace event (#13544, @rgrinberg)
-
Add the initial cwd to the first config event (#13026, @rgrinberg)
-
Dune dune produces trace events in
DUNE_ACTION_TRACE_DIRif this variable
is set. (#13302, @rgrinberg) -
Add file watching events to the trace file (#13038, @rgrinberg)
-
Introduce the
$ dune trace catsubcommand to view the trace file. (#13055,
@rgrinberg) -
Add diagnostic events to the trace. (#13041, @rgrinberg)
-
Add
DUNE_JOBSenvironment variable for controlling concurrency of Dune from
environment. TheINSIDE_DUNEvariable also now no longer controls
concurrency (#12800, @Alizter) -
Support for Rocq expected output tests (#13632, @rlepigre-skylabs-ai)
-
Add
rusageinformation to completed processes in the trace (@rgrinberg,
#13241) -
Add process start events to the trace (#13261, rgrinberg)
-
Generate odoc documentation in markdown using the
@doc-markdownalias
(#12581, @davesnx) -
Add timing information for every command executed by cram (#13092,
@rgrinberg) -
Add the workspace root to the config trace event (#12922, @rgrinberg)
-
Introduce the
dune-action-tracelibrary. This public library is to be used
by custom actions to emit trace events while executed as part of a dune
build. The trace events emitted through this library will be incorporated
into dune's own trace (#13348, @rgrinberg) -
Add
dune-find-dominatingtodune.el, a command to find the
dominating dune file. (#12696, @arvidj) -
Add a
--no-recursiveflag to$ dune describe workspace(#13590, @rgrinberg) -
Trace events for files written directly by dune (#13618, @rgrinberg)
-
Allow expansion of special forms like
(:include ..)and%{read-lines:..}
in themodulesspecification for theocamllex,ocamlyaccandmenhir
stanzas. (#13105, #13135, #13157, @anmonteiro) -
Add a trace event for snapshotting the asndbox (#13541, @rgrinberg)
-
Add signal send and receive events to the trace (#13193, @rgrinberg)
-
Emit final trace event before exiting. (#13018, @rgrinberg)
-
dune runtestcan now run individual test executables from(tests)stanzas
and inline tests from(library (inline_tests))stanzas by providing their
source files as arguments. (#13064, fixes #870, @Alizter) -
Add a
shellfield to the cram stanza. This field allows customizing the
shell to bebashrather thansh(#13083, @haochenx)
Changed
-
Start sandboxing the execution of tests defined with the
testandtests
stanzas (#13510, #13617, @rgrinberg) -
Disabled cram tests can now be run explicitly with
dune runtest disabled.t.
Theenabled_iffield now only controls whether a test is included in
the@runtestalias. (#13081, @Alizter) -
Process categories in trace events are moved to their own field in
args
(#13024, @rgrinberg) -
Sandbox running
ocamllexandocamlyaccactions. (#13098, @anmonteiro) -
Sandboxing mdx test actions is now the default starting from
0.5(#13504,
@rgrinberg) -
Start sandboxing Melange rules by default in the
(library ..)and
(melange.emit ..)stanzas (#13619, @anmonteiro) -
Introduce a promotion trace event and remove the corresponding verbose log
message. (#12949, #13444, @rgrinberg) -
Change dune's trace format to emit canonical s-expressions. This improves
performance and is better aligned with dune's usage of the format
elsewhere.$ dune trace catcan also emit the trace in--chrome-trace
for perfetto, or--sexpfor regular s-expressions for interactive usage.
(#13059, @rgrinberg) -
Move all logging statements to the trace file. All log statements now contain
structured payloads (#13015, fixes #12904, @rgrinberg) -
Add a target resolution event to replace the equivalent log message (#12955,
@rgrinberg)
3.22.0~alpha0
CHANGES:
Fixed
-
Dyn.to_stringnow uses a smarter way to convert floats. This ensures that
floats are printed with enough precision to round-trip and are valid OCaml
lexemes. (#12982, fixes #12980, @Alizter) -
Fix
dune install --prefixfailing with relative paths outside the workspace
like../foo(#12993, fixes #12241, @benodiwal) -
Delete sandboxes with broken permissions (#13511, @rgrinberg)
-
Fix compiling Menhir parsers that refer to sibling modules within a
subdirectory of(include_subdirs qualified). (#13118, fixes #11119,
@anmonteiro) -
Fixed the dependency specification of C stubs, which could result in C
stubs not getting rebuilt when needed (which could in turn lead to
segmentation faults and other hard-to-track bugs).
(#13652, fixes #13651, @nojb) -
Fix rpc not transferring promotion warnings to the client
(#12604, fixes #12578, @ElectreAAS) -
Fix issue where
dune exec -wwas unable to kill running programs on
rebuild. (#12360, fixes #12323, @Alizter) -
Resolve context and workspace binaries introduced by the respective
(env (binaries ..))stanzas. (#12952, fixes #6220, @anmonteiro) -
Fix
diffpromotions originating from sandboxed rules. Previously, they
would be completely ignored as the sandbox with the promoted file would be
destroyed if the promotion fired (#13520, @rgrinberg) -
Fix failure to digest installed directory targets, allowing them to be used
as dependencies to other rules. (#13045, @anmonteiro) -
Fix handling of
(select ..)field when used with(include_subdirs ..).
(select <path> from ..)modules now parsepathas a relative path
starting from the module group root (#13175, fixes #4383, #12450,
@anmonteiro) -
Fix dune trying to kill processes that were already reaped due to race
conditions (#13245, @rgrinberg) -
Add
O_CLOEXECto all files used for stdin/stdout/stderr (#13385, @rgrinberg) -
Fix
$ dune promote dir/foowhendirdoes not exist (#13493, @rgrinberg) -
Fix
(select ..)field evaluation when a transitive library has optional
dependencies (fixes #13299, #13389, @anmonteiro) -
Fix sandboxed builds of
librarystanzas that set
(stdlib (modules_before_stdlib ..))(#13624, @anmonteiro) -
Fixed non-build caches not following
$DUNE_CACHE_ROOTand instead only
relying on$XDG_CACHE_HOME.
This means the normal build cache moves:
$DUNE_CACHE_ROOT -> $DUNE_CACHE_ROOT/db(no changes if that variable was
unset). Affected users can prevent a full cache invalidation by moving
previous contents:
cd $DUNE_CACHE_ROOT; mkdir db; mv <contents of directory> db.
(#11612, fixes #11584, @ElectreAAS) -
$ dune promotion listwrites output to stdout rather than stderr (#13462) -
Improve handling of empty files in the
diffaction. These are now correctly
distinguished from empty files. (#13696, @rgrinberg) -
Pass
/dev/nullto--diff-commandinstead of non-existent files (#13696,
@rgrinberg) -
Fix failure when multiple
rocq.extractionstanzas existing in a directory
(#13531, fixes #8042, @rlepigre-skylabs-ai) -
Print
$ dune promotion showoutput to stdout rather than stderr (#13481,
@rgrinberg) -
Fix deadlock in the
memolibrary in the presence of dependency cycles
(#13625, @anmonteiro) -
Fix promotions that modify a directory into a file (#13516, fixes #4067,
@rgrinberg) -
Fix installation of implementations of virtual libraries. This failed when
the implementation had no private modules, but the virtual library did
(#10635, @rgrinberg) -
Respect the
(dir ..)field on packages when setting up cram tests (#13581,
@rgrinberg)
Added
-
Add support for generating
.cmsfiles using oxcaml and adding.cmsor
.cmtfiles as compilation dependencies (#13397, @spiessimon) -
Add trace events for custom actions (#13265, @rgrinberg)
-
Allow enabling extensions with
(using ..)indune-workspacefiles
(#13395, @spiessimon) -
Add sandbox extraction trace event (#13544, @rgrinberg)
-
Add the initial cwd to the first config event (#13026, @rgrinberg)
-
Dune produces trace events in
DUNE_ACTION_TRACE_DIRif this variable
is set. (#13302, @rgrinberg) -
Add file watching events to the trace file (#13038, @rgrinberg)
-
Introduce the
$ dune trace catsubcommand to view the trace file. (#13055,
@rgrinberg) -
Add diagnostic events to the trace. (#13041, @rgrinberg)
-
Add
DUNE_JOBSenvironment variable for controlling concurrency of Dune from
environment. TheINSIDE_DUNEvariable also now no longer controls
concurrency (#12800, @Alizter) -
Support for Rocq expected output tests (#13632, @rlepigre-skylabs-ai)
-
Add
rusageinformation to completed processes in the trace (@rgrinberg,
#13241) -
Add process start events to the trace (#13261, rgrinberg)
-
Generate odoc documentation in markdown using the
@doc-markdownalias
(#12581, @davesnx) -
Add timing information for every command executed by cram (#13092,
@rgrinberg) -
Add the workspace root to the config trace event (#12922, @rgrinberg)
-
Introduce the
dune-action-tracelibrary. This public library is to be used
by custom actions to emit trace events while executed as part of a dune
build. The trace events emitted through this library will be incorporated
into dune's own trace (#13348, @rgrinberg) -
Add
dune-find-dominatingtodune.el, a command to find the
dominating dune file. (#12696, @arvidj) -
Add a
--no-recursiveflag to$ dune describe workspace(#13590, @rgrinberg) -
Trace events for files written directly by dune (#13618, @rgrinberg)
-
Allow expansion of special forms like
(:include ..)and%{read-lines:..}
in themodulesspecification for theocamllex,ocamlyaccandmenhir
stanzas. (#13105, #13135, #13157, @anmonteiro) -
Add a trace event for snapshotting the sandbox (#13541, @rgrinberg)
-
Add signal send and receive events to the trace (#13193, @rgrinberg)
-
Emit final trace event before exiting. (#13018, @rgrinberg)
-
dune runtestcan now run individual test executables from(tests)stanzas
and inline tests from(library (inline_tests))stanzas by providing their
source files as arguments. (#13064, fixes #870, @Alizter) -
Add a
shellfield to the cram stanza. This field allows customizing the
shell to bebashrather thansh(#13083, @haochenx)
Changed
-
Start sandboxing the execution of tests defined with the
testandtests
stanzas (#13510, #13617, @rgrinberg) -
Disabled cram tests can now be run explicitly with
dune runtest disabled.t.
Theenabled_iffield now only controls whether a test is included in
the@runtestalias. (#13081, @Alizter) -
Process categories in trace events are moved to their own field in
args
(#13024, @rgrinberg) -
Sandbox running
ocamllexandocamlyaccactions. (#13098, @anmonteiro) -
Sandboxing mdx test actions is now the default starting from
0.5(#13504,
@rgrinberg) -
Start sandboxing Melange rules by default in the
(library ..)and
(melange.emit ..)stanzas (#13619, @anmonteiro) -
Introduce a promotion trace event and remove the corresponding verbose log
message. (#12949, #13444, @rgrinberg) -
Change dune's trace format to emit canonical s-expressions. This improves
performance and is better aligned with dune's usage of the format
elsewhere.$ dune trace catcan also emit the trace in--chrome-trace
for perfetto, or--sexpfor regular s-expressions for interactive usage.
(#13059, @rgrinberg) -
Move all logging statements to the trace file. All log statements now contain
structured payloads (#13015, fixes #12904, @rgrinberg) -
Add a target resolution event to replace the equivalent log message (#12955,
@rgrinberg)
3.21.1
CHANGES:
Fixed
- Fix build issues on NetBSD and OpenBSD via update of vendored ocaml-lmdb
(#13074, @Alizter) - Fix
melange.emitnot respecting the package mask via-p <PKG>(#13522,
@anmonteiro)
Changed
- Stop starting RPC server with
$ dune promote(#13428, @rgrinberg)
3.21.0
CHANGES:
Fixed
-
Fix
include_subdirs qualifiedincorrectly picking the furthest module
instead of the closest when resolving module name ambiguities. (#12587,
@ElectreAAS and @Alizter) -
Fix: include the module alias in the transitive dependency closure with
(include_subdirs qualified). (#12299, @anmonteiro) -
Improve error messages for invalid version formats containing non-ASCII
characters. Previously, non-ASCII characters in version strings (e.g.,(lang dune è)or(using menhir π3.14)) would fail with a generic "Invalid file"
error. Now they display a clear message: "Invalid atom: contains non-ASCII
character(s). Atoms must only contain ASCII characters." The fix is
implemented at the lexer level, providing consistent error handling across all
s-expression parsing. (#12844, fixes #12836, @benodiwal) -
Pass private modules with -H when this is available (#12666, @rgrinberg)
-
Allow multiple modules in
(modules_flags ...), incoq.theory(#12733, @rlepigre) -
Improve error message for invalid version formats in both
(lang dune ...)and
(using extension ...)declarations. Changes "Atom of the form NNN.NNN expected"
to "Invalid version. Version must be two numbers separated by a dot." (#12833, @benodiwal) -
Fix crash when running
dune build @checkon a library with virtual modules.
(#12644, fixes #12636, @Alizter) -
Provide a more informative error message when
(pkg enabled)is put in
dune-projectinstead ofdune-workspace. (#12802, fixes #12801,
@benodiwal) -
Improve error message when invalid version strings are used in
dune-project
files. Non-ASCII characters and malformed versions now show a helpful hint
with an example of the correct format. (#12794, fixes #12751, @benodiwal) -
Stop hiding the
root_modulefrom the include path (#12239, @rgrinberg) -
Allow
$ dune initto work on absolute paths (#12601, fixes #7806,
@rgrinberg) -
(include_subdirs qualified): Add missing alias dependency to module group.
(#12530, @anmonteiro) -
Add Melange compilation to the
@allalias in libraries (#12628,
@anmonteiro) -
Fix greedy version location in lang declarations. Previously, error locations for
invalid lang versions would span multiple bytes for multi-byte UTF-8 characters,
causing carets to appear misaligned and seemingly include the closing
parenthesis. Now, error locations for ASCII strings show the full length (e.g.,
"Ali" shows^^^), while non-ASCII strings show only the first byte (e.g., "è"
shows^) to avoid multi-byte character display issues. (#12869, fixes #12806,
@benodiwal) -
melange support: don't emit empty JavaScript modules for generated module
aliases. (#12464, @anmonteiro)
Added
-
(Experimental): Introduce the
library_parameterstanza. It allows users to
declare a parameter when using the OxCaml compiler.
(#11963, implements #12084, @maiste) -
Added the ability to scroll horizontally in TUI. (#12386, @Alizter)
-
Feature: Include shell command that was executed when a cram test has
occurred in the error message (#12307, @rgrinberg) -
support expanding variables in
(promote (into ..))(#12832, fixes #12742,
@anmonteiro) -
Add support for
%{cmt:...}and%{cmti:...}variables to reference
compiled annotation files (.cmt and .cmti) containing typed abstract syntax
trees with location and type information. (#12634, grants #12633, @Alizter) -
Add
$ dune describe teststo describe the tests in the workspace
(@Gromototo, #12545, fixes #12030) -
Add
argv, the process environment, and the dune version to the config event
in the trace (#12909, @rgrinberg) -
Allow
dune runtestto properly run while a watch mode server is running.
(#12473, grants #8114, @gridbugs and @ElectreAAS) -
Use copy-on-write (COW) when copying files on filesystems that support it
(Btrfs, ZFS, XFS, etc), under Linux. (#12074, fixes #12071, @nojb) -
Add support for Tangled ATproto-based code repositories (#12197, @avsm)
-
Add support for instantiating OxCaml parameterised libraries.
(#12561, @art-w) -
Add a
(conflict_markers error|ignore)option to the cram stanza. When
(conflict_markers error)is set, the cram test will fail in the presence of
conflict markers. Git, diff3 and jujutsu conflict markers are detected.
(#12538, #12617, #12655, fixes #12512, @rgrinberg, @Alizter) -
Introduce a
%{ppx:lib1+..+libn}stanza to make it possible to refer to ppx
executables built by dune. This is useful for writing tests (#12711,
@rgrinberg) -
Introduce a
(dir ..)field on packages defined in thedune-project. This
field allows to associate a directory with a particular package. This makes
dune automatically filter out all stanzas in this directory and its
descendants with--only-packages. All users are recommended to switch to
using this field. (#12614, fixes #3255, @rgrinberg) -
Add support for
DUNE_ROOTenvironment variable, similar to the existing
--rootCLI parameter. (fixes #12399 @sir4ur0n) -
Introduce an
unused-libsalias to detect unused libraries.
(#12623, fixes #650, @rgrinberg) -
Add
--filesflag todune describe opam-filesto print only the names of
the opam files line by line. (#9793, @reynir and @Alizter) -
dune execnow accepts absolute paths inside the workspace.
(#12094, @Alizter) -
Add
coqdoc_headerandcoqdoc_footerfields to thecoqfield of the
envstanza, and to thecoq.theorystanza, allowing to configure a
custom header or footer respectively in the HTML output ofcoqdoc.
(#11131, @rlepigre) -
Allow
dune fmtto properly run while a watch mode server is running.
Note that the--previewflag is not supported in this mode.
(#12064, @ElectreAAS) -
Support for generating
_CoqProjectfiles forcoq.theorystanzas.
(#11752, @rlepigre) -
Added
(files)stanza, similar to(dirs)to control which files are visible
to Dune on a per-directory basis. (#12879, @nojb) -
Add support for %{ocaml-config:ox} (#12236, @jonludlam)
-
Introduce
dune promotion showcommand to display the contents of corrected
files that are ready for promotion. This allows users to preview changes
before runningdune promote. The command accepts file arguments to show
specific files, or displays all promotable files when called without
arguments. (#12669, fixes #3883, @MixiMaxiMouse) -
New
(lang rocq)build mode for Rocq 9.0 and later. This new mode
is very similar to the existing(lang coq), except that it doesn't
need thecoq*compatibility wrappers. As of today(lang rocq)
doesn't support yet composed builds with Rocq itself, this will be
added later.(lang coq)is deprecated, development is frozen, and
will be removed at some point in the future. (#12035, @ejgallego,
@Lysxia, fixes #11572)
Changed
-
Don't run
ocamldepto compute false dependencies on theroot_module
(#12227, @rgrinberg) -
dune format-dune-filenow uses the syntax version of the Dune project that
contains the file being formatted (if any) instead of using the latest version
available, which remains the default if there is no Dune project in scope.
(#11865, @nojb) -
Persistent DB and process events have been slightly modified. Persistent
DB events have more concise names and job events always include full
information. (#12867, @rgrinberg) -
Removed the
--trace-extendedflag. Its functionality is always enabled when
tracing is active (#12908, @rgrinberg) -
The
test/dunefile generated bydune init projnow depends on the project library. (#12791, @shonfeder) -
Starting with version 3.21 of the Dune language, Dune no longer changes the
default set of compiler warnings. For users that would like to keep the old
behaviour, the variable%{dune-warnings}can be used in an(env)stanza in
a top-level Dune file:(env (dev (flags :standard %{dune-warnings}))).
(#12766, @nojb) -
Fix: stop generating
cmtfiles for cinaps binaries (#12530, @rgrinberg)
3.21.0~alpha5
CHANGES:
Fixed
-
Fix
include_subdirs qualifiedincorrectly picking the furthest module
instead of the closest when resolving module name ambiguities. (#12587,
@ElectreAAS and @Alizter) -
Fix: include the module alias in the transitive dependency closure with
(include_subdirs qualified). (#12299, @anmonteiro) -
Improve error messages for invalid version formats containing non-ASCII
characters. Previously, non-ASCII characters in version strings (e.g.,(lang dune è)or(using menhir π3.14)) would fail with a generic "Invalid file"
error. Now they display a clear message: "Invalid atom: contains non-ASCII
character(s). Atoms must only contain ASCII characters." The fix is
implemented at the lexer level, providing consistent error handling across all
s-expression parsing. (#12844, fixes #12836, @benodiwal) -
Pass private modules with -H when this is available (#12666, @rgrinberg)
-
Allow multiple modules in
(modules_flags ...), incoq.theory(#12733, @rlepigre) -
Improve error message for invalid version formats in both
(lang dune ...)and
(using extension ...)declarations. Changes "Atom of the form NNN.NNN expected"
to "Invalid version. Version must be two numbers separated by a dot." (#12833, @benodiwal) -
Fix crash when running
dune build @checkon a library with virtual modules.
(#12644, fixes #12636, @Alizter) -
Provide a more informative error message when
(pkg enabled)is put in
dune-projectinstead ofdune-workspace. (#12802, fixes #12801,
@benodiwal) -
Improve error message when invalid version strings are used in
dune-project
files. Non-ASCII characters and malformed versions now show a helpful hint
with an example of the correct format. (#12794, fixes #12751, @benodiwal) -
Stop hiding the
root_modulefrom the include path (#12239, @rgrinberg) -
Allow
$ dune initto work on absolute paths (#12601, fixes #7806,
@rgrinberg) -
(include_subdirs qualified): Add missing alias dependency to module group.
(#12530, @anmonteiro) -
Add Melange compilation to the
@allalias in libraries (#12628,
@anmonteiro) -
Fix greedy version location in lang declarations. Previously, error locations for
invalid lang versions would span multiple bytes for multi-byte UTF-8 characters,
causing carets to appear misaligned and seemingly include the closing
parenthesis. Now, error locations for ASCII strings show the full length (e.g.,
"Ali" shows^^^), while non-ASCII strings show only the first byte (e.g., "è"
shows^) to avoid multi-byte character display issues. (#12869, fixes #12806,
@benodiwal) -
melange support: don't emit empty JavaScript modules for generated module
aliases. (#12464, @anmonteiro)
Added
-
(Experimental): Introduce the
library_parameterstanza. It allows users to
declare a parameter when using the OxCaml compiler.
(#11963, implements #12084, @maiste) -
Added the ability to scroll horizontally in TUI. (#12386, @Alizter)
-
Feature: Include shell command that was executed when a cram test has
occurred in the error message (#12307, @rgrinberg) -
support expanding variables in
(promote (into ..))(#12832, fixes #12742,
@anmonteiro) -
Add support for
%{cmt:...}and%{cmti:...}variables to reference
compiled annotation files (.cmt and .cmti) containing typed abstract syntax
trees with location and type information. (#12634, grants #12633, @Alizter) -
Add
$ dune describe teststo describe the tests in the workspace
(@Gromototo, #12545, fixes #12030) -
Add
argv, the process environment, and the dune version to the config event
in the trace (#12909, @rgrinberg) -
Allow
dune runtestto properly run while a watch mode server is running.
(#12473, grants #8114, @gridbugs and @ElectreAAS) -
Use copy-on-write (COW) when copying files on filesystems that support it
(Btrfs, ZFS, XFS, etc), under Linux. (#12074, fixes #12071, @nojb) -
Add support for Tangled ATproto-based code repositories (#12197, @avsm)
-
Add support for instantiating OxCaml parameterised libraries.
(#12561, @art-w) -
Add a
(conflict_markers error|ignore)option to the cram stanza. When
(conflict_markers error)is set, the cram test will fail in the presence of
conflict markers. Git, diff3 and jujutsu conflict markers are detected.
(#12538, #12617, #12655, fixes #12512, @rgrinberg, @Alizter) -
Introduce a
%{ppx:lib1+..+libn}stanza to make it possible to refer to ppx
executables built by dune. This is useful for writing tests (#12711,
@rgrinberg) -
Introduce a
(dir ..)field on packages defined in thedune-project. This
field allows to associate a directory with a particular package. This makes
dune automatically filter out all stanzas in this directory and its
descendants with--only-packages. All users are recommended to switch to
using this field. (#12614, fixes #3255, @rgrinberg) -
Add support for
DUNE_ROOTenvironment variable, similar to the existing
--rootCLI parameter. (fixes #12399 @sir4ur0n) -
Introduce an
unused-libsalias to detect unused libraries.
(#12623, fixes #650, @rgrinberg) -
Add
--filesflag todune describe opam-filesto print only the names of
the opam files line by line. (#9793, @reynir and @Alizter) -
dune execnow accepts absolute paths inside the workspace.
(#12094, @Alizter) -
Add
coqdoc_headerandcoqdoc_footerfields to thecoqfield of the
envstanza, and to thecoq.theorystanza, allowing to configure a
custom header or footer respectively in the HTML output ofcoqdoc.
(#11131, @rlepigre) -
Allow
dune fmtto properly run while a watch mode server is running.
Note that the--previewflag is not supported in this mode.
(#12064, @ElectreAAS) -
Support for generating
_CoqProjectfiles forcoq.theorystanzas.
(#11752, @rlepigre) -
Added
(files)stanza, similar to(dirs)to control which files are visible
to Dune on a per-directory basis. (#12879, @nojb) -
Add support for %{ocaml-config:ox} (#12236, @jonludlam)
-
Introduce
dune promotion showcommand to display the contents of corrected
files that are ready for promotion. This allows users to preview changes
before runningdune promote. The command accepts file arguments to show
specific files, or displays all promotable files when called without
arguments. (#12669, fixes #3883, @MixiMaxiMouse) -
New
(lang rocq)build mode for Rocq 9.0 and later. This new mode
is very similar to the existing(lang coq), except that it doesn't
need thecoq*compatibility wrappers. As of today(lang rocq)
doesn't support yet composed builds with Rocq itself, this will be
added later.(lang coq)is deprecated, development is frozen, and
will be removed at some point in the future. (#12035, @ejgallego,
@Lysxia, fixes #11572)
Changed
-
Don't run
ocamldepto compute false dependencies on theroot_module
(#12227, @rgrinberg) -
dune format-dune-filenow uses the syntax version of the Dune project that
contains the file being formatted (if any) instead of using the latest version
available, which remains the default if there is no Dune project in scope.
(#11865, @nojb) -
Persistent DB and process events have been slightly modified. Persistent
DB events have more concise names and job events always include full
information. (#12867, @rgrinberg) -
Removed the
--trace-extendedflag. Its functionality is always enabled when
tracing is active (#12908, @rgrinberg) -
The
test/dunefile generated bydune init projnow depends on the project library. (#12791, @shonfeder) -
Starting with version 3.21 of the Dune language, Dune no longer changes the
default set of compiler warnings. For users that would like to keep the old
behaviour, the variable%{dune-warnings}can be used in an(env)stanza in
a top-level Dune file:(env (dev (flags :standard %{dune-warnings}))).
(#12766, @nojb) -
Fix: stop generating
cmtfiles for cinaps binaries (#12530, @rgrinberg)
3.21.0~alpha4
CHANGES:
Fixed
-
Fix
include_subdirs qualifiedincorrectly picking the furthest module
instead of the closest when resolving module name ambiguities. (#12587,
@ElectreAAS and @Alizter) -
Fix: include the module alias in the transitive dependency closure with
(include_subdirs qualified). (#12299, @anmonteiro) -
Improve error messages for invalid version formats containing non-ASCII
characters. Previously, non-ASCII characters in version strings (e.g.,(lang dune è)or(using menhir π3.14)) would fail with a generic "Invalid file"
error. Now they display a clear message: "Invalid atom: contains non-ASCII
character(s). Atoms must only contain ASCII characters." The fix is
implemented at the lexer level, providing consistent error handling across all
s-expression parsing. (#12844, fixes #12836, @benodiwal) -
Pass private modules with -H when this is available (#12666, @rgrinberg)
-
Allow multiple modules in
(modules_flags ...), incoq.theory(#12733, @rlepigre) -
Improve error message for invalid version formats in both
(lang dune ...)and
(using extension ...)declarations. Changes "Atom of the form NNN.NNN expected"
to "Invalid version. Version must be two numbers separated by a dot." (#12833, @benodiwal) -
Fix crash when running
dune build @checkon a library with virtual modules.
(#12644, fixes #12636, @Alizter) -
Provide a more informative error message when
(pkg enabled)is put in
dune-projectinstead ofdune-workspace. (#12802, fixes #12801,
@benodiwal) -
Improve error message when invalid version strings are used in
dune-project
files. Non-ASCII characters and malformed versions now show a helpful hint
with an example of the correct format. (#12794, fixes #12751, @benodiwal) -
Stop hiding the
root_modulefrom the include path (#12239, @rgrinberg) -
Allow
$ dune initto work on absolute paths (#12601, fixes #7806,
@rgrinberg) -
(include_subdirs qualified): Add missing alias dependency to module group.
(#12530, @anmonteiro) -
Add Melange compilation to the
@allalias in libraries (#12628,
@anmonteiro) -
Fix greedy version location in lang declarations. Previously, error locations for
invalid lang versions would span multiple bytes for multi-byte UTF-8 characters,
causing carets to appear misaligned and seemingly include the closing
parenthesis. Now, error locations for ASCII strings show the full length (e.g.,
"Ali" shows^^^), while non-ASCII strings show only the first byte (e.g., "è"
shows^) to avoid multi-byte character display issues. (#12869, fixes #12806,
@benodiwal) -
melange support: don't emit empty JavaScript modules for generated module
aliases. (#12464, @anmonteiro)
Added
-
(Experimental): Introduce the
library_parameterstanza. It allows users to
declare a parameter when using the OxCaml compiler.
(#11963, implements #12084, @maiste) -
Added the ability to scroll horizontally in TUI. (#12386, @Alizter)
-
Feature: Include shell command that was executed when a cram test has
occurred in the error message (#12307, @rgrinberg) -
support expanding variables in
(promote (into ..))(#12832, fixes #12742,
@anmonteiro) -
Add support for
%{cmt:...}and%{cmti:...}variables to reference
compiled annotation files (.cmt and .cmti) containing typed abstract syntax
trees with location and type information. (#12634, grants #12633, @Alizter) -
Add
$ dune describe teststo describe the tests in the workspace
(@Gromototo, #12545, fixes #12030) -
Add
argv, the process environment, and the dune version to the config event
in the trace (#12909, @rgrinberg) -
Allow
dune runtestto properly run while a watch mode server is running.
(#12473, grants #8114, @gridbugs and @ElectreAAS) -
Use copy-on-write (COW) when copying files on filesystems that support it
(Btrfs, ZFS, XFS, etc), under Linux. (#12074, fixes #12071, @nojb) -
Add support for Tangled ATproto-based code repositories (#12197, @avsm)
-
Add support for instantiating OxCaml parameterised libraries.
(#12561, @art-w) -
Add a
(conflict_markers error|ignore)option to the cram stanza. When
(conflict_markers error)is set, the cram test will fail in the presence of
conflict markers. Git, diff3 and jujutsu conflict markers are detected.
(#12538, #12617, #12655, fixes #12512, @rgrinberg, @Alizter) -
Introduce a
%{ppx:lib1+..+libn}stanza to make it possible to refer to ppx
executables built by dune. This is useful for writing tests (#12711,
@rgrinberg) -
Introduce a
(dir ..)field on packages defined in thedune-project. This
field allows to associate a directory with a particular package. This makes
dune automatically filter out all stanzas in this directory and its
descendants with--only-packages. All users are recommended to switch to
using this field. (#12614, fixes #3255, @rgrinberg) -
Add support for
DUNE_ROOTenvironment variable, similar to the existing
--rootCLI parameter. (fixes #12399 @sir4ur0n) -
Introduce an
unused-libsalias to detect unused libraries.
(#12623, fixes #650, @rgrinberg) -
Add
--filesflag todune describe opam-filesto print only the names of
the opam files line by line. (#9793, @reynir and @Alizter) -
dune execnow accepts absolute paths inside the workspace.
(#12094, @Alizter) -
Add
coqdoc_headerandcoqdoc_footerfields to thecoqfield of the
envstanza, and to thecoq.theorystanza, allowing to configure a
custom header or footer respectively in the HTML output ofcoqdoc.
(#11131, @rlepigre) -
Allow
dune fmtto properly run while a watch mode server is running.
Note that the--previewflag is not supported in this mode.
(#12064, @ElectreAAS) -
Support for generating
_CoqProjectfiles forcoq.theorystanzas.
(#11752, @rlepigre) -
Added
(files)stanza, similar to(dirs)to control which files are visible
to Dune on a per-directory basis. (#12879, @nojb) -
Add support for %{ocaml-config:ox} (#12236, @jonludlam)
-
Introduce
dune promotion showcommand to display the contents of corrected
files that are ready for promotion. This allows users to preview changes
before runningdune promote. The command accepts file arguments to show
specific files, or displays all promotable files when called without
arguments. (#12669, fixes #3883, @MixiMaxiMouse) -
New
(lang rocq)build mode for Rocq 9.0 and later. This new mode
is very similar to the existing(lang coq), except that it doesn't
need thecoq*compatibility wrappers. As of today(lang rocq)
doesn't support yet composed builds with Rocq itself, this will be
added later.(lang coq)is deprecated, development is frozen, and
will be removed at some point in the future. (#12035, @ejgallego,
@Lysxia, fixes #11572)
Changed
-
Don't run
ocamldepto compute false dependencies on theroot_module
(#12227, @rgrinberg) -
dune format-dune-filenow uses the syntax version of the Dune project that
contains the file being formatted (if any) instead of using the latest version
available, which remains the default if there is no Dune project in scope.
(#11865, @nojb) -
Persistent DB and process events have been slightly modified. Persistent
DB events have more concise names and job events always include full
information. (#12867, @rgrinberg) -
Removed the
--trace-extendedflag. Its functionality is always enabled when
tracing is active (#12908, @rgrinberg) -
The
test/dunefile generated bydune init projnow depends on the project library. (#12791, @shonfeder) -
Starting with version 3.21 of the Dune language, Dune no longer changes the
default set of compiler warnings. For users that would like to keep the old
behaviour, the variable%{dune-warnings}can be used in an(env)stanza in
a top-level Dune file:(env (dev (flags :standard %{dune-warnings}))).
(#12766, @nojb) -
Fix: stop generating
cmtfiles for cinaps binaries (#12530, @rgrinberg)
3.21.0~alpha3
CHANGES:
Fixed
-
Fix
include_subdirs qualifiedincorrectly picking the furthest module
instead of the closest when resolving module name ambiguities. (#12587,
@ElectreAAS and @Alizter) -
Fix: include the module alias in the transitive dependency closure with
(include_subdirs qualified). (#12299, @anmonteiro) -
Improve error messages for invalid version formats containing non-ASCII
characters. Previously, non-ASCII characters in version strings (e.g.,(lang dune è)or(using menhir π3.14)) would fail with a generic "Invalid file"
error. Now they display a clear message: "Invalid atom: contains non-ASCII
character(s). Atoms must only contain ASCII characters." The fix is
implemented at the lexer level, providing consistent error handling across all
s-expression parsing. (#12844, fixes #12836, @benodiwal) -
Pass private modules with -H when this is available (#12666, @rgrinberg)
-
Allow multiple modules in
(modules_flags ...), incoq.theory(#12733, @rlepigre) -
Improve error message for invalid version formats in both
(lang dune ...)and
(using extension ...)declarations. Changes "Atom of the form NNN.NNN expected"
to "Invalid version. Version must be two numbers separated by a dot." (#12833, @benodiwal) -
Fix crash when running
dune build @checkon a library with virtual modules.
(#12644, fixes #12636, @Alizter) -
Provide a more informative error message when
(pkg enabled)is put in
dune-projectinstead ofdune-workspace. (#12802, fixes #12801,
@benodiwal) -
Improve error message when invalid version strings are used in
dune-project
files. Non-ASCII characters and malformed versions now show a helpful hint
with an example of the correct format. (#12794, fixes #12751, @benodiwal) -
Stop hiding the
root_modulefrom the include path (#12239, @rgrinberg) -
Allow
$ dune initto work on absolute paths (#12601, fixes #7806,
@rgrinberg) -
(include_subdirs qualified): Add missing alias dependency to module group.
(#12530, @anmonteiro) -
Add Melange compilation to the
@allalias in libraries (#12628,
@anmonteiro) -
Fix greedy version location in lang declarations. Previously, error locations for
invalid lang versions would span multiple bytes for multi-byte UTF-8 characters,
causing carets to appear misaligned and seemingly include the closing
parenthesis. Now, error locations for ASCII strings show the full length (e.g.,
"Ali" shows^^^), while non-ASCII strings show only the first byte (e.g., "è"
shows^) to avoid multi-byte character display issues. (#12869, fixes #12806,
@benodiwal) -
melange support: don't emit empty JavaScript modules for generated module
aliases. (#12464, @anmonteiro)
Added
-
(Experimental): Introduce the
library_parameterstanza. It allows users to
declare a parameter when using the OxCaml compiler.
(#11963, implements #12084, @maiste) -
Added the ability to scroll horizontally in TUI. (#12386, @Alizter)
-
Feature: Include shell command that was executed when a cram test has
occurred in the error message (#12307, @rgrinberg) -
support expanding variables in
(promote (into ..))(#12832, fixes #12742,
@anmonteiro) -
Add support for
%{cmt:...}and%{cmti:...}variables to reference
compiled annotation files (.cmt and .cmti) containing typed abstract syntax
trees with location and type information. (#12634, grants #12633, @Alizter) -
Add
$ dune describe teststo describe the tests in the workspace
(@Gromototo, #12545, fixes #12030) -
Add
argv, the process environment, and the dune version to the config event
in the trace (#12909, @rgrinberg) -
Allow
dune runtestto properly run while a watch mode server is running.
(#12473, grants #8114, @gridbugs and @ElectreAAS) -
Use copy-on-write (COW) when copying files on filesystems that support it
(Btrfs, ZFS, XFS, etc), under Linux. (#12074, fixes #12071, @nojb) -
Add support for Tangled ATproto-based code repositories (#12197, @avsm)
-
Add support for instantiating OxCaml parameterised libraries.
(#12561, @art-w) -
Add a
(conflict_markers error|ignore)option to the cram stanza. When
(conflict_markers error)is set, the cram test will fail in the presence of
conflict markers. Git, diff3 and jujutsu conflict markers are detected.
(#12538, #12617, #12655, fixes #12512, @rgrinberg, @Alizter) -
Introduce a
%{ppx:lib1+..+libn}stanza to make it possible to refer to ppx
executables built by dune. This is useful for writing tests (#12711,
@rgrinberg) -
Introduce a
(dir ..)field on packages defined in thedune-project. This
field allows to associate a directory with a particular package. This makes
dune automatically filter out all stanzas in this directory and its
descendants with--only-packages. All users are recommended to switch to
using this field. (#12614, fixes #3255, @rgrinberg) -
Add support for
DUNE_ROOTenvironment variable, similar to the existing
--rootCLI parameter. (fixes #12399 @sir4ur0n) -
Introduce an
unused-libsalias to detect unused libraries.
(#12623, fixes #650, @rgrinberg) -
Add
--filesflag todune describe opam-filesto print only the names of
the opam files line by line. (#9793, @reynir and @Alizter) -
dune execnow accepts absolute paths inside the workspace.
(#12094, @Alizter) -
Add
coqdoc_headerandcoqdoc_footerfields to thecoqfield of the
envstanza, and to thecoq.theorystanza, allowing to configure a
custom header or footer respectively in the HTML output ofcoqdoc.
(#11131, @rlepigre) -
Allow
dune fmtto properly run while a watch mode server is running.
Note that the--previewflag is not supported in this mode.
(#12064, @ElectreAAS) -
Support for generating
_CoqProjectfiles forcoq.theorystanzas.
(#11752, @rlepigre) -
Added
(files)stanza, similar to(dirs)to control which files are visible
to Dune on a per-directory basis. (#12879, @nojb) -
Add support for %{ocaml-config:ox} (#12236, @jonludlam)
-
Introduce
dune promotion showcommand to display the contents of corrected
files that are ready for promotion. This allows users to preview changes
before runningdune promote. The command accepts file arguments to show
specific files, or displays all promotable files when called without
arguments. (#12669, fixes #3883, @MixiMaxiMouse) -
New
(lang rocq)build mode for Rocq 9.0 and later. This new mode
is very similar to the existing(lang coq), except that it doesn't
need thecoq*compatibility wrappers. As of today(lang rocq)
doesn't support yet composed builds with Rocq itself, this will be
added later.(lang coq)is deprecated, development is frozen, and
will be removed at some point in the future. (#12035, @ejgallego,
@Lysxia, fixes #11572)
Changed
-
Don't run
ocamldepto compute false dependencies on theroot_module
(#12227, @rgrinberg) -
dune format-dune-filenow uses the syntax version of the Dune project that
contains the file being formatted (if any) instead of using the latest version
available, which remains the default if there is no Dune project in scope.
(#11865, @nojb) -
Persistent DB and process events have been slightly modified. Persistent
DB events have more concise names and job events always include full
information. (#12867, @rgrinberg) -
Removed the
--trace-extendedflag. Its functionality is always enabled when
tracing is active (#12908, @rgrinberg) -
The
test/dunefile generated bydune init projnow depends on the project library. (#12791, @shonfeder) -
Starting with version 3.21 of the Dune language, Dune no longer changes the
default set of compiler warnings. For users that would like to keep the old
behaviour, the variable%{dune-warnings}can be used in an(env)stanza in
a top-level Dune file:(env (dev (flags :standard %{dune-warnings}))).
(#12766, @nojb) -
Fix: stop generating
cmtfiles for cinaps binaries (#12530, @rgrinberg)
3.21.0~alpha2
CHANGES:
Fixed
-
Fix
include_subdirs qualifiedincorrectly picking the furthest module
instead of the closest when resolving module name ambiguities. (#12587,
@ElectreAAS and @Alizter) -
Fix: include the module alias in the transitive dependency closure with
(include_subdirs qualified). (#12299, @anmonteiro) -
Pass private modules with -H when this is available (#12666, @rgrinberg)
-
Allow multiple modules in
(modules_flags ...), incoq.theory(#12733, @rlepigre) -
Improve error message for invalid version formats in both
(lang dune ...)and
(using extension ...)declarations. Changes "Atom of the form NNN.NNN expected"
to "Invalid version. Version must be two numbers separated by a dot." (#12833, @benodiwal) -
Fix crash when running
dune build @checkon a library with virtual modules.
(#12644, fixes #12636, @Alizter) -
Provide a more informative error message when
(pkg enabled)is put in
dune-projectinstead ofdune-workspace. (#12802, fixes #12801,
@benodiwal) -
Improve error message when invalid version strings are used in
dune-project
files. Non-ASCII characters and malformed versions now show a helpful hint
with an example of the correct format. (#12794, fixes #12751, @benodiwal) -
Stop hiding the
root_modulefrom the include path (#12239, @rgrinberg) -
Allow
$ dune initto work on absolute paths (#12601, fixes #7806,
@rgrinberg) -
(include_subdirs qualified): Add missing alias dependency to module group.
(#12530, @anmonteiro) -
Add Melange compilation to the
@allalias in libraries (#12628,
@anmonteiro) -
melange support: don't emit empty JavaScript modules for generated module
aliases. (#12464, @anmonteiro)
Added
-
(Experimental): Introduce the
library_parameterstanza. It allows users to
declare a parameter when using the OxCaml compiler.
(#11963, implements #12084, @maiste) -
Added the ability to scroll horizontally in TUI. (#12386, @Alizter)
-
Feature: Include shell command that was executed when a cram test has
occurred in the error message (#12307, @rgrinberg) -
Add support for
%{cmt:...}and%{cmti:...}variables to reference
compiled annotation files (.cmt and .cmti) containing typed abstract syntax
trees with location and type information. (#12634, grants #12633, @Alizter) -
Add
$ dune describe teststo describe the tests in the workspace
(@Gromototo, #12545, fixes #12030) -
Allow
dune runtestto properly run while a watch mode server is running.
(#12473, grants #8114, @gridbugs and @ElectreAAS) -
Use copy-on-write (COW) when copying files on filesystems that support it
(Btrfs, ZFS, XFS, etc), under Linux. (#12074, fixes #12071, @nojb) -
Add support for Tangled ATproto-based code repositories (#12197, @avsm)
-
Add support for instantiating OxCaml parameterised libraries.
(#12561, @art-w) -
Add a
(conflict_markers error|ignore)option to the cram stanza. When
(conflict_markers error)is set, the cram test will fail in the presence of
conflict markers. Git, diff3 and jujutsu conflict markers are detected.
(#12538, #12617, #12655, fixes #12512, @rgrinberg, @Alizter) -
Introduce a
%{ppx:lib1+..+libn}stanza to make it possible to refer to ppx
executables built by dune. This is useful for writing tests (#12711,
@rgrinberg) -
Introduce a
(dir ..)field on packages defined in thedune-project. This
field allows to associate a directory with a particular package. This makes
dune automatically filter out all stanzas in this directory and its
descendants with--only-packages. All users are recommended to switch to
using this field. (#12614, fixes #3255, @rgrinberg) -
Add support for
DUNE_ROOTenvironment variable, similar to the existing
--rootCLI parameter. (fixes #12399 @sir4ur0n) -
Introduce an
unused-libsalias to detect unused libraries.
(#12623, fixes #650, @rgrinberg) -
Add
--filesflag todune describe opam-filesto print only the names of
the opam files line by line. (#9793, @reynir and @Alizter) -
dune execnow accepts absolute paths inside the workspace.
(#12094, @Alizter) -
Add
coqdoc_headerandcoqdoc_footerfields to thecoqfield of the
envstanza, and to thecoq.theorystanza, allowing to configure a
custom header or footer respectively in the HTML output ofcoqdoc.
(#11131, @rlepigre) -
Allow
dune fmtto properly run while a watch mode server is running.
Note that the--previewflag is not supported in this mode.
(#12064, @ElectreAAS) -
Support for generating
_CoqProjectfiles forcoq.theorystanzas.
(#11752, @rlepigre) -
Add support for %{ocaml-config:ox} (#12236, @jonludlam)
-
Introduce
dune promotion showcommand to display the contents of corrected
files that are ready for promotion. This allows users to preview changes
before runningdune promote. The command accepts file arguments to show
specific files, or displays all promotable files when called without
arguments. (#12669, fixes #3883, @MixiMaxiMouse) -
New
(lang rocq)build mode for Rocq 9.0 and later. This new mode
is very similar to the existing(lang coq), except that it doesn't
need thecoq*compatibility wrappers. As of today(lang rocq)
doesn't support yet composed builds with Rocq itself, this will be
added later.(lang coq)is deprecated, development is frozen, and
will be removed at some point in the future. (#12035, @ejgallego,
@Lysxia, fixes #11572)
Changed
-
Don't run
ocamldepto compute false dependencies on theroot_module
(#12227, @rgrinberg) -
dune format-dune-filenow uses the syntax version of the Dune project that
contains the file being formatted (if any) instead of using the latest version
available, which remains the default if there is no Dune project in scope.
(#11865, @nojb) -
The
test/dunefile generated bydune init projnow depends on the project library. (#12791, @shonfeder) -
Starting with version 3.21 of the Dune language, Dune no longer changes the
default set of compiler warnings. For users that would like to keep the old
behaviour, the variable%{dune-warnings}can be used in an(env)stanza in
a top-level Dune file:(env (dev (flags :standard %{dune-warnings}))).
(#12766, @nojb) -
Fix: stop generating
cmtfiles for cinaps binaries (#12530, @rgrinberg)
3.21.0~alpha1
CHANGES:
3.21.0~alpha0
CHANGES: