Yes, I think another question related to breaking changes is how the releaser reacts to the revdeps in their library. From my point of view, it’s still a case-by-case basis, even though the opam CI helps us know what will break.
We may need to break the API, increase minor
and associate a series of patches with the release to allow other maintainers to integrate these changes. However, there is a problem with this (as shown in the example), which is that releasers are not necessarily omniscient about all revdeps.
Note the latter change could have been handled with a backwards compatiblily story and a minor change had the type been made abstract.
I completely agree, and we should build a time machine together so we can go back and blame our previous versions for syndic
, as well as for Arg.conv
.