Benefits from upgrading `lang dune` version in dune-project

In a Dune project, I just realized that changing from (lang dune 2.0) to (lang dune 3.0) in the dune-project enabled an extra warning in the code, in this case, (warning 32 [unused-value-declaration]). I didn’t expect that, but it’s a nice bonus.

Now, on the one hand, I want to keep getting free bonuses from updating the lang dune version in my packages; on the other hand, I don’t want to keep bumping them every time and force my users to upgrade dune unnecessarily (my package doesn’t use anything new from dune anyway).

So, I’d like to know: is there a (ideally short) changelog of the main changes caused by changing the lang dune version? For instance, I noticed that warning appears with 3.0, but not 2.9. Are only “major” changes those impacting different warnings? Is there a “rule of thumb” such as “update major versions when you can, otherwise don’t bother”?

(I know I could manually enable new warnings and so, but here I’m trying to evaluate how to maximize the benefit while minimizing the amount of work for me and my package users.)

As far as I know there isn’t, but I agree that having a log of new features/changes indexed by the version of the Dune language would be useful to have. This would help users decide whether to upgrade their (lang dune ...) stanza, and would also publicize new features more clearly than the raw changelog.

cc @emillon


1 Like