Skip to content

Releases: ocaml/dune

1.5.1

07 Nov 16:17
Compare
Choose a tag to compare

CHANGES:

  • Fix dune utop <dir> when invoked from a sub-directory of the
    project (#1520, fix #1518, @diml)

  • Fix bad interaction between on-demand ppx rewriters and polling mode
    (#1525, fix #1524, @diml)

1.5.0

01 Nov 16:48
639d968
Compare
Choose a tag to compare

CHANGES:

  • Filter out empty paths from OCAMLPATH and PATH (#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 corresponding otherlib. (#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,
    @diml)

  • Respect OCAMLFIND_TOOLCHAIN and add a toolchain 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's action field. Only
    emits a warning for retro-compatibility (#1474, fixes #1471,
    @NathanReb)

  • Fix interpretation of paths in env stanzas (#1509, fixes #1508, @diml)

  • 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, @diml)

  • Fix interpretation of environment variables under setenv. Also forbid
    dynamic environment names or values (#1503, @rgrinberg).

1.4.0

10 Oct 16:25
Compare
Choose a tag to compare

CHANGES:

  • Do not fail if the output of ocamlc -config doesn't include
    standard_runtime (#1326, @diml)

  • Let Configurator.V1.C_define.import handle negative integers
    (#1334, @Chris00)

  • Re-execute actions when a target is modified by the user inside
    _build (#1343, fix #1342, @diml)

  • Pass --set-switch to opam (#1341, fix #1337, @diml)

  • Fix bad interaction between multi-directory libraries the menhir
    stanza (#1373, fix #1372, @diml)

  • Integration with automatic formatters (#1252, fix #1201, @emillon)

  • Better error message when using (self_build_stubs_archive ...) and
    (c_names ...) or (cxx_names ...) simultaneously.
    (#1375, fix #1306, @nojb)

  • Improve name detection for packages when the prefix isn't an actual package
    (#1361, fix #1360, @rgrinberg)

  • Support for new menhir rules (#863, fix #305, @fpottier, @rgrinberg)

  • Do not remove flags when compiling compatibility modules for wrapped mode
    (#1382, fix #1364, @rgrinberg)

  • Fix reason support when using staged_pps (#1384, @charlesetc)

  • Add support for enabled_if in rule, menhir, ocamllex,
    ocamlyacc (#1387, @diml)

  • Exit gracefully when a signal is received (#1366, @diml)

  • Load all defined libraries recursively into utop (#1384, fix #1344,
    @rgrinberg)

  • Allow to use libraries bytes, result and uchar without findlib
    installed (#1391, @nojb)

  • Take argument to self_build_stubs_archive into account. (#1395, @nojb)

  • Fix bad interaction between env customization and vendored
    projects: when a vendored project didn't have its own env stanza,
    the env stanza from the enclosing project was in effect (#1408,
    @diml)

  • Fix stop early bug when scanning for watermarks (#1423, @diml)

1.3.0

24 Sep 22:49
Compare
Choose a tag to compare

CHANGES:

  • Support colors on Windows (#1290, @diml)

  • Allow dune.configurator and base to be used together (#1291, fix
    #1167, @diml)

  • Support interrupting and restarting builds on file changes (#1246,
    @kodek16)

  • Fix findlib-dynload support with byte mode only (#1295, @bobot)

  • Make dune rules -m output a valid makefile (#1293, @diml)

  • Expand variables in (targets ..) field (#1301, #1320, fix #1189, @nojb,
    @rgrinberg, @diml)

  • Fix a race condition on Windows that was introduced in 1.2.0
    (#1304, fix #1303, @diml)

  • Fix the generation of .merlin files to account for private modules
    (@rgrinberg, fix #1314)

  • Exclude the local opam switch directory (_opam) from the list of watched
    directories (#1315, @dysinger)

  • Fix compilation of the module generated for findlib.dynload
    (#1317, fix #1310, @diml)

  • Lift restriction on copy_files and copy_files# stanzas that files to be
    copied should be in a subdirectory of the current directory.
    (#1323, fix #911, @nojb)

1.2.1

17 Sep 15:27
Compare
Choose a tag to compare

CHANGES:

  • Enrich the dune Emacs mode with syntax highlighting and indentation. New
    file dune-flymake to provide a hook dune-flymake-dune-mode-hook to enable
    linting of dune files. (#1265, @Chris00)

  • Pass link_flags to cc when compiling with Configurator.V1.c_test (#1274,
    @rgrinberg)

  • Fix digest calculation of aliases. It should take into account extra bindings
    passed to the alias (#1277, fix #1276, @rgrinberg)

  • Fix a bug causing dune to fail eagerly when an optional library
    isn't available (#1281, @diml)

  • ocamlmklib should use response files only if ocaml >= 4.08 (@1268, @bryphe)

1.2.0

14 Sep 12:31
Compare
Choose a tag to compare

CHANGES:

  • Ignore stderr output when trying to find out the number of jobs
    available (#1118, fix #1116, @diml)

  • Fix error message when the source directory of copy_files does not exist.
    (#1120, fix #1099, @emillon)

  • Highlight error locations in error messages (#1121, @emillon)

  • Display actual stanza when package is ambiguous (#1126, fix #1123, @emillon)

  • Add dune unstable-fmt to format dune files. The interface and syntax are
    still subject to change, so use with caution. (#1130, fix #940, @emillon)

  • Improve error message for dune utop without a library name (#1154, fix
    #1149, @emillon)

  • Fix parsing ocamllex stanza in jbuild files (#1150, @rgrinberg)

  • Highlight multi-line errors (#1131, @anuragsoni)

  • Do no try to generate shared libraries when this is not supported by
    the OS (#1165, fix #1051, @diml)

  • Fix Flags.write_{sexp,lines} in configurator by avoiding the use of
    Stdune.Path (#1175, fix #1161, @rgrinberg)

  • Add support for findlib.dynload: when linking an executable using
    findlib.dynload, automatically record linked in libraries and
    findlib predicates (#1172, @bobot)

  • Add support for promoting a selected list of files (#1192, @diml)

  • Add an emacs mode providing helpers to promote correction files
    (#1192, @diml)

  • Improve message suggesting to remove parentheses (#1196, fix #1173, @emillon)

  • Add (wrapped (transition "..message..")) as an option that will generate
    wrapped modules but keep unwrapped modules with a deprecation message to
    preserve compatibility. (#1188, fix #985, @rgrinberg)

  • Fix the flags passed to the ppx rewriter when using staged_pps (#1218, @diml)

  • Add (env var) to add a dependency to an environment variable.
    (#1186, @emillon)

  • Add a simple version of a polling mode: dune build -w keeps
    running and restarts the build when something change on the
    filesystem (#1140, @kodek16)

  • Cleanup the way we detect the library search path. We no longer call
    opam config var lib in the default build context (#1226, @diml)

  • Make test stanzas honor the -p flag. (#1236, fix #1231, @emillon)

  • Test stanzas take an optional (action) field to customize how they run (#1248,
    #1195, @emillon)

  • Add support for private modules via the private_modules field (#1241, fix
    #427, @rgrinberg)

  • Add support for passing arguments to the OCaml compiler via a
    response file when the list of arguments is too long (#1256, @diml)

  • Do not print diffs by default when running inside dune (#1260, @diml)

  • Interpret $ dune build dir as building the default alias in dir. (#1259,
    @rgrinberg)

  • Make the dynlink library available without findlib installed (#1270, fix
    #1264, @rgrinberg)

1.1.1

08 Aug 20:42
Compare
Choose a tag to compare

CHANGES:

  • Fix $ jbuilder --dev (#1104, fixes #1103, @rgrinberg)

  • Fix dune exec when --build-dir is set to an absolute path (#1105, fixes
    #1101, @rgrinberg)

  • Fix duplicate profile argument in suggested command when an external library
    is missing (#1109, #1106, @emillon)

  • -opaque wasn't correctly being added to modules without an interface.
    (#1108, fix #1107, @rgrinberg)

  • Fix validation of library name fields and make sure this validation also
    applies when the name is derived from the public_name. (#1110, fix #1102,
    @rgrinberg)

  • Fix a bug causing the toplevel env stanza in the workspace file to
    be ignored when at least one context had (merlin) (#1114, @diml)

1.1.0

06 Aug 13:01
Compare
Choose a tag to compare

CHANGES:

  • Fix lookup of command line specified files when --root is given. Previously,
    passing in --root in conjunction with --workspace or --config would not
    work correctly (#997, @rgrinberg)

  • Add support for customizing env nodes in workspace files. The env stanza is
    now allowed in toplevel position in the workspace file, or for individual
    contexts. This feature requires (dune lang 1.1) (#1038, @rgrinberg)

  • Add enabled_if field for aliases and tests. This field controls whether the
    test will be ran using a boolean expression language. (#819, @rgrinberg)

  • Make name, names fields optional when a public_name, public_names
    field is provided. (#1041, fix #1000, @rgrinberg)

  • Interpret X in --libdir X as relative to PREFIX when X is relative
    (#1072, fix #1070, @diml)

  • Add support for multi directory libraries by writing
    (include_subdirs unqualified) (#1034, @diml)

  • Add (staged_pps ...) to support staged ppx rewriters such as ones
    using the OCaml typer like ppx_import (#1080, fix #193, @diml)

  • Use -opaque in the dev profile. This option trades off binary quality for
    compilation speed when compiling .cmx files. (#1079, fix #1058, @rgrinberg)

  • Fix placeholders in dune subst documentation (#1090, @emillon, thanks
    @trefis for the bug report)

  • Add locations to errors when a missing binary in PATH comes from a dune file
    (#1096, fixes #1095, @rgrinberg)

1.0.1

19 Jul 23:02
Compare
Choose a tag to compare

CHANGES:

1.0.0

10 Jul 14:40
Compare
Choose a tag to compare

CHANGES:

  • Do not load the user configuration file when running inside dune
    (#700 @diml)

  • Do not infer ${null} to be a target (#693 fixes #694 @rgrinberg)

  • Introduce jbuilder.configurator library. This is a revived version of
    janestreet's configurator library with better cross compilation support, a
    versioned API, and no external dependencies. (#673, #678 #692, #695
    @rgrinberg)

  • Register the transitive dependencies of compilation units as the
    compiler might read .cm* files recursively (#666, fixes #660,
    @emillon)

  • Fix a bug causing jbuilder external-lib-deps to crash (#723,
    @diml)

  • -j now defaults to the number of processing units available rather
    4 (#726, @diml)

  • Fix attaching index.mld to documentation (#731, fixes #717 @rgrinberg)

  • Scan the file system lazily (#732, fixes #718 and #228, @diml)

  • Add support for setting the default ocaml flags and for build
    profiles (#419, @diml)

  • Display a better error messages when writing (inline_tests) in an
    executable stanza (#748, @diml)

  • Restore promoted files when they are deleted or changed in the
    source tree (#760, fix #759, @diml)

  • Fix a crash when using an invalid alias name (#762, fixes #761,
    @diml)

  • Fix a crash when using c files from another directory (#758, fixes
    #734, @diml)

  • Add an ignored_subdirs stanza to replace jbuild-ignore files
    (#767, @diml)

  • Fix a bug where Dune ignored previous occurrences of duplicated
    fields (#779, @diml)

  • Allow setting custom build directories using the --build-dir flag or
    DUNE_BUILD_DIR environment variable (#846, fix #291, @diml @rgrinberg)

  • In dune files, remove support for block (#| ... |#)) and sexp
    (#;) comments. These were very rarely used and complicate the
    language (#837, @diml)

  • In dune files, add support for block strings, allowing to nicely
    format blocks of texts (#837, @diml)

  • Remove hard-coded knowledge of ppx_driver and
    ocaml-migrate-parsetree when using a dune file (#576, @diml)

  • Make the output of Dune slightly more deterministic when run from
    inside Dune (#855, @diml)

  • Simplify quoting behavior of variables. All values are now multi-valued and
    whether a multi valued variable is allowed is determined by the quoting and
    substitution context it appears in. (#849, fix #701, @rgrinberg)

  • Fix documentation generation for private libraries. (#864, fix #856,
    @rgrinberg)

  • Use Marshal to store digest and incremental databases. This improves the
    speed of 0 rebuilds. (#817, @diml)

  • Allow setting environment variables in findlib.conf for cross compilation
    contexts. (#733, @rgrinberg)
  • Add a link_deps field to executables, to specify link-time dependencies
    like version scripts. (#879, fix #852, @emillon)

  • Rename files_recursively_in to source_tree to make it clearer it
    doesn't include generated files (#899, fix #843, @diml)

  • Present the menhir stanza as an extension with its own version
    (#901, @diml)

  • Improve the syntax of flags in (pps ...). Now instead of (pps (ppx1 -arg1 ppx2 (-foo x))) one should write (pps ppx1 -arg ppx2 -- -foo x) which looks nicer (#910, @diml)

  • Make (diff a b) ignore trailing cr on Windows and add (cmp a b) for
    comparing binary files (#904, fix #844, @diml)

  • Make dev the default build profile (#920, @diml)

  • Version dune-workspace and ~/.config/dune/config files (#932, @diml)

  • Add the ability to build an alias non-recursively from the command
    line by writing @@alias (#926, @diml)

  • Add a special default alias that defaults to (alias_rec install)
    when not defined by the user and make @@default be the default
    target (#926, @diml)

  • Forbid #require in dune files in OCaml syntax (#938, @diml)

  • Add %{profile} variable. (#938, @rgrinberg)

  • Do not require opam-installer anymore (#941, @diml)

  • Add the lib_root and libexec_root install sections (#947, @diml)

  • Rename path:file to dep:file (#944, @emillon)

  • Remove path-no-dep:file (#948, @emillon)

  • Adapt the behavior of dune subst for dune projects (#960, @diml)

  • Add the lib_root and libexec_root sections to install stanzas
    (#947, @diml)

  • Add a Configurator.V1.Flags module that improves the flag reading/writing
    API (#840, @avsm)

  • Add a tests stanza that simlpified defining regular and expect tests
    (#822, @rgrinberg)

  • Change the subst subcommand to lookup the project name from the
    dune-project whenever it's available. (#960, @diml)

  • The subst subcommand no longer looks up the root workspace. Previously this
    detection would break the command whenever -p wasn't passed. (#960, @diml)

  • Add a # DUNE_GEN in META template files. This is done for consistency with
    # JBUILDER_GEN. (#958, @rgrinberg)

  • Rename the following variables in dune files:
    SCOPE_ROOT to project_root
    @ to targets
    < to first-dep
    ^ to deps
    (#957, @rgrinberg)

  • Rename ROOT to workspace_root in dune files (#993, @diml)

  • Lowercase all built-in %{variables} in dune files (#956, @rgrinberg)

  • New syntax for naming dependencies: (deps (:x a b) (:y (glob_files *.c*))).
    This replaces the use for ${<} in dune files. (#950, @diml, @rgrinberg)

  • Fix detection of dynamic cycles, which in particular may appear when
    using (package ..) dependencies (#988, @diml)