apache / apache/beam

Easy way to run checkJavaLinkage?

Open
#20,007 0 comments 0 reactions 0 assignees View on GitHub
bug build P3
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.