Dune Versions Save

A composable build system for OCaml.

3.13.0_alpha1

3 months ago

CHANGES:

  • Do not ignore (formatting ..) settings in context or workspace files (#8447, @rgrinberg)

  • Add command dune cache clear to completely delete all traces of the Dune cache. (#8975, @nojb)

  • Fixed a bug where Dune was incorrectly parsing the output of coqdep when it was escaped, as is the case on Windows. (#9231, fixes #9218, @Alizter)

  • Copying mode for sandboxes will now follow symbolic links (#9282, @rgrinberg)

  • Forbid the empty (binaries ..) field in the env stanza in the workspace file unless language version is at least 3.2.

  • [coq] Fix bug in computation of flags when composed with boot theories. (#9347, fixes #7909, @ejgallego)

  • Fixed a bug where the (select) field of the (libraries) field of the (test) stanza wasn't working properly. (#9387, fixes #9365, @Alizter)

  • Allow to disable Coq 0.8 deprecation warning (#9439, @ejgallego)

  • Fix handling of the PATH argument to dune init proj NAME PATH. An intermediate directory called NAME is no longer created if PATH is supplied, so dune init proj my_project . will now initialize a project in the current working directory. (#9447, fixes #9209, @shonfeder)

  • Allow OCAMLFIND_TOOLCHAIN to be set per context in the workspace file through the env stanza. (#9449, @rgrinberg)

  • Experimental doc rules: Correctly handle the case when a package depends upon its own sublibraries (#9461, fixes #9456, @jonludlam)

  • Resolve various public binaries to their build location, rather than to where they're copied in the _build/install directory (#9496, fixes #7908, @rgrinberg).

  • Menhir: generate .conflicts file by default. Add new field to the (menhir) stanza to control the generation of this file: (explain <blang expression>). Introduce (menhir (flags ...) (explain ...)) field in the (env) stanza, delete (menhir_flags) field. All changes are guarded under a new version of the Menhir extension, 3.0. (#9512, @nojb)

  • Correctly ignore warning flags in vendored projects (#9515, @rgrinberg)

  • Directory targets can now be caches. (#9535, @rleshchinskiy)

  • Remove warning 30 from default set for projects where dune lang is at least 3.13 (#9568, @gasche)

  • It is now possible to use special forms such as (:include) and variables %{read-lines:} in (modules) and similar fields. Note that the dependencies introduced in this way (ie the files being read) must live in a different directory than the stanza making use of them. (#9578, @nojb)

  • Use watch exclusions in watch mode on MacOS (#9643, fixes #9517, @PoorlyDefinedBehaviour)

  • Fix merlin configuration for (include_subdirs qualified) modules (#9659, fixes #8297, @rgrinberg)

  • Fix handling of enabled_if in binary install stanzas. Previously, we'd ignore the result of enabled_if when evaluating %{bin:..} (#9707, @rgrinberg)

  • Add coqdoc_flags field to coq field of env stanza allowing the setting of workspace-wide defaults for coqdoc_flags. (#9280, fixes #9139, @Alizter)

  • ctypes: fix an error where (ctypes) with no (function_description) would cause an error trying refer to a nonexistent _stubs.a dependency (#9302, fix #9300, @emillon)

3.12.2

3 months ago

CHANGES:

  • Fix version check in runtest_alias for cram stanza (#9454, @emillon)

  • Fix stack overflow when a (run) action can not be parsed. (#9530, fixes #9529, @gridbugs)

3.12.1

5 months ago

CHANGES:

  • Revert unintended inclusion of #9250 and #9280 (@emillon)

3.12.0

5 months ago

CHANGES:

  • Introduce $ dune ocaml doc to open and browse documentation. (#7262, fixes #6831, @EmileTrotignon)

  • dune cache trim now accepts binary byte units: KiB, MiB, etc. (#8618, @Alizter)

  • No longer force colors for OCaml 4.03 and 4.04 (#8778, @rgrinberg)

  • Introduce new experimental odoc rules (#8803, @jonjudlam)

  • Introduce the runtest_alias field to the cram stanza. This allows removing default runtest alias from tests. (@rgrinberg, #8887)

  • Do not ignore libraries named bigarray when they are defined in conjunction with OCaml 5.0 (#8902, fixes #8901, @rgrinberg)

  • Dependencies in the copying sandbox are now writeable (#8920, @rgrinberg)

  • Absent packages shouldn't prevent all rules from being loaded (#8948, fixes #8630, @rgrinberg)

  • Correctly determine the stanza of menhir modules when (include_subdirs qualified) is enabled (@rgrinberg, #8949, fixes #7610)

  • Display cache location in Dune log (#8974, @nojb)

  • Re-run actions whenever (expand_aliases_in_sandbox) changes (#8990, @rgrinberg)

  • Rules that only use internal dune actions (write-file, echo, etc.) can now be sandboxed. (#9041, fixes #8854, @rgrinberg)

  • Do not re-run rules when their location changes (#9052, @rgrinberg)

  • Correctly ignore bigarray on recent version of OCaml (#9076, @rgrinberg)

  • Add test_ prefix to default test name in dune init project (#9257, fixes #9131, @9sako6)

  • Add coqdoc_flags field to coq field of env stanza allowing the setting of workspace-wide defaults for coqdoc_flags. (#9280, fixes #9139, @Alizter)

  • [coq rules] Be more tolerant when coqc --print-version / --config don't work properly, and fallback to a reasonable default. This fixes problems when building Coq projects with (stdlib no) and likely other cases. (#8966, fix #8958, @Alizter, reported by Lasse Blaauwbroek)

  • Dune will now run at a lower framerate of 15 fps rather than 60 when INSIDE_EMACS. (#8812, @Alizter)

  • dune-build-info: when version="" is found in a META file, we now return None as a version string (#9177, @emillon)

  • Dune can now be built and installed on Haiku (#8795, fix #8551, @Alizter)

  • Mark installed directories in dune-package files. This fixes (package) dependencies against packages that contain such directories. (#8953, fixes #8915, @emillon)

3.12.0_alpha3

5 months ago

CHANGES:

  • Cherry-pick #9215 and #9009 (@emillon)

  • dune-build-info: when version="" is found in a META file, we now return None as a version string (#9177, @emillon)

3.12.0_alpha2

5 months ago

CHANGES:

  • Introduce new experimental odoc rules (#8803, @jonjudlam)

  • Cherry-pick #9177 and #9201 (@emillon)

3.12.0_alpha1

5 months ago

CHANGES:

3.11.1

6 months ago

CHANGES:

  • Fix dune rpc commands on Windows (#8806, fixes #8799, @nojb)

  • Fix inline_tests when the partition list is empty (#8849, fixes #8848, @hhugo)

3.11.0

7 months ago

CHANGES:

  • enabled_if now supports arch_sixtyfour variable (#8023, fixes #7997, @Alizter)

  • Use posix_spawn instead of fork on MacOS. This gives us a performance boost and allows us to re-enable thread. (#8090, @rgrinberg)

  • Experimental: Added a $ dune monitor command that can connect to a running dune build in watch mode and display the errors and progress. (#8152, @Alizter)

  • The progress RPC procedure now has an extra field for the In_progress constructor for the number of failed jobs. (#8212, @Alizter)

  • Add a --preview flag to dune fmt which causes it to print out the changes it would make without applying them (#8289, @gridbugs)

  • Introduce (source_trees ..) to the install stanza to allow installing entire source trees. (#8349, @rgrinberg)

  • Add --stop-on-first-error option to dune build which will terminate the build when the first error is encountered. (#8400, @pmwhite and @Alizter)

  • Dune now displays the number of errors when waiting for changes in watch mode. (#8408, fixes #6889, @Alizter)

  • Add with_prefix keyword for changing the prefix of the destination of installed files matched by globs. (#8416, @gridbugs)

  • Added experimental --display tui option for Dune that opens an interactive Terminal User Interface (TUI) when Dune is running. Press '?' to open up a help screen when running for more information. (#8429, @Alizter and @rgrinberg)

  • Add a warnings field to dune-project files as a unified mechanism to enable or disable dune warnings (@rgrinberg, 8448)

  • dune exec: support syntax like %{bin:program}. This can appear anywhere in the command line, so things like dune exec time %{bin:program} now work. (#6035, #8474, fixes #2691, @emillon, @Leonidas-from-XIV)

  • Make copy sandbox support directory targets. (#8705, fixes #7724, @emillon)

  • Add a new alias @doc-json to build odoc documentation in JSON format. This output can be consumed by external tools. (#8178, @emillon)

  • Modules that were declared in (modules_without_implementation), (private_modules) or (virtual_modules) but not declared in (modules) will raise an error. (#7674, @Alizter)

  • No longer emit linkopts(javascript) in META files (#8168, @hhugo)

  • Deprecate install destination paths beginning with ".." to prevent packages escaping their designated installation directories. (#8350, @gridbugs)

  • RPC message styles are now serialised meaning that RPC diagnostics keep their Ansi styling. (#8516, fixes #6921, @Alizter)

  • Truncate output from actions that produce too much output (@tov, #8351)

  • Allow libraries to shadow OCaml builtin libraries. Previously, builtin libraries would always take precedence. (@rgrinberg, #8558)

  • Remove warning against .dune files generated by pre dune 2.0 (#8611, @rgrinberg)

  • dune utop no longer links utop in "custom" mode, which should make this command considerably faster. (#8631, fixes #6894, @nojb)

  • Ensure that package names in dune-project are valid opam package names. (#8331, @emillon)

  • init: check that module names are valid (#8644, fixes #8252, @emillon)

  • dune init: parse --public as a public name (#8603, fixes #7108, @emillon)

  • Stop signing source files with substitutions. Sign only binaries instead (#8361, fixes #8360, @anmonteiro)

  • Remove versions 0.1 and 0.2 of the experimental ctypes extension. (#8293, @emillon)

3.11.0_alpha3

7 months ago

CHANGES:

  • Turn internal promote rules into fallback rules when --ignore-promoted-rules is set (#8518, #8706, fix #8417, fix #8703, @rgrinberg, @emillon)

  • Make copy sandbox support directory targets. (#8705, fixes #7724, @emillon)