Skip to content

Releases: ocaml/dune

2.5.1

17 Apr 20:58
Compare
Choose a tag to compare

CHANGES:

  • [coq] Fix install .v files for Coq theories (#3384, @lthms)

  • [coq] Fix install path for theory names with level greater than 1 (#3358,
    @ejgallego)

  • Fix a bug introduced in 2.0.0 where the [locks] field in rules with no targets
    had no effect. (@aalekseyev, report by @craigfe)

2.5.0

10 Apr 02:39
Compare
Choose a tag to compare

CHANGES:

  • Add a --release option meaning the same as -p but without the
    package filtering. This is useful for custom dune invocation in opam
    files where we don't want -p (#3260, @diml)

  • Fix a bug introduced in 2.4.0 causing .bc programs to be built
    with -custom by default (#3269, fixes #3262, @diml)

  • Allow contexts to be defined with local switches in workspace files (#3265,
    fix #3264, @rgrinberg)

  • Delay expansion errors until the rule is used to build something (#3261, fix
    #3252, @rgrinberg, @diml)

  • [coq] Support for theory dependencies and compositional builds using
    new field (theories ...) (#2053, @ejgallego, @rgrinberg)

  • From now on, each version of a syntax extension must be explicitely tied to a
    minimum version of the dune language. Inconsistent versions in a
    dune-project will trigger a warning for version <=2.4 and an error for
    versions >2.4 of the dune language. (#3270, fixes #2957, @voodoos)

  • [coq] Bump coq lang version to 0.2. New coq features presented this release
    require this version of the coq lang. (#3283, @ejgallego)

  • Prevent installation of public executables disabled using the enabled_if field.
    Installation will now simply skip such executables instead of raising an
    error. (#3195, @voodoos)

  • dune upgrade will now try to upgrade projects using versions <2.0 to version
    2.0 of the dune language. (#3174, @voodoos)

  • Add a top command to integrate dune with any toplevel, not just
    utop. It is meant to be used with the new #use_output directive of
    OCaml 4.11 (#2952, @mbernat, @diml)

  • Allow per-package version in generated opam files (#3287, @toots)

  • [coq] Introduce the coq.extraction stanza. It can be used to extract OCaml
    sources (#3299, fixes #2178, @rgrinberg)

  • Load ppx rewriters in dune utop and add pps field to toplevel stanza. Ppx
    extensions will now be usable in the toplevel
    (#3266, fixes #346, @stephanieyou)

  • Add a (subdir ..) stanza to allow evaluating stanzas in sub directories.
    (#3268, @rgrinberg)

  • Fix a bug preventing one from running inline tests in multiple modes
    (#3352, @diml)

  • Allow the use of the %{profile} variable in the enabled_if field of the
    library stanza. (#3344, @mrmr1993)

  • Allow the use of %{ocaml_version} variable in enabled_if field of the
    library stanza. (#3339, @voodoos)

  • Fix dune build freezing on MacOS when cache is enabled. (#3249, fixes ##2973,
    @artempyanykh)

2.4.0

06 Mar 13:12
Compare
Choose a tag to compare

CHANGES:

  • Add mdx extension and stanza version 0.1 (#3094, @NathanReb)

  • Allow to make Odoc warnings fatal. This is configured from the (env ...)
    stanza. (#3029, @Julow)

  • Fix separate compilation of JS when findlib is not installed. (#3177, @nojb)

  • Add a dune describe command to obtain the topology of a dune workspace, for
    projects such as ROTOR. (#3128, @diml)

  • Add plugin linking mode for executables and the (embed_in_plugin_libraries ...) field. (#3141, @nojb)

  • Add an %{ext_plugin} variable (#3141, @nojb)

  • Dune will no longer build shared objects for stubs if
    supports_shared_libraries is false (#3225, fixes #3222, @rgrinberg)

  • Fix a memory leak in the file-watching mode (dune build -w)
    (#3220, @snowleopard and @aalekseyev)

2.3.1

24 Feb 10:51
Compare
Choose a tag to compare

CHANGES:

  • Fix versioning of artifact variables (eg %{cmxa:...}), which were introduced
    in 2.0, not 1.11. (#3149, @nojb)

  • Fix a bug introduced in 2.3.0 where dune insists on using fswatch on linux
    (even when inotifywait is available). (#3162, @aalekseyev)

  • Fix a bug causing all executables to be considered as optional (#3163, @diml)

2.3.0

15 Feb 17:33
06defff
Compare
Choose a tag to compare

CHANGES:

  • Improve validation and error handling of arguments to dune init (#3103, fixes
    #3046, @shonfeder)

  • dune init exec NAME now uses the NAME argument for private modules (#3103,
    fixes #3088, @shonfeder)

  • Avoid linear walk to detect children, this should greatly improve
    performance when a target has a large number of dependencies (#2959,
    @ejgallego, @aalekseyev, @Armael)

  • [coq] Add (boot) option to (coq.theories) to enable bootstrap of
    Coq's stdlib (#3096, @ejgallego)

  • [coq] Deprecate public_name field in favour of package (#2087, @ejgallego)

  • Better error reporting for "data only" and "vendored" dirs. Using these with
    anything else than a strict subdirectory or * will raise an error. The
    previous behavior was to just do nothing (#3056, fixes #3019, @voodoos)

  • Fix bootstrap on bytecode only switches on windows or where -j1 is set.
    (#3112, @xclerc, @rgrinberg)

  • Allow enabled_if fields in executable(s) stanzas (#3137, fixes #1690
    @voodoos)

  • Do not fail if ocamldep, ocamlmklib, or ocaml are absent. Wait for them
    to be used to fail (#3138, @rgrinberg)

  • Introduce a strict_package_deps mode that verifies that dependencies between
    packages in the workspace are specified correctly. (@rgrinberg, #3117)

  • Make sure the @all alias is defined when no dune file is present
    in a directory (#2946, fix #2927, @diml)

2.2.0

06 Feb 18:48
Compare
Choose a tag to compare

CHANGES:

  • dune test is now a command alias for dune runtest. This is to make the CLI
    less idiosyncratic (#3006, @shonfeder)

  • Allow to set menhir flags in the env stanza using the menhir_flags field.
    (#2960, fix #2924, @bschommer)

  • By default, do not show the full command line of commands executed
    by dune when dune is executed inside dune. This is to make
    integration tests more reproducible (#3042, @diml)

  • dune subst now works even without opam files (#2955, fixes #2910,
    @fangyi-zhou and @diml)

  • Hint when trying to execute an executable defined in the current directory
    without using the ./ prefix (#3041, fixes #1094, @voodoos).

  • Extend the list of modifiers that can be nested under
    with-accepted-exit-codes with chdir, setenv, ignore-<outputs>,
    with-stdin-from and with-<outputs>-to (#3027, fixes #3014, @voodoos)

  • It is now an error to have a preprocessing dependency on a ppx rewriter
    library that is not marked as (kind ppx_rewriter) (#3039, @snowleopard).

  • Fix permissions of files promoted to the source tree when using the
    shared cache. In particular, make them writable by the user (#3043,
    fixes #3026, @diml)

  • Only detect internal OCaml tools with .opt extensions. Previously, this
    detection applied to other binaries as well (@kit-ty-kate, @rgrinberg, #3051).

  • Give the user a proper error message when they try to promote into a source
    directory that doesn't exist. (#3073, fix #3069, @rgrinberg)

  • Correctly build vendored packages in -p mode. These packages were
    incorrectly filtered out before. (#3705, @diml)

  • Do not install vendored packages (#3704, @diml)

  • make now prints a message explaining the main targets available
    (#3085, fix #3078, @diml)

  • Add a byte_complete executable mode to build programs as
    self-contained bytecode programs
    (#3076, fixes #1519, @diml)

2.1.3

16 Jan 11:59
Compare
Choose a tag to compare

CHANGES:

2.1.2

08 Jan 16:22
Compare
Choose a tag to compare

CHANGES:

  • Fix a bug in the Fiber.finalize function of the concurrency monad of Dune,
    causing a race condition at the user level (#3009, fix #2958, @diml)

2.1.1

07 Jan 07:16
Compare
Choose a tag to compare

CHANGES:

  • Guess foreign archives & native archives for libraries defined using the
    META format. (#2994, @rgrinberg, @anmonteiro)

  • Fix generation of .merlin files when depending on local libraries with more
    than one source directory. (#2983, @rgrinberg)

2.1.0

21 Dec 05:30
Compare
Choose a tag to compare

CHANGES:

  • Attach cinaps stanza actions to both @runtest and @cinaps aliases
    (#2831, @NathanReb)

  • Add variables %{lib-private...} and %{libexec-private...} for finding
    build paths of files in public and private libraries within the same
    project. (#2901, @snowleopard)

  • Add --mandir option to $ dune install. This option allows to override the
    installation directory for man pages. (#2915, fixes #2670, @rgrinberg)

  • Fix dune --version. The bootstrap didn't compute the version
    correctly. (#2929, fixes #2911, @diml)

  • Do not open the log file in dune clean. (#2965, fixes #2964 and
    #2921, @diml)

  • Support passing two arguments to =, <>, ... operators in package
    dependencies so that we can have things such as (<> :os win32)
    (#2965, @diml)