Improve build avoidance by ignoring ABI-compatible changes #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request improves build avoidance (increases the likelyhood that tasks are UP-TO-DATE) by leveraging Gradle's compile classpath input normalization. For the purposes of checking for forbidden APIs, we don't much care about non-API changes in the upstream classpath. That is, if an ABI-compatible change is made to a class on our classpath (say, a single line change to a method body) it doesn't affect the outcome of this task. This avoid having to rerun this check when changes are made to upstream dependencies that don't change the compile classpath.
Since the
@CompileClasspath
annotation was introduced in Gradle 3.4, that would mean the minimum compatible Gradle version would increase from 3.2 to 3.4.