diff --git a/data/changelog/dune/2023-06-30-dune-3.9.0.md b/data/changelog/dune/2023-06-30-dune-3.9.0.md new file mode 100644 index 0000000000..55a7e80c67 --- /dev/null +++ b/data/changelog/dune/2023-06-30-dune-3.9.0.md @@ -0,0 +1,86 @@ +--- +title: Dune 3.9.0 +date: "2023-06-30" +tags: [dune, platform, release] +changelog: | + ## Added + + - Include the time it takes to read/write state files when `--trace-file` is + enabled ([#7960](https://github.com/ocaml/dune/pull/7960), @rgrinberg) + + - Include source tree scans in the traces produced by `--trace-file` ([#7937](https://github.com/ocaml/dune/pull/7937), + @rgrinberg) + + - Add `--all` option to `dune rpc status` to show all Dune RPC servers running. + ([#8011](https://github.com/ocaml/dune/pull/8011), fix [#7902](https://github.com/ocaml/dune/pull/7902), @Alizter) + + - Add additional metadata to the traces provided by `--trace-file` whenever + `--trace-extended` is passed ([#7778](https://github.com/ocaml/dune/pull/7778), @rleshchinskiy) + + - `$ dune describe` is now a command group, so arguments to subcommands must be + passed after subcommand itself. ([#7919](https://github.com/ocaml/dune/pull/7919), @Alizter) + + - Add `dune show` command group which is an alias of `dune describe`. ([#7946](https://github.com/ocaml/dune/pull/7946), + @Alizter) + + - Add `dune show env` command and make `dune printenv` an alias of it. ([#7985](https://github.com/ocaml/dune/pull/7985), + @Alizter) + + - Add commands `dune show targets` and `dune show aliases` that display all the + available targets and aliases in a given directory respectively. ([#7770](https://github.com/ocaml/dune/pull/7770), + grants [#265](https://github.com/ocaml/dune/pull/265), @Alizter) + + - Extensions used in `(dialect)` can contain periods (e.g., `cppo.ml`). ([#7782](https://github.com/ocaml/dune/pull/7782), + fixes [#7777](https://github.com/ocaml/dune/pull/7777), @nojb) + + - The `interface` and `implementation` fields of a `(dialect)` are now optional + ([#7757](https://github.com/ocaml/dune/pull/7757), @gpetiot) + + - Add `(build_if)` to the `(test)` stanza. When it evaluates to false, the + executable is not built. ([#7899](https://github.com/ocaml/dune/pull/7899), fixes [#6938](https://github.com/ocaml/dune/pull/6938), @emillon) + + - Allow `(include_subdirs qualified)` to be used when libraries define a + `(modules ...)` field ([#7797](https://github.com/ocaml/dune/pull/7797), fixes [#7597](https://github.com/ocaml/dune/pull/7597), @anmonteiro) + + - Allow multiple globs in library's `(stdlib (internal_modules ..))` + (@anmonteiro, [#7878](https://github.com/ocaml/dune/pull/7878)) + + ## Changed + + - Do not rerun OCaml syntax files on every iteration of the watch mode. This + is too memory consuming. ([#7894](https://github.com/ocaml/dune/pull/7894), fix [#6900](https://github.com/ocaml/dune/pull/6900), @rgrinberg) + + - Attach melange rules to the default alias ([#7926](https://github.com/ocaml/dune/pull/7926), @haochenx) + + - Compute digests and manage sandboxes in background threads ([#7947](https://github.com/ocaml/dune/pull/7947), + @rgrinberg) + + ## Fixed + + - Validate file extension for `$ dune ocaml top-module`. ([#8005](https://github.com/ocaml/dune/pull/8005), fixes [#8004](https://github.com/ocaml/dune/pull/8004), + @3Rafal) + + - Cinaps: The promotion rules for cinaps would only offer one file at a time no + matter how many promotions were available. Now we offer all the promotions at + once ([#7901](https://github.com/ocaml/dune/pull/7901), @rgrinberg) + + - Add necessary parentheses in generated opam constraints ([#7682](https://github.com/ocaml/dune/pull/7682), fixes [#3431](https://github.com/ocaml/dune/pull/3431), + @Lucccyo) + + ## Removed + + - Remove some compatibility code for old version of dune that generated + `.merlin` files. Now dune will never remove `.merlin` files automatically + ([#7562](https://github.com/ocaml/dune/pull/7562)) + + - In opam constraints, reject `(and)` and `(or)` with no arguments at parse + time ([#7730](https://github.com/ocaml/dune/pull/7730), @emillon) +--- + +The Dune team is thrilled to announce the release of Dune 3.9.0. This version ships with a host of new features and improvements, including: + +- **New `dune show` Command:** This command enables you to display various pieces of information. For instance, you can use `dune show pp` to display the preprocessed output of a file or `dune show aliases [DIR]` to list the aliases available in `DIR`. Read more about the command on its manpage using `dune show --help`. +- **Improved Dialect Support:** We have rolled out several fixes related to dialect support. These changes make it easier to work with Dream's `.eml` files. +- **Introduction of `(build_if)` Toggle in `(test)` Stanza:** This new field facilitates the packaging of non-portable tests and benchmarks. If you have tests that don't build on a specific platform, you can now tell Dune not to build them on other Platforms with the `build_if` field. + +Enjoy the new features and improvements incorporated into this version! \ No newline at end of file