siom79 / japicmp

Comparison of two versions of a jar archive
https://siom79.github.io/japicmp
Apache License 2.0
694 stars 107 forks source link

Suggestion about configuration confusion #400

Open rulrok opened 2 months ago

rulrok commented 2 months ago

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

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>