caml-list - the Caml user's mailing list
 help / Atom feed
From: Alan Schmitt <>
To: "lwn" <>, "cwn"  <>,,
Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News
Date: Tue, 14 Apr 2020 09:28:10 +0200
Message-ID: <> (raw)

[-- Attachment #1: Type: text/plain, Size: 8637 bytes --]


Here is the latest OCaml Weekly News, for the week of April 07 to 14,

Table of Contents

Announcing dune-deps: produces a project-centric dependency graph
OCamlformat 0.14.0
Dune 2.5.0

Announcing dune-deps: produces a project-centric dependency graph


Martin Jambon announced

  Since the original announcement, I received some good feedback from
  users working on large projects. Thank you!

  The latest version released today is 1.2.0. It is already available on
  opam-repository (thank you @kit-ty-kate). The changes since the
  original release, besides bug fixes, include:

  • Ability to select or ignore dune files and folders to scan. For
    example, `dune-deps foo bar -x bar/test' uses all the dune files
    found in folders `foo' and `bar' but will ignore `bar/test'. This is
    useful for ignoring uninteresting parts of the project and for
    ignoring parse errors (see bug [#4]).
  • Executable name disambiguation. For example, private executables of
    the same name like `foo/main' and `bar/baz/main' are now rendered as
    `main<foo>' and `main<baz>' respectively instead of just `main'.
  • Optional exclusion of all executables or all external libraries with
    `--no-exe' and `--no-ext'.
  • Ability to show only the dependencies and/or the reverse
    dependencies of selected libraries. See below.

  Whole-project graphs for large projects tend to be unreadable. To deal
  with that, I added support for an "hourglass view" (⌛) option for
  showing only the dependencies and reverse dependencies of a component
  of interest.

  The following is obtained with `-h opam-client' on the opam project:


  Please [let us know] if this works for your favorite projects! The
  source code of dune-deps makes it somewhat easier now to experiment
  with new strategies for eliminating nodes. See the `Filter' and
  `Filterable' modules.

  Check out `dune-deps --help' for detailed documentation on the

[#4] <>

[let us know] <>

Sean Grove said and Martin Jambon replied

        That’s a nice idea - it’d be great to have this available
        as a GitHub action so anyone could do this with just a
        click or two!

  So, I made a [generic yaml workflow] that people can stick into their
  git/github project. This will automatically maintain the dependency
  graph `.deps/deps.png' which can be included in a readme.

[generic yaml workflow] <>

OCamlformat 0.14.0

  Archive: <>

Etienne Millon announced

  As described in this thread, ocamlformat 0.14.0 introduced a new
  algorithm to determine how documentation comments are placed. We
  underestimated the impact of making this the default, and this means
  that many unwanted diffs were present for 0.13.0 -> 0.14.0 upgrades.

  We are going to prepare a 0.14.1 release next week reverting this
  behavior back to the 0.13.0 defaults. Users still on 0.13.0 are
  encouraged to wait for this and upgrade directly to 0.14.1.

  Sorry for the inconvenience, and thanks for the feedback!

Dune 2.5.0

  Archive: <>

Rudi Grinberg announced

  The dune team is pleased to announce the release of dune 2.5.0. This
  release has been brewing for a while and contains a few interesting
  features. I'll highlight some of the bigger ones:

  • The coq support has been thoroughly extended. There's now support
    for both composition of coq libraries in the same workspace and
    extraction of coq code to OCaml.

  • There's a new `$ dune upgrade' subcommand to help you upgrade dune
    files from 1.x to 2.x

  • `$ dune utop' will now load ppx preprocessors to the toplevel. Ppx
    authors might enjoy this style of interactive development.

  • There's a new `(subdir ..)' stanza that can be used to evaluate
    stanzas in sub directories. This makes it possible to have a single
    dune file for an entire project (generated or not).

  I'd like to thank everyone who contributed to dune 2.5.0. Your help is
  greatly appreciated.

  Here's the full change log:

2.5.0 (09/04/2020)

  • Add a `--release' option meaning the same as `-p' but without the
    package filtering. This is useful for custom `dune' invocation in
    opam files where we don't want `-p' (#3260, @diml)

  • Fix a bug introduced in 2.4.0 causing `.bc' programs to be built
    with `-custom' by default (#3269, fixes #3262, @diml)

  • Allow contexts to be defined with local switches in workspace files
    (#3265, fix #3264, @rgrinberg)

  • Delay expansion errors until the rule is used to build something
    (#3261, fix #3252, @rgrinberg, @diml)

  • [coq] Support for theory dependencies and compositional builds using
    new field `(theories ...)' (#2053, @ejgallego, @rgrinberg)

  • From now on, each version of a syntax extension must be explicitely
    tied to a minimum version of the dune language. Inconsistent
    versions in a `dune-project' will trigger a warning for version
    <=2.4 and an error for versions >2.4 of the dune language. (#3270,
    fixes #2957, @voodoos)

  • [coq] Bump coq lang version to 0.2. New coq features presented this
    release require this version of the coq lang. (#3283, @ejgallego)

  • Prevent installation of public executables disabled using the
    `enabled_if' field.  Installation will now simply skip such
    executables instead of raising an error. (#3195, @voodoos)

  • `dune upgrade' will now try to upgrade projects using versions <2.0
    to version 2.0 of the dune language. (#3174, @voodoos)

  • Add a `top' command to integrate dune with any toplevel, not just
    utop. It is meant to be used with the new `#use_output' directive of
    OCaml 4.11 (#2952, @mbernat, @diml)

  • Allow per-package `version' in generated `opam' files (#3287,

  • [coq] Introduce the `coq.extraction' stanza. It can be used to
    extract OCaml sources (#3299, fixes #2178, @rgrinberg)

  • Load ppx rewriters in dune utop and add pps field to toplevel
    stanza. Ppx extensions will now be usable in the toplevel (#3266,
    fixes #346, @stephanieyou)

  • Add a `(subdir ..)' stanza to allow evaluating stanzas in sub
    directories.  (#3268, @rgrinberg)

  • Fix a bug preventing one from running inline tests in multiple modes
    (#3352, @diml)

  • Allow the use of the `%{profile}' variable in the `enabled_if' field
    of the library stanza. (#3344, @mrmr1993)

  • Allow the use of `%{ocaml_version}' variable in `enabled_if' field
    of the library stanza. (#3339, @voodoos)

  • Fix dune build freezing on MacOS when cache is enabled. (#3249,
    fixes ##2973, @artempyanykh)


  If you happen to miss a CWN, you can [send me a message] and I'll mail
  it to you, or go take a look at [the archive] or the [RSS feed of the

  If you also wish to receive it every week by mail, you may subscribe

  [Alan Schmitt]

[send me a message] <>

[the archive] <>

[RSS feed of the archives] <>

[online] <>

[Alan Schmitt] <>

[-- Attachment #2: Type: text/html, Size: 20312 bytes --]

         reply index

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-03  7:35 Alan Schmitt
2019-10-15  7:28 Alan Schmitt
2019-11-05  6:55 Alan Schmitt
2019-11-12 13:21 Alan Schmitt
2019-11-26  8:33 Alan Schmitt
2019-12-03 15:43 Alan Schmitt
2019-12-10  8:21 Alan Schmitt
2019-12-17  8:52 Alan Schmitt
2019-12-31  9:18 Alan Schmitt
2020-01-07 13:43 Alan Schmitt
2020-01-14 14:17 Alan Schmitt
2020-01-21 14:09 Alan Schmitt
2020-01-28 10:54 Alan Schmitt
2020-02-04  8:47 Alan Schmitt
2020-02-18  8:18 Alan Schmitt
2020-02-25  8:51 Alan Schmitt
2020-03-03  8:00 Alan Schmitt
2020-03-10 14:29 Alan Schmitt
2020-03-17 11:04 Alan Schmitt
2020-03-24  9:31 Alan Schmitt
2020-03-31  9:55 Alan Schmitt
2020-04-07  7:51 Alan Schmitt
2020-04-14  7:28 Alan Schmitt [this message]
2020-04-21  8:58 Alan Schmitt
2020-04-28 12:45 Alan Schmitt
2020-05-05  7:45 Alan Schmitt
2020-05-12  7:46 Alan Schmitt
2020-05-19  9:53 Alan Schmitt
2020-06-09  8:29 Alan Schmitt
2020-06-16  8:36 Alan Schmitt
2020-06-30  7:00 Alan Schmitt
2020-07-07 10:05 Alan Schmitt
2020-07-14  9:55 Alan Schmitt
2020-07-21 14:43 Alan Schmitt
2020-07-28 16:58 Alan Schmitt
2020-08-18  7:26 Alan Schmitt
2020-09-01  7:55 Alan Schmitt
2020-09-08 13:11 Alan Schmitt
2020-09-22  7:27 Alan Schmitt
2020-09-29  7:02 Alan Schmitt
2020-10-06  7:22 Alan Schmitt
2020-10-20  8:16 Alan Schmitt
2020-10-27  8:44 Alan Schmitt
2020-11-03 15:16 Alan Schmitt
2020-12-01  8:55 Alan Schmitt
2020-12-15  9:51 Alan Schmitt
2020-12-22  8:49 Alan Schmitt
2020-12-29 10:00 Alan Schmitt
2021-01-05 11:22 Alan Schmitt
2021-01-12  9:47 Alan Schmitt
2021-01-19 14:28 Alan Schmitt
2021-01-26 13:25 Alan Schmitt
2021-02-02 13:56 Alan Schmitt
2021-02-16 13:53 Alan Schmitt
2021-02-23  9:52 Alan Schmitt
2021-03-09 10:59 Alan Schmitt
2021-03-16 10:32 Alan Schmitt
2021-03-23  9:05 Alan Schmitt
2021-03-30 14:56 Alan Schmitt
2021-04-06  9:42 Alan Schmitt
2021-04-20  9:07 Alan Schmitt
2021-04-27 14:26 Alan Schmitt
2021-05-04  8:58 Alan Schmitt
2021-05-11 14:48 Alan Schmitt
2021-05-25  7:30 Alan Schmitt
2021-06-01  9:23 Alan Schmitt
2021-06-22  9:05 Alan Schmitt
2021-06-29 12:24 Alan Schmitt
2021-07-06 12:34 Alan Schmitt
2021-07-20 12:59 Alan Schmitt
2021-07-27  8:54 Alan Schmitt
2021-08-10 16:47 Alan Schmitt
2021-08-17  6:24 Alan Schmitt
2021-08-24 13:44 Alan Schmitt
2021-09-07 13:24 Alan Schmitt
2021-09-21  9:10 Alan Schmitt
2021-09-28  6:37 Alan Schmitt
2021-10-19  8:23 Alan Schmitt
2021-11-02  8:50 Alan Schmitt
2021-11-09 10:08 Alan Schmitt
2021-11-16  8:41 Alan Schmitt
2021-11-30 10:52 Alan Schmitt
2021-12-14 11:02 Alan Schmitt
2021-12-21  9:12 Alan Schmitt
2021-12-28  9:00 Alan Schmitt
2022-01-04  7:56 Alan Schmitt
2022-01-11  8:21 Alan Schmitt

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

caml-list - the Caml user's mailing list

Archives are clonable: git clone --mirror

AGPL code for this site: git clone public-inbox