TL;DR it fails the build if there's a binary incompatibility compared to the public API of an earlier version
Of course, there's a selfishness to my request/suggestion too: I have multiple public packages that depend on TaskSeq >= 0.4.0 and would need to reissue quite a few packages if there was to be a binary breaking change. What I like about how this scheme works is that there's a clear line in the fsproj that documents how far back the binary compatibility stretches for any given package.
https://devblogs.microsoft.com/dotnet/package-validation/#validation-against-baseline-package-version has been working well with me for Equinox (see https://github.com/jet/equinox/pull/455)
TL;DR it fails the build if there's a binary incompatibility compared to the public API of an earlier version
Of course, there's a selfishness to my request/suggestion too: I have multiple public packages that depend on
TaskSeq >= 0.4.0
and would need to reissue quite a few packages if there was to be a binary breaking change. What I like about how this scheme works is that there's a clear line in the fsproj that documents how far back the binary compatibility stretches for any given package.