Using opam to upgrade dune to a new version will trigger rebuilding of all opam packages that depend on dune. This is, of course, the expected behavior. Since lots of ocaml projects use dune for building, and dune gets frequent updates, much rebuilding is now common with opam upgrades.
However, as I understand things, it’s usually unnecessary to recompile an opam package in response to an upgrade in dune. There seems to be a feature in opam that allows marking a dependency as a build-dependency with no runtime components, that would avoid this kind of unnecessary recompilation; but not many projects seem to be taking advantage of this feature of opam package definition files.
So, two questions:
Is it possible for me to manually instruct opam to upgrade a particular package without attempting to upgrade its dependencies?
Should I send a bunch of pull-requests to opam projects that depend on dune, but don’t have it marked as a build-only dependency? Or are there good reasons that many people have not set up their package definition files that way?