GoogleCloudPlatform / GoogleCloudPlatform/cloud-opensource-java

Dashboard and Linkage Checker to take option to resolve dependency graphs with Gradle's way

Ouverte
#2,007 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement p3
Langage dominant
Java
Étoiles
163
Forks
80
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Dashboard (and Linkage Checker's ClassPathBuilder) to take an option to resolve dependency graphs with Gradle's way.

While reading errors in https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/1982#issuecomment-812277520, I noticed that the dependency conflicts (due to picking up old library versions) do not occur to Gradle users.

# Where is this affected?

The `LtsCompatibilityTestRunner` resolves the dependencies of the BOM:

```
ImmutableList bomManagedDependencies = bom.getManagedDependencies();
ClassPathBuilder classPathBuilder = new ClassPathBuilder();
ClassPathResult resolvedDependencies = classPathBuilder.resolve(bomManagedDependencies, false);
```

This resolves the dependencies in Maven's closest-win strategy. This strategy is prone to getting old dependencies which cause dependency conflicts. For Gradle users, the resolution is different; it uses highest-win strategy. Therefore, the current result shown in the pull request contain false positives and false negatives.

# GradleDependencyMediation?

We already have `MavenDependencyMediation`. I think the implementation would be creating GradleDependencyMediation.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.