|
| 1 | +--- |
| 2 | +title: Dune 3.20.0 |
| 3 | +tags: |
| 4 | +- dune |
| 5 | +- platform |
| 6 | +authors: |
| 7 | +contributors: |
| 8 | +versions: |
| 9 | +unstable: false |
| 10 | +ignore: false |
| 11 | +github_release_tags: |
| 12 | +- 3.20.0 |
| 13 | +changelog: | |
| 14 | + ### Fixed |
| 15 | +
|
| 16 | + - Stop re-running cram tests after promotion when it's not necessary (#11994, |
| 17 | + @rgrinberg) |
| 18 | +
|
| 19 | + - fix: `$ dune subst` should not fail when adding the version field in opam |
| 20 | + files (#11801, fixes #11045, @btjorge) |
| 21 | +
|
| 22 | + - Kill all processes in the process group after the main process has |
| 23 | + terminated; in particular this avoids background processes in cram tests to |
| 24 | + stick around after the test finished (#11841, fixes #11820, @Alizter, |
| 25 | + @Leonidas-from-XIV) |
| 26 | +
|
| 27 | + ### Added |
| 28 | +
|
| 29 | + - `(tests)` stanzas now generate aliases with the test name. To run |
| 30 | + `(test (name a))` you can do `dune build @runtest-a`. (#11558, grants part of #10239, |
| 31 | + @Alizter) |
| 32 | +
|
| 33 | + - Inline test libraries now produce aliases `runtest-name_of_lib` |
| 34 | + allowing users to run specific inline tests as `dune build |
| 35 | + @runtest-name_of_lib`. (#11109, partially fixes #10239, @Alizter) |
| 36 | +
|
| 37 | + - feature: `$ dune subst` use version from `dune-project` when no version |
| 38 | + control repository has been detected (#11801, @btjorge) |
| 39 | +
|
| 40 | + - Allow `dune exec` to run concurrently with another instance of dune in watch |
| 41 | + mode (#11840, @gridbugs) |
| 42 | +
|
| 43 | + - Introduce `%{os}`, `%{os_version}`, `%{os_distribution}`, and `%{os_family}` |
| 44 | + percent forms. These have the same values as their opam counterparts. |
| 45 | + (#11863, @rgrinberg) |
| 46 | +
|
| 47 | + - Introduce option `(implicit_transitive_deps false-if-hidden-includes-supported)` |
| 48 | + that is equivalent to `(implicit_transitive_deps false)` when `-H` is |
| 49 | + supported by the compiler (OCaml >= 5.2) and equivalent to |
| 50 | + `(implicit_transitive_deps true)` otherwise. (#11866, fixes #11212, @nojb) |
| 51 | +
|
| 52 | + - Add `dune describe location` for printing the path to the executable that |
| 53 | + would be run (#11905, @gridbugs) |
| 54 | +
|
| 55 | + - `dune runtest` can now understand absolute paths as well as run tests in |
| 56 | + specific build contexts (#11936, @Alizter). |
| 57 | +
|
| 58 | + - Added 'empty' alias which contains no targets. (#11556 #11952 #11955 #11956, |
| 59 | + grants #4161, @Alizter and @rgrinberg) |
| 60 | +
|
| 61 | + - Allow `dune promote` to properly run while a watch mode server is running |
| 62 | + (#12010, @ElectreAAS) |
| 63 | +
|
| 64 | + - Add `--alias` and `--alias-rec` flags as an alternative to the `@@` and `@` |
| 65 | + syntax in the command line (#12043, fixes #5775, @rgrinberg) |
| 66 | +
|
| 67 | + - Added a `(timeout <float>)` field to the `(cram)` stanza to specify per-test |
| 68 | + time limits. Tests exceeding the timeout are terminated with an error. |
| 69 | + (#12041, @Alizter) |
| 70 | +
|
| 71 | + ### Changed |
| 72 | +
|
| 73 | + - Format long lists in s-expressions to fill the line instead of |
| 74 | + formatting them in a vertical way (#10892, fixes #10860, @nojb) |
| 75 | +
|
| 76 | + - Switch from MD5 to BLAKE3 for digesting targets and rules. BLAKE3 is both more |
| 77 | + performant and difficult to break than MD5 (#11735, @rgrinberg, @Alizter) |
| 78 | +
|
| 79 | + - Print a warning when `dune build` runs over RPC (#11833, @gridbugs) |
| 80 | +
|
| 81 | + - Stop emitting empty module group wrapper `.js` file in `melange.emit` |
| 82 | + (#11987, fixes #11986, @anmonteiro) |
| 83 | +--- |
| 84 | + |
| 85 | +The Dune Team is happy to announce the release of Dune `3.20.0`. |
| 86 | + |
| 87 | +This release contains some important bug fixes. It contains new features for |
| 88 | +tests, such as the possibility to use an alias and the possibility to declare a |
| 89 | +timeout for cram tests. This release also provides new possibilities for the |
| 90 | +watch mode, like the ability to run an executable or promote files while the |
| 91 | +watch mode is running. |
| 92 | + |
| 93 | +A significant change in this release is how the dune file formatter |
| 94 | +acts. It will now try to fill the line instead of using the vertical format. |
| 95 | + |
0 commit comments