Easy way to run checkJavaLinkage?
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 196
Description
Follow up of iemejia's comment: [https://github.com/apache/beam/pull/10643#issuecomment-579276082](https://github.com/apache/beam/pull/10643#issuecomment-579276082)
> I just want some sort of ./gradlew :checkJavaLinkage that works for the whole set of modules of the project. Is this 'feasible' with gradlew **** Beam?
>
> - Considerations
* Something that can run on Jenkins
* Comparison with the result of origin/master
* Simple way to run checkJavaLinkage for all modules
- Options
## 1. A shell script that runs checkJavaLinkage
Short-term solution to help iemejia's 31 modules. [https://github.com/apache/beam/pull/10643#issuecomment-578167314](https://github.com/apache/beam/pull/10643#issuecomment-578167314) .
## 2. Jenkins plugin
Jenkins seems to have the feature to compare build result with a certain "reference build".
!r2tG83tyDrn.png|width=618,height=389!
## 3. LinkageCheckerMain to take ignore exception list
* LinkageCheckerMain to take an option to output JSON file containing linkage errors.
The file is checked in to Git repository.
* LinkageCheckerMain to take JSON file to ignore linkage errors
The class returns non-zero status if there're linkage errors outside the `ignore` file.
The
Leveraging the fact that java class name or method name does not contain "`/`", can we use `.git-ignore` syntax to specify linkage errors to ignore?
```
com.google.guava:guava:25.1-jre/com.google.common.collection.ImmutableList/size
com.google.guava:guava:*/**
*weld-osgi-bundle*/**
*/com.github.luben.zstd.ZstdInputStream
*/com.github.luben.zstd.ZstdOutputStream
*/org.apache.beam.vendor.bytebuddy.v1_9_3.net.bytebuddy.jar.asm.commons.ModuleHashesAttribute
```
Or XML files to describe more nested structure.
Imported from Jira [BEAM-9206](https://issues.apache.org/jira/browse/BEAM-9206). Original Jira may contain additional context.
Reported by: suztomo.
Contributor guide
Assessment
This issue has not been assessed yet.