-
Notifications
You must be signed in to change notification settings - Fork 107
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
False positive when making a package-private class public that already has a public static method's different return type #365
Comments
Changing the return type from an interface to a concrete implementation causes the incompatibility <plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
<configuration>
<parameter>
<accessModifier>package_protected</accessModifier>
</parameter>
</configuration>
</plugin> PS: The documentation is currently wrong, as the option is named there |
Uh? Please help me understand: If a released version of a library contains a package private class, then that class is NOT accessible to the outside world. So how can there be a break in compatibility for clients in the next version when that class is made public, no matter what changes? |
You are right. When the class changes to public, all incompatibilities should be ignored. |
Ah, thank you 😄 😄 |
Fixed with this commit. |
I don't see how this breaks binary compatibility:
The failure does not make sense since no one outside the package could call C in version N.
For example:
git clone -n https://gitbox.apache.org/repos/asf/commons-io.git
git checkout 877b9e3f5e553f8ad988b89b8adb6b93fa97a964
org.apache.commons.io.StreamIterator
publicmvn clean install -DskipTests japicmp:cmp -Dcommons.japicmp.version=0.18.1
The text was updated successfully, but these errors were encountered: