Dune 1.5.0
On behalf of the dune team, I'm pleased to announce the 1.5.0 release of dune. This release does not contain any major features, but it does contain a few notable bug fixes and a couple of useful little additions. First of all, $ dune exec
now supports C-c
again - I know this affected many of you. This releases introduces a couple of new aliases that will hopefully find their way into your workflows.
The first alias is @all
and has been much requested by our users. $ dune build @dir/all
will build all user defined targets in a the directory dir
. This would include binaries, libraries, and user defined targets in dir
. This alias should have been the defaulted instead of @install
when running $ dune build
, but we'll have to wait until dune 2.0 to make this compatibility breaking change. In the mean time, I highly recommend everyone to use $ dune build @all
instead of $ dune build
meanwhile. You may also set the default alias per project as well:
(alias
(name default)
(deps (alias_rec all)))
The second new alias is @check
. It is inspired by cargo's check
subcommand and roughly corresponds to type checking the project and building all artifacts necessary for editor integration - cmt, cmti's, .merlin, etc. This is the fastest target to verify that a project is in a valid state. Note that this alias will not relink binaries so it might not catch errors such as missing stubs. I find this alias handy when doing large, type driven refactoring of a codebase.
The rest of the change log is replicated below. Happy hacking!
See full changelog
-
Filter out empty paths from
OCAMLPATH
andPATH
(#1436, @rgrinberg) -
Do not add the
lib.cma.js
target in lib's directory. Put this target in a sub directory instead. (#1435, fix #1302, @rgrinberg) -
Install generated OCaml files with a
.ml
rather than a.ml-gen
extension (#1425, fix #1414, @rgrinberg) -
Allow to use the
bigarray
library in >= 4.07 without ocamlfind and without installing the correspondingotherlib
. (#1455, @nojb) -
Add
@all
alias to build all targets defined in a directory (#1409, fix #1220, @rgrinberg) -
Add
@check
alias to build all targets required for type checking and tooling support. (#1447, fix #1220, @rgrinberg) -
Produce the odoc index page with the content wrapper to make it consistent with odoc's theming (#1469, @rizo)
-
Unblock signals in processes started by dune (#1461, fixes #1451, @jeremiedimino)
-
Respect
OCAMLFIND_TOOLCHAIN
and add atoolchain
option to contexts in the workspace file. (#1449, fix #1413, @rgrinberg) -
Fix error message when using
copy_files
stanza to copy files from a non sub directory with lang set to dune < 1.3 (#1486, fixes #1485, @NathanReb) -
Install man pages in the correct subdirectory (#1483, fixes #1441, @emillon)
-
Fix version syntax check for
test
stanza'saction
field. Only emits a warning for retro-compatibility (#1474, fixes #1471, @NathanReb) -
Fix interpretation of paths in
env
stanzas (#1509, fixes #1508, @jeremiedimino) -
Add
context_name
expansion variable (#1507, @rgrinberg) -
Use shorter paths for generated on-demand ppx drivers. This is to help Windows builds where paths are limited in length (#1511, fixes #1497, @jeremiedimino)
-
Fix interpretation of environment variables under
setenv
. Also forbid dynamic environment names or values (#1503, @rgrinberg).