apache / apache/beam

Ban Guava as a transitive dependency

Open
#18,309 0 comments 0 reactions 0 assignees View on GitHub
build improvement P3
Dominant language
Java
Stars
8.7k
Forks
4.7k
Avg merge
1d 20h
Merged PRs (30d)
196

Description

Leaks of Guava dependencies to users can cause conflicts since provided dependencies may rely on different versions of Guava.
Configure Maven enforcer plugin to ban Guava as a transitive dependency.
This will force our modules to explicitly declare all Guava dependencies (And we'll shade and relocate them).

Consider using [Maven Enforcer Plugin](http://maven.apache.org/enforcer/enforcer-rules/banTransitiveDependencies.html)

Imported from Jira [BEAM-1706](https://issues.apache.org/jira/browse/BEAM-1706). Original Jira may contain additional context.
Reported by: aviemzur.

Contributor guide

Open the contributing guide

Research direction

Start in Apache Beam's Maven build configuration and review the Maven Enforcer Plugin banTransitiveDependencies rule referenced in the issue. Trace the modules that currently depend on Guava transitively and verify that enforcement requires explicit declarations and supports the intended shading and relocation; done means the build rejects transitive Guava dependencies without breaking required module builds.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.