Skip to content

Releases: ocaml/dune

3.17.0~alpha0

25 Nov 15:18
fd1c74a
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Show the context name for errors happening in non-default contexts.
    (#10414, fixes #10378, @jchavarri)

  • Correctly declare dependencies of indexes so that they are rebuilt when
    needed. (#10623, @voodoos)

  • Don't depend on coq-stdlib being installed when expanding variables
    of the coq.version family (#10631, fixes #10629, @gares)

  • Error out if no files are found when using copy_files. (#10649, @jchavarri)

  • Re_export dune-section private library in the dune-site library stanza,
    in order to avoid failure when generating and building sites modules
    with implicit_transitive_deps = false. (#10650, fixes #9661, @MA0100)

  • Expect test fixes: support multiple modes and fix dependencies when there is
    a custom runner (#10671, @vouillon)

  • In a (library) stanza with (extra_objects) and (foreign_stubs), avoid
    double linking the extra object files in the final executable.
    (#10783, fixes #10785, @nojb)

  • Map (re_export) library dependencies to the exports field in META files,
    and vice-versa. This field was proposed in to
    https://discuss.ocaml.org/t/proposal-a-new-exports-field-in-findlib-meta-files/13947.
    The field is included in Dune-generated META files only when the Dune lang
    version is >= 3.17.
    (#10831, fixes #10830, @nojb)

  • Fix staged pps preprocessors on Windows (which were not working at all
    previously) (#10869, fixes #10867, @nojb)

  • Fix dune describe when an executable is disabled with enabled_if.
    (#10881, fixes #10779, @moyodiallo)

  • Fix an issue where C stubs would be rebuilt whenever the stderr of Dune was
    redirected. (#10883, fixes #10882, @nojb)

  • Format long lists in s-expressions to fill the line instead of formatting
    them in a vertical way (#10892, fixes #10860, @nojb)

  • Fix the URL opened by the command dune ocaml doc. (#10897, @gridbugs)

  • Fix the file referred to in the error/warning message displayed due to the
    dune configuration version not supporting a particular configuration
    stanza in use. (#10923, @H-ANSEN)

  • Fix enabled_if when it uses env variable. (#10936, fixes #10905, @moyodiallo)

  • Fix exec -w for relative paths with --root argument (#10982, @gridbugs)

  • Do not ignore the (locks ..) field in the test and tests stanza
    (#11081, @rgrinberg)

  • Tolerate files without extension when generating merlin rules.
    (#11128, @anmonteiro)

Added

  • Make Merlin/OCaml-LSP aware of "hidden" dependencies used by
    (implicit_transitive_deps false) via the -H compiler flag. (#10535, @voodoos)

  • Add support for the -H flag (introduced in OCaml compiler 5.2) in dune
    (requires lang versions 3.17). This adaptation gives
    the correct semantics for (implicit_transitive_deps false).
    (#10644, fixes #9333, ocsigen/tyxml#274, #2733, #4963, @MA0100)

  • Add support for specifying Gitlab organization repositories in source
    stanzas (#10766, fixes #6723, @H-ANSEN)

  • New option to control jsoo sourcemap generation in env and executable stanza
    (#10777, fixes #10673, @hhugo)

  • One can now control jsoo compilation_mode inside an executable stanza
    (#10777, fixes #10673, @hhugo)

  • Add support for specifying default values of the authors, maintainers, and
    license stanzas of the dune-project file via the dune config file. Default
    values are set using the (project_defaults) stanza (#10835, @H-ANSEN)

  • Add names to source tree events in performance traces (#10884, @jchavarri)

  • Add codeberg as an option for defining project sources in dune-project
    files. For example, (source (codeberg user/repo)). (#10904, @nlordell)

  • dune runtest can now run individual tests with dune runtest mytest.t
    (#11041, @Alizter).

  • Wasm_of_ocaml support (#11093, @vouillon)

  • Add a coqdep_flags field to the coq field of the env stanza, and to the coq.theory stanza, allowing to configure coqdep flags.
    (#11094, @rlepigre)

Changed

  • Remove all remnants of the experimental patch-back-source-tree. (#10771,
    @rgrinberg)

  • Change the preset value for author and maintainer fields in the
    dune-project file to encourage including emails. (#10848, @punchagan)

  • Tweak the preset value for tags in the dune-project file to hint at topics
    not having a special meaning. (#10849, @punchagan)

  • Change some colors to improve readability in light-mode terminals
    (#10890, @gridbugs)

  • Forward the linkall flag to jsoo in whole program compilation as well (#10935, @hhugo)

  • Configurator uses pkgconf as pkg-config implementation when available
    and forwards it the target of ocamlc -config. (#10937, @pirbo)

  • Enable Dune cache by default. Add a new Dune cache setting
    enabled-except-user-rules, which enables the Dune cache, but excludes
    user-written rules from it. This is a conservative choice that can avoid
    breaking rules whose dependencies are not correctly specified. This is the
    current default. (#10944, #10710, @nojb, @ElectreAAS)

  • Do not add dune dependency in dune-project when creating projects with
    dune init proj. The Dune dependency is implicitely added when generating
    opam files (#11129, @Leonidas-from-XIV)

3.16.1

30 Oct 14:05
3c2b57b
Compare
Choose a tag to compare

CHANGES:

Fixed

3.16.0

17 Jun 09:04
e4380ff
Compare
Choose a tag to compare

CHANGES:

Added

  • allow libraries with the same (name ..) in projects as long as they don't
    conflict during resolution (via enabled_if). (#10307, @anmonteiro,
    @jchavarri)

  • dune describe pp now finds the exact module and the stanza it belongs to,
    instead of guessing the name of the preprocessed file. (#10321, @anmonteiro)

  • Print the result of dune describe pp with the respective dialect printer.
    (#10322, @anmonteiro)

  • Add new flag --context to dune ocaml-merlin, which allows to select a
    Dune context when requesting Merlin config. Add dune describe contexts
    subcommand. Introduce a field generate_merlin_rules for contexts declared
    in the workspace, that allows to optionally produce Merlin rules for other
    contexts besides the one selected for Merlin (#10324, @jchavarri)

  • melange: add include paths for private library .cmj files during JS
    emission. (#10416, @anmonteiro)

  • dune ocaml-merlin: communicate additional directives SOURCE_ROOT,
    UNIT_NAME (the actual name with wrapping) and INDEX with the paths to the
    index(es). (#10422, @voodoos)

  • Add a new alias @ocaml-index that uses the ocaml-index binary to generate
    indexes that can be read by tools such as Merlin to provide project-wide
    references search. (#10422, @voodoos)

  • merlin: add optional (merlin_reader CMD) construct to (dialect) stanza to
    configure a merlin reader (#8567, @andreypopp)

Changed

  • melange: treat private libraries with (package ..) as public libraries,
    fixing an issue where import paths were wrongly emitted. (#10415,
    @anmonteiro)

  • install .glob files for Coq theories too (#10602, @ejgallego)

Fixed

  • Don't try to document non-existent libraries in doc-new target (#10319, fixes
    #10056, @jonludlam)

  • Make dune-site's load_all function look for META files so that it
    doesn't fail on empty directories in the plugin directory (#10458, fixes
    #10457, @shym)

  • Fix incorrect warning for libraries defined inside non-existant directories
    using (subdir ..) and used by executables using dune-build-info (#10525,
    @rgrinberg)

  • Don't try to take build lock when running coq top --no-build (#10547, fixes
    #7671, @lzy0505)

  • Make sure to truncate dune's lock file after locking and unlocking so that
    users cannot observe incorrect pid's (#10575, @rgrinberg)

  • mdx: link mdx binary with byte_complete. This fixes (libraries) with
    foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)

  • virtual libraries: fix an issue where linking an executable involving several
    virtual libries would cause an error. (#10581, fixes #10460, @rgrinberg)

3.16.0~alpha2

11 Jun 15:01
0c0076d
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Correctly declare dependencies of indexes so that they are rebuilt when
    needed. (#10623, @voodoos)

3.16.0~alpha1

05 Jun 13:50
9ae295e
Compare
Choose a tag to compare

CHANGES:

Added

  • allow libraries with the same (name ..) in projects as long as they don't
    conflict during resolution (via enabled_if). (#10307, @anmonteiro,
    @jchavarri)

  • dune describe pp now finds the exact module and the stanza it belongs to,
    instead of guessing the name of the preprocessed file. (#10321, @anmonteiro)

  • Print the result of dune describe pp with the respective dialect printer.
    (#10322, @anmonteiro)

  • Add new flag --context to dune ocaml-merlin, which allows to select a
    Dune context when requesting Merlin config. Add dune describe contexts
    subcommand. Introduce a field generate_merlin_rules for contexts declared
    in the workspace, that allows to optionally produce Merlin rules for other
    contexts besides the one selected for Merlin (#10324, @jchavarri)

  • melange: add include paths for private library .cmj files during JS
    emission. (#10416, @anmonteiro)

  • dune ocaml-merlin: communicate additional directives SOURCE_ROOT,
    UNIT_NAME (the actual name with wrapping) and INDEX with the paths to the
    index(es). (#10422, @voodoos)

  • Add a new alias @ocaml-index that uses the ocaml-index binary to generate
    indexes that can be read by tools such as Merlin to provide project-wide
    references search. (#10422, @voodoos)

  • merlin: add optional (merlin_reader CMD) construct to (dialect) stanza to
    configure a merlin reader (#8567, @andreypopp)

Changed

  • melange: treat private libraries with (package ..) as public libraries,
    fixing an issue where import paths were wrongly emitted. (#10415,
    @anmonteiro)

  • install .glob files for Coq theories too (#10602, @ejgallego)

Fixed

  • Don't try to document non-existent libraries in doc-new target (#10319, fixes
    #10056, @jonludlam)

  • Make dune-site's load_all function look for META files so that it
    doesn't fail on empty directories in the plugin directory (#10458, fixes
    #10457, @shym)

  • Fix incorrect warning for libraries defined inside non-existant directories
    using (subdir ..) and used by executables using dune-build-info (#10525,
    @rgrinberg)

  • Don't try to take build lock when running coq top --no-build (#10547, fixes
    #7671, @lzy0505)

  • Make sure to truncate dune's lock file after locking and unlocking so that
    users cannot observe incorrect pid's (#10575, @rgrinberg)

  • mdx: link mdx binary with byte_complete. This fixes (libraries) with
    foreign archives on Linux. (#10586, fixes #10582, @anmonteiro)

3.15.3

24 May 15:13
55da8f9
Compare
Choose a tag to compare

CHANGES:

Fixed

3.15.2

23 Apr 09:55
c28817c
Compare
Choose a tag to compare

CHANGES:

Fixed

  • If no directory targets are defined, then do not evaluate enabled_if
    (#10442, @rgrinberg)

  • Fix a bug where Coq projects were being rebuilt from scratch each time the
    dependency graph changed. (#10446, fixes #10149, @Alizter)

3.15.1

17 Apr 14:08
5eb7bb0
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Fix overflow in sendfile stubs (copy of large files could fail or end with
    truncated files) (#10333, @tonyfettes)

  • Fix crash when a rule with a directory target is disabled with enabled_if
    (#10382, fixes #10310, @gridbugs)

  • melange: remove all restrictions around virtual libraries in Melange. They
    may be used as otherwise in libraries and executables. (#10412, @anmonteiro)

  • spawn: fix compatibility with RHEL7 (#10428, @emillon)

3.15.0

03 Apr 09:36
8118ddb
Compare
Choose a tag to compare

CHANGES:

Added

  • Add link flags to to ocamlmklib for ctypes stubs (#8784, @frejsoya)

  • Remove some unnecessary limitations in the expansions of percent forms in
    install stanza. For example, the %{env:..} form can be used to select files
    to be installed. (#10160, @rgrinberg)

  • Allow artifact expansion percent forms (%{cma:..}, %{cmo:..}, etc.) in
    more contexts. Previously, they would be randomly forbidden in some fields.
    (#10169, @rgrinberg)

  • Allow %{inline_tests} in more contexts (#10191, @rgrinberg)

  • Remove limitations on percent forms in the (enabled_if ..) field of
    libraries (#10250, @rgrinberg)

  • Support dialects in dune describe pp (#10283, @emillon)

  • Allow defining executables or melange emit stanzas with the same name in the
    same folder under different contexts. (#10220, @rgrinberg, @jchavarri)

Fixed

  • coq: Delay Coq rule setup checks so OCaml-only packages can build in hybrid
    Coq/OCaml projects when coqc is not present. Thanks to @vzaliva for the
    test case and report (#9845, fixes #9818, @rgrinberg, @ejgallego)

  • Fix conditional source selection with select on bigarray in OCaml 5
    (#10011, @moyodiallo)

  • melange: fix inconsistency in virtual library implementation. Concrete
    modules within a virtual library can now refer to its virtual modules too
    (#10051, fixes #7104, @anmonteiro)

  • melange: fix a bug that would cause stale import paths to be emitted when
    moving source files within (include_subdirs ..) (#10286, fixes #9190,
    @anmonteiro)

  • Dune file formatting: output utf8 if input is correctly encoded (#10113,
    fixes #9728, @moyodiallo)

  • Fix expanding dependencies and locks specified in the cram stanza.
    Previously, they would be installed in the context of the cram test, rather
    than the cram stanza itself (#10165, @rgrinberg)

  • Fix bug with dune exec --watch where the working directory would always be
    set to the project root rather than the directory where the command was run
    (#10262, @gridbugs)

  • Regression fix: sign executables that are promoted into the source tree
    (#10263, fixes #9272, @emillon)

  • Fix crash when decoding dune-package for libraries with (include_subdirs qualified) (#10269, fixes #10264, @emillon)

Changed

3.15.0~alpha2

29 Mar 16:44
64b0437
Compare
Choose a tag to compare

CHANGES:

Fixed

  • Backport #10327: fix a regression in dune install not performing artifact
    substitution.