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
Improve JapiCmp: avoid misses, improve reporting and exclusions #2497
Conversation
This commit improves the japicmp integration in the build: 1) Add a finalizedBy task that prints a filtered report The basic text report uses * and ! as markers for binary and source incompatible changes respectively. Additionally, a MODIFIED class is marked with ***. This task attempts at pinpointing the incompatible changes only in the report, and printing these lines. This report is called out in the "how to fix" tip in the CI preliminary step. 2) Ensure sourceModified changes are considered See reactor/reactor#722. If a change is binary compatible but not source compatible, using `onlyBinaryCompatibleModified = true` will mask the issue. This change uses `onlyModified = true` instead. This is slightly more verbose, but this is alleviated by (1). 3) Exclude NEW_DEFAULT_METHOD as a whole Since japicmp-grale-plugin v0.4.1 the new `compatibilityChangeExcludes` parameter allows us to ignore all occurrences of a default method added to an interface, instead of having to exclude each such method one by one.
the
(note: the above doesn't explain what exactly the issue is. please ignore "not serializable" for instance) it seems that whatever the exact issues are, they are of type |
@reactor/netty-team I'll need to probably open a separate PR for the |
Usually, we do not create separate PR: we first merge the PR into the 1.0.x branch, then we merge it into main (for version 1.1.0), then after, we merge from main branch into the netty5 branch. |
but I will let Violeta confirm. |
@simonbasle We prepare separate PRs in very rare cases. For this one forward merge should be working. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Adapt the changes to the new build.gradle files (core and http).
This commit improves the japicmp integration in the build:
The basic text report uses * and ! as markers for binary and source
incompatible changes respectively. Additionally, a MODIFIED class is
marked with ***. This task attempts at pinpointing the incompatible
changes only in the report, and printing these lines.
This report is called out in the "how to fix" tip in the CI preliminary
step.
See reactor/reactor#722.
If a change is binary compatible but not source compatible, using
onlyBinaryCompatibleModified = true
will mask the issue. Thischange uses
onlyModified = true
instead. This is slightly moreverbose, but this is alleviated by (1).
Since japicmp-grale-plugin v0.4.1 the new
compatibilityChangeExcludes
parameter allows us to ignore all occurrences of a default method added
to an interface, instead of having to exclude each such method one by
one.