Details
-
Bug
-
Status: Open
-
P3
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Follow up of iemejia's comment: 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 .
2. Jenkins plugin
Jenkins seems to have the feature to compare build result with a certain "reference build".
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.