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:
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:![image](https://github.com/siom79/japicmp/assets/3097987/0dc46aaf-5c8d-47b8-a2f8-0b2ca758ec51)
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 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: