Open
Description
Currently, gorelease determines whether compatible and incompatible API changes are allowed based on the module base version and release version. It follows semver guidelines, for example, allowing incompatible changes at base major version v0.
Users may want to apply different (usually stricter) compatibility guidelines. For example, a module may want to forbid incompatible API changes between minor versions at v0, even though semver allows them.
gorelease should accept a -compatibility
flag that allows users to set the compatibility level explicitly. For example:
gorelease -base=v0.10.0 -release=v0.10.1 -compatibility=patch
gorelease -base=v0.10.0 -release=v0.11.0 -compatibility=minor
gorelease -base=v0.10.0 -release=v0.15.0 -compatibility=major
cc @liggitt