Great! Thanks Brian ;)
regards, François Papon [email protected] Le 06/05/2019 à 18:58, Brian Demers a écrit : > I just added the japicmp plugin (under a `ci` profile) > I've been using this plugin in a few other projects, it has it's own > quarks, version compatibility is pretty complicated when you start thinking > about source vs binary compatibly. This on top of what you typically expect > from semver. > > Where things start getting interesting is when you add default methods > (from a japicmp github issue) > https://github.com/siom79/japicmp/issues/201#issuecomment-372437436: > > Which basically states because of this: > https://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html#jls-13.5.6 > >> Adding a default method, or changing a method from abstract to default, > does not break compatibility with pre-existing binaries, but may cause an > IncompatibleClassChangeError if a pre-existing binary attempts to invoke > the method. This error occurs if the qualifying type, T, is a subtype of > two interfaces, I and J, where both I and J declare a default method with > the same signature and result, and neither I nor J is a subinterface of the > other. > > japicmp treats them as a breaking change, to work around this in other > projects we can do something like this (if/when needed): > https://github.com/okta/okta-sdk-java/blob/master/src/japicmp/postAnalysisScript.groovy#L31-L38 > > > I've also updated our master and PR CI builds to use the `ci` profile. We > can also start adding/moving other static analysis to this profile to speed > up the build (if needed) >
