[ 
https://issues.apache.org/jira/browse/BEAM-9206?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17027068#comment-17027068
 ] 

Luke Cwik commented on BEAM-9206:
---------------------------------

Option 3: Linkage checker outputs the result into a file, it also can take the 
file for exclusion:

In Jenkins, a presubmit runs and compares the linkage results against checked 
in exclusions file.

If there is an error, the developer updates the exclusion file by having the 
linkage checker output all the exceptions to a file updating the exceptions 
list. The updated Jenkins run now passes.

 

This allows for the history of linkage changes to be tracked via the checked in 
exclusion files.

> Easy way to run checkJavaLinkage?
> ---------------------------------
>
>                 Key: BEAM-9206
>                 URL: https://issues.apache.org/jira/browse/BEAM-9206
>             Project: Beam
>          Issue Type: Bug
>          Components: build-system
>            Reporter: Tomo Suzuki
>            Assignee: Tomo Suzuki
>            Priority: Major
>         Attachments: r2tG83tyDrn.png
>
>
> Follow up of iemejia's comment: 
> [https://github.com/apache/beam/pull/10643#issuecomment-579276082]
> {quote}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?
> {quote}
> h1. Considerations
>  * Something that can run on Jenkins
>  * Comparison with the result of origin/master
>  * Simple way to run checkJavaLinkage for all modules
> h1. Options
> h2. 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] .
> h2. 2. Jenkins plugin
> Jenkins seems to have the feature to compare build result with a certain 
> "reference build".
> !r2tG83tyDrn.png|width=618,height=389!
>  
> h2. 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?
> {noformat}
> 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
> {noformat}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to