[jboss-jira] [JBoss JIRA] (ELY-1572) japicmp force source compatibility, but only binary compatibility is required
Jan Kalina (JIRA)
issues at jboss.org
Fri May 4 08:02:01 EDT 2018
[ https://issues.jboss.org/browse/ELY-1572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13570173#comment-13570173 ]
Jan Kalina edited comment on ELY-1572 at 5/4/18 8:01 AM:
---------------------------------------------------------
In future, we can re-enable source compatibility check and ignore adding default methods into interfaces only:
{code}
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
- <version>0.11.0</version>
+ <version>0.12.1-SNAPSHOT</version>
<configuration>
@@ -568,7 +568,21 @@
<parameter>
<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
- <breakBuildOnSourceIncompatibleModifications>false</breakBuildOnSourceIncompatibleModifications>
+ <breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
+ <overrideCompatibilityChangeParameters>
+ <overrideCompatibilityChangeParameter>
+ <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
+ <binaryCompatible>true</binaryCompatible>
+ <sourceCompatible>true</sourceCompatible>
+ </overrideCompatibilityChangeParameter>
+ </overrideCompatibilityChangeParameters>
{code}
But this depends on last japicmp version - possible only after releasing japicmp 0.12.1.
was (Author: honza889):
In future, we can re-enable source compatibility check and ignore adding default methods into interfaces only:
{code}
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
- <version>0.11.0</version>
+ <version>0.12.1-SNAPSHOT</version>
<configuration>
@@ -568,7 +568,21 @@
<parameter>
<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
- <breakBuildOnSourceIncompatibleModifications>false</breakBuildOnSourceIncompatibleModifications>
+ <breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
+ <overrideCompatibilityChangeParameters>
+ <overrideCompatibilityChangeParameter>
+ <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
+ <binaryCompatible>true</binaryCompatible>
+ <sourceCompatible>true</sourceCompatible>
+ </overrideCompatibilityChangeParameter>
+ </overrideCompatibilityChangeParameters>
{code}
But currently there is still bug (https://github.com/siom79/japicmp/issues/201#issuecomment-386222564), so METHOD_ADDED_TO_INTERFACE would have to be ignored too -> keeping source compatibility check disabled.
> japicmp force source compatibility, but only binary compatibility is required
> -----------------------------------------------------------------------------
>
> Key: ELY-1572
> URL: https://issues.jboss.org/browse/ELY-1572
> Project: WildFly Elytron
> Issue Type: Bug
> Components: Build
> Affects Versions: 1.3.0.Final
> Reporter: Jan Kalina
> Assignee: Jan Kalina
>
> As part of ELY-1523 japicmp was configured to force binary and source compatibility.
> By last discussion, only binary compatibility is required.
> {panel}
> *Honza Kalina* jaspicmp reports it as source incompatibility, not as binary incompatibility - so it maybe it is false positive, as I would say it should be source-compatible...
> *Darran Lofthouse* Binary is the only one we are really interested in, i.e. will an update to a later version of Elytron break something. Most of our backwards compatibility strategy is more about breaking things and upsetting people
> {panel}
> Japicmp currently reports adding default method into interface as source incompatible change (see https://github.com/siom79/japicmp/issues/201) -> blocks adding IV into MaskedPassword in ELY-867
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list