apache / apache/druid

Shade Guava manually

Open
#6,942 31 comments 0 reactions 0 assignees View on GitHub
Compatibility Proposal stale
Dominant language
Java
Stars
14.1k
Forks
3.8k
Avg merge
2d 58m
Merged PRs (30d)
233

Description

It's suggested to create a module called "guava" in Druid that copies the Guava source tree (without tests) and prohibit using the real Guava in Druid source code via Checkstyle.

Shading Guava automatically using a plugin is not possible because Druid's dependencies depend on older Guava versions that are binary-incompatible with the freshest Guava. Repackaging all such dependencies doesn't seem to be a feasible task.

One could say that copying source code of a library is bad because we won't receive updates and bug fixes that happen in the upstream, but we aren't receiving them currently anyway, using the ancient 16.0.1 version!

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed guava module and the Checkstyle rules that would prohibit real Guava usage in Druid source code. Trace the existing Guava dependencies and their versions to understand the incompatibility constraints. Done means Druid uses the copied module without the real Guava in its source code and the relevant checks pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.