Skip to content

Releases: ocaml/dune

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.

3.15.0~alpha1

26 Mar 13:19
75eac84
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.14.2

12 Mar 15:24
b19f6df
Compare
Choose a tag to compare

CHANGES:

Fixed

  • fix compilation on non-glibc systems due to signal.h not being pulled in
    spawn stubs. (#10256, @emillon)

3.14.1

11 Mar 15:45
3f4cdaf
Compare
Choose a tag to compare

CHANGES:

Fixed

  • When a directory is changed to a file, correctly remove it in subsequent
    dune build runs. (#9327, fix #6575, @emillon)

  • Fix a problem with the doc-new target where transitive dependencies were
    missed during compile. This leads to missing expansions in the output docs.
    (#9955, @jonludlam)

  • coq: fix performance regression in coqdep unescaping (#10115, fixes #10088,
    @ejgallego, thanks to Dan Christensen for the report)

  • coq: memoize coqdep parsing, this will reduce build times for Coq users, in
    particular for those with many .v files (#10116, @ejgallego, see also #10088)

  • on Windows, use an unicode-aware version of CreateProcess to avoid crashes
    when paths contains non-ascii characters. (#10212, fixes #10180, @emillon)

3.14.0

12 Feb 10:12
73250f0
Compare
Choose a tag to compare

CHANGES:

Added

  • Introduce a (dynamic_include ..) stanza. This is like (include foo) but
    allows foo to be the target of a rule. Currently, there are some
    limitations on the stanzas that can be generated. For example, public
    executables, libraries are currently forbidden. (#9913, @rgrinberg)

  • Introduce $ dune promotion list to print the list of available promotions.
    (#9705, @moyodiallo)

  • If Sherlodoc is installed, add a search bar in generated HTML docs (#9772,
    @EmileTrotignon)

  • Add only_sources field to copy_files stanza (#9827, fixes #9709,
    @jchavarri)

  • The (foreign_library) stanza now supports the (enabled_if) field. (#9914,
    @nojb)

Fixed

  • Fix $ dune install -p incorrectly recognizing packages that are supposed to
    be filtered (#9879, fixes #4814, @rgrinberg)

  • subst: correctly handle opam files in opam/ subdirectory (#9895, fixes #9862,
    @emillon)

  • Odoc private rules are not set up if a library is not available due to
    enabled_if (#9897, @rgrinberg and @jchavarri)

Changed

  • When dune language 3.14 is enabled, resolve the binary in (run %{bin:..} ..) from where the binary is built. (#9708, @rgrinberg)

  • boot: remove single-command bootstrap. This was an alternative bootstrap
    strategy that was used in certain conditions. Removal makes the bootstrap a
    bit slower on Linux when only a single core is available, but bootstrap is
    now reproducible in all cases. (#9735, fixes #9507, @emillon)