Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.15.1 differs from 0.14.4, treats new annotation file as incompatible #279

Closed
jhy opened this issue Dec 31, 2020 · 6 comments
Closed

Comments

@jhy
Copy link

jhy commented Dec 31, 2020

Thanks for releasing 0.15.1, I was just moving jsoup to it (from 0.14.4) but found that the new version reports a new annotation as a breaking change (for source compatibility).

Version 14.4:

<class binaryCompatible="true" changeStatus="NEW"
 fullyQualifiedName="org.jsoup.internal.FieldsAreNonnullByDefault" 
javaObjectSerializationCompatible="NOT_SERIALIZABLE" javaObjectSerializationCompatibleAsString="not serializable"
sourceCompatible="true">

Version 15.1:

<class binaryCompatible="true" changeStatus="NEW" 
fullyQualifiedName="org.jsoup.internal.FieldsAreNonnullByDefault" javaObjectSerializationCompatible="NOT_SERIALIZABLE"
javaObjectSerializationCompatibleAsString="not serializable"
sourceCompatible="false">

The actual new annotation is at https://github.com/jhy/jsoup/blob/master/src/main/java/org/jsoup/internal/FieldsAreNonnullByDefault.java . I believe (hope!) this is a binary and source compatible change?

In the full XML report, every line item for the class is marked as both source and binary compatible, in both versions.

Also, in the HTML report, in 15 it is marked source incompatible with a (*), but the text is green. I expected it to be red, and it took a while to find it.

Is this a bug from japicmp updating its dependencies, or is this an actual source compatibility issue that I've misunderstood?

Thanks,
Jonathan

@jhy
Copy link
Author

jhy commented Dec 31, 2020

japicmp.zip

Attached the reports from both japicmp versions. The only change between runs was the depended version.

@garydgregory
Copy link

garydgregory commented Dec 31, 2020

Is 0.15.x going to be on Maven Central?

@siom79
Copy link
Owner

siom79 commented Dec 31, 2020

@garydgregory Yes, japicmp 0.15.1 is available on Maven Central.

@jhy After upgrading all the dependencies one test case failed and I "fixed" it. But it looks like the "fix" introduced another issue. The japicmp 0.15 report shows the change METHOD_ABSTRACT_ADDED_IN_IMPLEMENTED_INTERFACE which is incorrect for a new annotation. I will fix this as soon as possible.

@siom79
Copy link
Owner

siom79 commented Jan 7, 2021

Fixed: 0.15.2

@jhy
Copy link
Author

jhy commented Jan 9, 2021

Awesome, thanks Martin!

With this fix and the fix for JDK 16-ea, I've been able to enable CI builds in jsoup for 16-ea again.

@siom79
Copy link
Owner

siom79 commented Jan 9, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants