I am setting up a library project and wanted to use the appropriate semver versioning and ensure the build breaks if a binary incompatible version is generated yet the semver is violated.
I initially configured my project with these two flags enabled, because I thought one was a complement of the other:

I thought that breakBuildOnBinaryIncompatibleModifications was the initially resonable flag that I need, and upon that, breakBuildBasedOnSemanticVersioning would complement the previous behaviour.
Then, I made changes and the building kept breaking even though I was bumping the major version.
After disabling the breakBuildOnBinaryIncompatibleModifications and leaving only breakBuildBasedOnSemanticVersioning, I realized it worked as expected.
Thus, it seems to me that they are Mutually exclusive options, and the plugin could either A) not allow me to configure in such a way, or B) at least giving me a warn message.
For suggestion A, maybe the setting could be something like:
<configuration>
<breakBuildCriteria>
source|binary|semver|zero
</breakBuildCriteria>
</configuration>
I am setting up a library project and wanted to use the appropriate semver versioning and ensure the build breaks if a binary incompatible version is generated yet the semver is violated.
I initially configured my project with these two flags enabled, because I thought one was a complement of the other:

I thought that
breakBuildOnBinaryIncompatibleModificationswas the initially resonable flag that I need, and upon that,breakBuildBasedOnSemanticVersioningwould complement the previous behaviour.Then, I made changes and the building kept breaking even though I was bumping the major version.
After disabling the
breakBuildOnBinaryIncompatibleModificationsand leaving onlybreakBuildBasedOnSemanticVersioning, I realized it worked as expected.Thus, it seems to me that they are Mutually exclusive options, and the plugin could either A) not allow me to configure in such a way, or B) at least giving me a warn message.
For suggestion A, maybe the setting could be something like: